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:

iar-1-1

Потім послідовність дій наступна:

  • жмемо правою кнопкою миші (ПКМ) на корінь дерева, обираємо 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... ну ви зрозуміли :-)

В результаті повинно вийти таке дерево:

iar-1-2

Тепер потрібно налаштувати 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... ну і так далі, на картинці все видно:

iar-1-4

Так-так, ви все правильно зрозуміли: наш «нічого не роблячий код» займає 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

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

Top