IAR та STM32 CORTEX M0. Частина 0x01. Підготовка платформи IAR
В одній і попередніх статей [1] я вже настраював IAR (для STM32F10x), тому розберемо цей процес ще раз (не потрібно шукати логіку, повторення — мати заїкання!). Після запуску програми обираємо Project → Create New Project → C → 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 → Add → Add Group... → CMSIS;
- ПКМ на src → Add → Add Group... → inc;
- ПКМ на src → Add → Add Group... → startup;
- ПКМ на src → Add → Add 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
Прикреплені файли:
- iar_project.zip (34 Кб)