Всем привет! Для начала настроим рабочую обстановку. Ну вот, настроили – теперь продолжим. В этой статье я описываю пошагово как можно создать проект (пустой проект без использования куба) и начать писать код использую библиотеку CMSIS.
Давайте создадим пустой проект для МК STM32F103RCT6 и программировать мы будем используя CMSIS.
для начала выберем File->New->CProject
В поле “Project name:” пишем любое удобное для вас название проекта и жмём Next. В следующем окне ничего не трогаем, а просто нажимаем Finish.
На выходе получаем новый проект:
Теперь необходимо создать структуру папок нашего проекта. Нажимаем ПКМ по названию проекта и выбираем New->Folder
Создаём вот такую структуру папок:
Теперь необходимо скачать библиотеку CMSIS вот с этого места. Выбираем своё семейство МК и скачиваем. Размещаем эту библиотеку недалеко от проекта и переносим необходимые для проекта файлы из скачаной библиотеки. Какие файлы и куда переписать можно посмотреть из скнишота выше. Уточняю! нам нужны только следующие файли из библиотеки:
Я использовал для копирования файлов ‘mc’ входящий в стандартный репозиторий linux.
Далее нам нужно создать в папке Code->inc файл main.h и записать в этот файл следующий код:
Следующий файл с именем main.c нужно создать в папке Code->src и записать в него этот код:
Далее нам нужно перейти в настройки проекта в меню показанное на скрине. Вам будет предложено выбрать МК. нажимаем ОК.
В следующем окне изменяем название файла Debug_STM32F103C8_FLASH.ld на STM32F103C8_FLASH.ld и выбираем путь для сохранения – папку StartUp
Жмём Finish. В следующем окне жмём ОК.
Ну а теперь про ошибки которые возникают при первой компиляции нашего пустого проекта. Ошибка следующая:
Вот скрин ошибки:
Исправляеться эта ошибка следующим образом. Открываем файл core_cm3.c и находим там строки 736 и 753. Они будут выглядет следующим образом:
Исправляем их на эту строку: Если быть точнее то вместо “=r” вставляем “=&r” Должно получиться вот так:
С остальными ошибками я справилься. Незнаю почему так произошло но у меня слетели пути к папкам проекта.