IAR и STM32 CORTEX M0. Часть 0x01. Подготовка платформы IAR

В одной и прошлых статей [1] я уже настраивал IAR (для STM32F10x), поэтому разберем этот процесс ещё раз (не надо искать логику, повторение — мать заикания!). После запуска программы выбираем Project → Create New ProjectC → main → OK. Будет предложено выбрать папку и название проекта. Для большей пользы (ква, и удобства!) мы будем не просто клепать примеры, а оформим их как библиотеки (понадобится нам какой-нибудь UART — раз и подключили!). Так что рекомендую проект назвать main, он будет базой для наших самописных буль-буль… библиотек.

Структуру папок будем настраивать в соответствии со статьями [2, 3] (далее — выжималка из них). Сворачиваем пока IAR, идем в папку с проектом (ага, вы ведь запомнили, куда он сохранился?!). Видим там файлик main.c (ворчим под нос что-то про беспорядок), создаем папку src и переносим его туда. Теперь возвращаемся в IAR, находим дерево в панели Workspace и удаляем оттуда main.c:

Затем последовательность действий следующая:

  • жмем правой кнопкой мыши (ПКМ) на корень дерева, выбираем Add → Add Group → src → OK;
  • ПКМ на src, Add → Add Files… Находим наш main.c и нажимаем открыть;
  • Сворачиваем IAR, в папке src создаем папки CMSIS, inc, lib, startup;
  • Копируем в папку CMSIS файл system_stm32f0xx.c (лежит в архиве после статьи);
  • Копируем в папку inc файлы stm32f0xx.h, system_stm32f0xx.h (лежат в архиве);
  • Копируем в папку startup файл startup_stm32f0xx.s (в архиве);
  • Копируем в папку lib… ничего не копируем, мы еще не написали библиотек 🙂

Лирическое отступление. Папки CMSIS, inc и startup я специально вынес в отдельный архив, потому что хотя их теоретически и можно найти на официальном сайте, но мне пришлось потратить не один час, выискивая их по разным уголкам. Если сейчас их можно где-то найти в нормальном виде (на офсайтах), просьба отписаться в комментах.

А мы продолжаем:

  • Возвращаемся в IAR;
  • ПКМ на src → AddAdd Group… → CMSIS;
  • ПКМ на src → AddAdd Group… → inc;
  • ПКМ на src → AddAdd Group… → startup;
  • ПКМ на src → AddAdd Group… → lib;
  • ПКМ на CMSIS → Add Files… Добавляем файлы из папки CMSIS;
  • ПКМ на inc → Add Files… Добавляем файлы из папки inc;
  • ПКМ на startup → Add Files… Добавляем файлы из папки startup;
  • ПКМ на lib → Add Files… ну вы поняли 🙂

В результате должно получиться такое дерево:

Теперь нужно настроить CMSIS, выбрать камушек и прописать пути:

  • ПКМ на корень дерева → Options…, откроется окно настроек:

  • General Options → вкладка Target → опция Device → кнопка справа → ST → STM32F030 → ST STM32F030×6;
  • General Options → вкладка Library Configuration → галка Use CMSIS;
  • C/C++ Compiler → вкладка Preprocessor. В поле Additional include directories добавляем две строки «.inc» и «..inc» (без кавычек);
  • Output Converter → вкладка Output → галка Generate additional output → Output format: binary;

Теперь нажимаем OK. На этом подготовка платформы закончена. Копируем в правое окно простейший код:

#include «stm32f0xx.h»

int main() {
return 0;
}

И пытаемся скомпилировать: F7. Если вы все сделали правильно, должно скомпилироваться без ошибок. Но, информация по дефолту скудная: непонятно, сколько наш код весит и сколько оперативки потребляет. А с учетом наших ограничений, вопрос не праздный, потому жмем ПКМ → Options… ну и так далее, на картинке все видно:

Да-да, вы все правильно поняли: наш «ничего не делающий код» занимает 712 байт флеша (readonly code memory) и килобайт оперативки (readwrite code memory)! Ужас, будь это авр, мы бы удавились с такой расточительности :)) Но у нас не авр, так что давайте приступим к программированию… хотя… стойте, а что программировать-то будем?..

Список литературы:

1. http://easyelectronics.ru/arm-uchebnyj-kurs-iar-ewarm-sozdanie-proekta-chast-3-podklyuchenie-colink-tancy-s-bubnom-i-bez.html
2. http://easyelectronics.ru/arm-uchebnyj-kurs-iar-ewarm-sozdanie-proekta-chast-3-podklyuchenie-colink-tancy-s-bubnom-i-bez.html
3. http://easyelectronics.ru/arm-uchebnyj-kurs-iar-ewarm-sozdanie-proekta-chast-2-cmsis-i-standard-peripherals-library.html

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.