Решил потестить Keil, ибо в нем есть чудо отладчик. После кокоса, пришлось нехило попотеть для того, чтобы просто создать проект. Поэтому оставляю подробную напоминалку.
Для начала нужно скачать кейл он бесплатный до 32кБ. После установки, нужно будет докачать поддержку для своего камня, этот шаг более менее очевиден.
Создадим проект в нем выбираем свой камень, в моем примере используется stm32f103t8, если списка камней нет — значит см. пункт выше.
Нужно подключить файл стартапа
Добавим файл где будем писать прошивку
Понадобится скачать либу. Тут остановимся. То что юзается в кокосе в основном CMSIS и SPL, поэтому здесь я решил идти тем же путем. В CMSIS находятся описания регистров самого микроконтроллера, аналог mega8.h у атмела, внутри SPL находятся функции для работы с периферией GPIO, USART и т.п. И то и другое лучше всего качать с официальных сайтов CMSIS с сайта arm, SPL с ST. Стандартная либа отличается для разных семейств например STM32F10x_StdPeriph_Lib_V3.5.0 для F100.
Когда читаешь информацию про либы вроде понятно, тухляк начинается когда нужно разобраться. В итоге проще запомнить что файлы SPL в основном называются так: stm32f10x_gpio.h stm32f10x_gpio.c, и т.п. К CMSIS относится stm32f10xx.h который тянет за собой еще кучу файлов, если компилятор ругается что не нашел какой то файл, полюбому, не указан путь к CMSIS, поэтому ищем файл и прописываем пути.
Далее лезем в настройки проекта
Вкладка Output ставим галочку Create Hex
Вкладка C/C++ — лезем в include paths, добавляем пути ко всем библиотекам я предпочитаю копировать библиотеку в папку проекта
В дефайнах указываем тактовую частоту и использовать библиотеку SPL
HSE_VALUE=16000000, USE_STDPERIPH_DRIVER
В misc control дописываем —c99 чтобы можно было инициализировать переменные в любом месте
Выбираем программатор, в моем случае St link, для серии 103 можно поменять внешний вид отладчика
Ищем файл stm32f10x_conf.h у меня он был X:\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
кидаем в папку проекта
Пишем исходник 🙂 Не забываем что все сишные файлы нужно включать в проект, т.е. как мы подключали main, подобным образом add existing.
При подключении файла стартапа он у Вас подсвечивается желтым,а должен зеленым. Вы забыли подключить ядро CMSIS.
я не использую кейловский cmsis, практика показала что лучше все файлы проекта копировать в сам проект и не использовать кейловские либы вообще