Оглавление:
- Шаг 1. Загрузите все, что вам нужно
- Шаг 2: Установка программного обеспечения
- Шаг 3: Настройка образца проекта
- Шаг 4: Готово
Видео: Начать разработку STM32 в Linux: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
В этом руководстве я покажу вам, как легко начать разработку программ STM32 в Linux. Я начал использовать Linux в качестве основной машины 2 года назад и меня не подводили. Все работает быстрее и лучше окон. Конечно, время от времени это менее удобно, но заставляет вас изучать вещи глубже, чтобы вы могли их использовать.
В любом случае, в этой инструкции, часть серии, которую я начинаю здесь И на YouTube, посвящена тому, как ее начать. Не забудьте также посмотреть мое видео на YouTube, где я все объясняю как один фрагмент, а вы можете писать код вместе со мной.
В этой серии я покажу вам, как вы можете разрабатывать, используя только текстовый редактор, такой как блокнот, SublimeText или Atom, так что вам не нужно какое-либо проприетарное программное обеспечение или IDE. Это максимально просто, и это на удивление легко.
Шаг 1. Загрузите все, что вам нужно
Чтобы все заработало, нужно скачать три части:
- Компилятор GCC для ARM
- Файлы прошивки STM32
- Утилита st-link
- Образец проекта
Компилятор - это основная часть программного обеспечения, которое компилирует наш код C со всеми другими файлами библиотеки на машинный язык, который может понять наш контроллер stm32. Загрузите последнюю предварительно скомпилированную версию этого компилятора.
Папка с прошивкой STM32 - это папка, в которой хранятся все файлы запуска и ядра, необходимые для работы основного процессора. Мы будем использовать стандартную периферийную библиотеку, которую превзошел HAL. Мне больше нравится StPeriphLibrary, поскольку компании, которые работают с этими процессорами, используют их, потому что он надежен, старше и поддерживается. Кроме того, он более прочный. Это не сокращает работу, которую вам нужно выполнить для инициализации периферийного устройства или включения светодиода, но заставляет вас изучить, как работают эти процессоры. Благодаря этому у вас будет больше знаний о внутренней работе, что позволит вам программировать любую задачу.
Последняя часть программного обеспечения для загрузки - это утилита st-link. Он поддерживается на github и используется для передачи скомпилированных двоичных файлов в процессор с использованием микросхемы stlink на плате, выступающей в качестве программатора / отладчика SWD / JTAG.
Также я предоставил образец папки проекта, о котором я расскажу позже, и вы можете его скачать. Он находится внутри первой папки VIDEO1.
Шаг 2: Установка программного обеспечения
После того, как вы загрузили все файлы, я предлагаю вам поместить их в общую папку, поскольку все они используются вместе для одной цели. Я помещаю все папки в папку под названием «Embedded» в моем HOME каталоге.
Мы начнем с самых простых - библиотек STM32. Папку, которую вы скачали, можно просто оставить там. Просто не забудьте покопаться, чтобы увидеть, где хранятся соответствующие файлы. Поэтому вы можете изменить и отредактировать основной MakeFile, чтобы он работал с вашей платформой.
Второй по сложности - компилятор. Вам также не нужно ничего делать с ним, но мы сделаем компилятор глобально доступной функцией, чтобы вы могли вызывать компилятор из любой папки, независимо от пути. Все шаги могут быть выполнены в терминале или в графическом интерфейсе, но мне нравится использовать терминал, поскольку, когда вы набираетесь опыта, он становится быстрее и проще, и я рекомендую вам чаще использовать терминал, если вы его боитесь. Вот шаги:
- Зайдите в свою домашнюю папку "/ home / ИМЯ ПОЛЬЗОВАТЕЛЯ /" или "~ /" или введите cd в терминал.
- откройте файл ".bashrc", набрав: nano.bashrc
- прокрутите вниз до конца файла и добавьте эту строку: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
- выйти, сохранив: CTRL + X, нажмите Y, ENTER
- запустите команду: source.bashrc, чтобы обновить источники терминала
- проверьте, все ли работает, набрав: arm-none-eabi-gcc --version, он должен отобразить последнюю версию компилятора
Для установки st-link распакуйте архив, который вы скачали, в папку Embedded. Затем выполните следующие действия:
- Беги: сделай
- Зайдите в папку "build / Release": cd build / Release.
- Введите ls, и вы увидите два исполняемых файла под названием «st-flash» и «st-util».
- Переместите эти два в родительский каталог stlink: mv st-flash st-util../../
-
Если вы хотите использовать эти две функции, вы можете снова глобально отредактировать файл ".bashrc", добавив:
экспорт ПУТЬ = $ ПУТЬ: ~ / Встроенный / stlink /
Это все! У тебя есть все необходимое. А теперь возьмите свой любимый текстовый редактор. Используйте только стандартный, более умный, такой как SublimeText или Atom, это то, что я использую.
Шаг 3: Настройка образца проекта
Теперь мы создадим образец проекта, который вы можете использовать для запуска каждого проекта. Это похоже на шаблон, в котором все основные настройки уже обработаны.
Вы можете скачать его на моей MEGA, ссылка находится на первом этапе этого руководства и под каждым моим видео на YouTube. Внутри находится пустой файл main.c вместе с некоторыми файлами запуска для этого процессора и Makefile. Makefile - это тот файл, который сообщает компилятору C, где найти компилятор arm, как его компилировать и где находятся все библиотеки. Чтобы получить эти файлы, подходящие для вашего проекта, вы можете зайти в папку библиотеки STM32 и проверить наличие папок «проект» или «примеры». Внутри вы увидите и скопируете эти файлы: main.c, Makefile и XXX_conf.h, system_XXX.c. Также вам понадобится файл компоновщика stm32_flash.ld, который можно найти в папке:
"/ FLASH_Program / TrueSTUDIO / FLASH_Program /", который находится внутри папки примера, или просто найдите файл.
Makefile можно найти в Интернете или скопировать из моей папки, но вам нужно будет изменить несколько вещей. Давайте посмотрим на мой make-файл и на то, что вы могли изменить.
# Путь к папке stlink для загрузки кода на борт
STLINK = ~ / Embedded / stlink # Поместите сюда свои исходные файлы (*.c) SRCS = main.c system_stm32f4xx.c # Исходные файлы библиотек #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Двоичные файлы будут созданы с это имя (.elf,.bin,.hex) PROJ_NAME = test # Поместите сюда каталог кода библиотеки STM32F4, измените ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ на свое STM_COMMON = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Настройки компилятора. Отредактируйте CFLAGS только для включения других файлов заголовков. CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy # Флаги компилятора CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS + = -DUSE_STDPERIPH_DRIVER CFLAGS + = -mlittle-endian -mthuumb = -mcpu. cortex-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Включить файлы из библиотек STM CFLAGS + = -I $ (STM_COMMON) / Libraries / CMSIS / Include CFLAGS + = -I $ (STM_COMMON) / Libraries / CMSIS / ST / STM32F4xx / Include CFLAGS + = -I $ (STM_COMMON) / Библиотеки / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # добавить файл запуска для сборки SRCS + = $ (STM_COMMON) / Libraries / CMSIS / ST / STM32F4xx / Source / Start / Templates / TruestmUDIO / Templates / s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Libraries / STM32F4xx_StdPeriph_Driver / src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $ ^ -o $ @ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binary $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Прошить запись STM32F4: proj $ (STLINK) / st-flash write $ (PROJ_NAME).bin 0x80000000
- Вы можете отредактировать первую строку, чтобы изменить путь к вашей служебной папке stlink
-
Вы можете изменить строку на место назначения вашей папки с библиотеками и ИМЯ ПОЛЬЗОВАТЕЛЯ.
STM_COMMON = / home / ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ / Встроенный / STM32F4-Discovery_FW_V1.1.0
- Также ознакомьтесь с разделом, в котором связаны все библиотеки. Это может измениться в зависимости от платформы, которую вы используете, поэтому проверьте наличие изменений в дереве файлов. Все остальное, что включает любые пути к определенным файлам, например, со следующей строкой с файлом запуска, может быть изменено.
После того, как вы отредактировали все эти вещи внутри Makefile, вы можете проверить, работает ли он, открыв терминал внутри вашего каталога и набрав: make. Если он компилирует все без проблем, значит, все готово. Если нет, просмотрите ошибки компилятора и отредактируйте Makefile.
Кроме того, когда я использую Atom, я кладу два фрагмента кода рядом. Обычно main.c и Makefile слева, так как вам нужно отредактировать Makefile только один раз, а библиотеки - справа. На картинке видно, что я открыл папку, содержащую файлы.c и.h для каждой библиотеки. Все это вы можете увидеть в видеороликах.
Шаг 4: Готово
Теперь, когда у вас настроен Makefile и работает компилятор, вы можете использовать эту папку для всех проектов в качестве шаблона, поэтому убедитесь, что вы сохранили копию этой папки.
Также вы можете протестировать программы st-flash и st-info, подключив плату разработки и набрав в терминале:
st-info --probe
Вы можете увидеть платформу, которую распознает программное обеспечение stlink, и семейство IC, а также кеш и другие вещи. Вы можете ввести:
st-info
чтобы увидеть все доступные параметры.
Теперь можно начинать программировать. В следующих инструкциях и видео я покажу вам основы GPIO и часов. Эти два являются основой для всего остального, так как почти все, с чем взаимодействует плата, осуществляется через GPIO, и все работает по часам, и вы увидите схему программирования этих процессоров.
А пока, спасибо, что посмотрели мои инструкции и видео на YouTube, если вы еще этого не сделали.
Рекомендуемые:
Как настроить Raspberry Pi и начать его использовать: 4 шага
Как настроить Raspberry Pi и начать его использовать: для читателей будущего мы находимся в 2020 году. В год, когда, если вам повезло быть здоровым и не заразиться Covid-19, вы внезапно , у меня намного больше свободного времени, чем вы могли себе представить. Так как же мне занять себя не слишком глупо? О, да
Как начать с RaspberryPi: 9 шагов
Как начать с RaspberryPi: в этой инструкции я покажу вам, как начать с RashpberryPi другим способом
Как начать игровую прямую трансляцию: 9 шагов
Как запустить игровой поток в прямом эфире: в этой инструкции вы узнаете, как настроить поток с помощью программного обеспечения Open Broadcaster или OBST. Чтобы начать прямую трансляцию с помощью OBS, вам понадобятся следующие вещи. Компьютер, на котором можно запускать вашу игру. и потоковое программное обеспечение
Чрезвычайно простой способ начать работу с домашней автоматизацией с помощью модулей DIY: 6 шагов
Чрезвычайно простой способ начать работу с домашней автоматизацией с помощью модулей «сделай сам»: я был приятно удивлен, когда решил попробовать добавить несколько самодельных сенсоров к домашнему помощнику. Использовать ESPHome чрезвычайно просто, и в этом посте мы узнаем, как управлять выводом GPIO, а также получать температуру & данные о влажности с беспроводной сети
Как начать работу с Raspberry Pi: 3 шага
Как начать работу с Raspberry Pi: Привет, меня зовут hoomehr, и вот как начать работу с Raspberry Pi 3 Первое, что вам нужно сделать, это получить Raspberry Pi 3, конечно, вы можете получить полный комплект от Cana комплект. Поставляется с raspberry pi 3, кабелем HDMI, футляром для пи