Для последних версий заголовков устройств я предлагаю загрузить пакет STM32CubeF1 с веб-сайта ST. Среди прочего (Middlewares, HAL et c.) Этот пакет содержит требуемые заголовки устройств в папке /Drivers/CMSIS/Device
. Для правильной работы заголовка stm32f1xx.h
необходим символ STM32F103xB
.
Конечно, пакет STM32CubeF1 также содержит библиотеки CMSIS, но, как правило, они немного устарели. Я предпочитаю скачивать их как .pack файлы из репозитория github, который вы упомянули. Заголовки нужны как минимум в /CMSIS/Core
. Вы можете добавить дополнительные части CMSIS, если вы sh. Некоторые из них (например, DSP) могут также потребовать добавления библиотек stati c, представленных в папках /Lib
.
Имейте в виду, что если вы клонируете репозиторий CMSIS из github вместо загрузки файла .pack в результате вы получаете заполненные версии библиотек stati c, поскольку в проекте используется git LFS . Вы не можете напрямую использовать эти библиотечные файлы stati c (файлы .a), поскольку они являются просто указателями. Я не знаком с git LFS , но, полагаю, вам нужны некоторые git команды (возможно, оформить заказ), чтобы сообщить P C о загрузке реальных файлов .a.
Также обратите внимание, что иногда структура папок CMSIS меняется от версии к версии. Структура папок, которую вы получаете в STM32CubeF1 , может отличаться от той, которую вы загружаете из официального репозитория CMSIS.
Я забыл упомянуть: кроме заголовков устройств CMSIS и ST, вам также нужны следующие файлы:
- system_stm32f1xx. c ( STM32CubeF1 пакет
/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates
папка) - startup_stm32f103xb.s ( STM32CubeF1 пакет
/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc
папка) - Сценарий компоновщика из STM32CubeF1 пакет
/Drivers/CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/linker
папка. Как ни странно, для STM32F103x8 их нет, поэтому вам, вероятно, нужно выбрать STM32F103xB и изменить его. Я использую сгенерированную IDE.
Обновление:
Здесь вы можете найти минимальный проект, созданный в STM32CubeIDE. Я создал пустой проект C. В среде IDE есть сценарий компоновщика и файл запуска (.s), но я удалил их и использовал те, которые включены в пакет STM32CubeF1 . Я также удалил несвязанные файлы заголовков из каталога / Drivers / Device / ST / STM32F1xx / Include. Но я не коснулся файлов в / Drivers / CMSIS / Core / Include, хотя там много несвязанных файлов, так как сложнее определить, какие нужны, а какие нет.
Я знаю что вы ищете решение без IDE, но я думаю, что этот пример проекта может, по крайней мере, дать вам некоторые подсказки о необходимых файлах и структуре проекта.
Примечание. Примером примера проекта является blinky. куб но в проекте нет куба. Я использую это соглашение об именах просто для указания используемой среды IDE, в данном случае STM32CubeIDE.