Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Данная статья посвящена тому, как начать работать с микроконтроллерами компании Миландр в среде IAR EW.
В разделе Резюме - Quick Start представлен краткий перечень необходимых действий для начала работы в IAR EW.
Скачать дистрибутив среды можно с сайта IAR for ARM. На главной странице надо выбрать "ARM. IAR Embedded Workbench for Arm", кнопка "Free trial".
Для пользователей из России для загрузки может потребоваться VPN.
По факту загрузки дистрибутива запускаем инсталлятор, после соглашения с лицензией нужно выбрать поддержку внутрисхемных отладчиков из списка. Рекомендуется оставлять все предлагаемые при установке настройки по умолчанию.
Рисунок 1 - Окно инсталлятора
При первом запуске среды IAR открывается окно с выбором лицензии. Так как лицензионного ключа нет, следует выбрать пункт с ознакомительной лицензией.
В следующем окне необходимо нажать Register, после чего откроется окно браузера, где необходимо выбрать лицензию. Доступно два варианта - полная версия на 30 дней, или ограниченная по размеру кода, но бессрочная лицензия. Для демонстрационных примеров достаточно ограниченной по размеру коду версии. Далее необходимо заполнить регистрационные данные, в том числе Email, на который будет выслана ссылка для подтверждения регистрации.
Рисунок 3 - Окно регистрации и ввода лицензионного ключа
После заполнения формы и принятия лицензионного соглашения на указанный при регистрации электронный адрес приходит письмо, в котором нужно нажать на ссылку подтверждения. По ссылке находится страница с кодом регистрации, который нужно ввести в окно регистрации в текстовое поле ввода регистрационного ключа. После ввода ключа в этом и следующем окне следует нажать кнопку "Далее >". Запустится активация лицензии, потом появится окно успешной активации.
Теперь необходимо скачать файлы поддержки микроконтроллеров компании Миландр. Архив "Software pack для IAR для МК К1986ВЕ92QI, К1986ВЕ1QI, К1901ВЦ1QI, К1986ВК01GI" доступен для загрузки на официальном сайте, на странице "Программное обеспечение", раздел "Software pack для IAR + Standard Peripherals Library".
Внутри архива находится инсталлятор Setup_MDR_to_IAR_vx.x.exe, который выполняет копирование необходимых файлов в директорию установки IAR. При запуске требуется указать путь, где лежит IAR. По умолчанию используется путь C:\Program Files (x86)\IAR Systems\Embedded Workbench 8.0.
Если по каким-либо причинам воспользоваться инсталлятором не удаётся, то необходимо вручную скопировать файлы из папки "Embedded Workbench" в директорию установки IAR - фактически, в этой папке и содержатся все необходимые файлы поддержки для микроконтроллеров.
Также внутри архива расположена папка "Example_Projects", в которой содержится Workspace c проектами мигания светодиодом для микроконтроллеров (HelloWorld). Дополнительно в этой папке имеется папка "Libraries", где находятся все библиотечные файлы для микроконтроллеров компании Миландр.
Теперь среда готова для создания первого проекта.
Рисунок 4 - Окно создания нового проекта
В рамках статьи проект сохранен в созданную директорию C:\CODE\IAR_CODE\MDR32F9Q2I\, название проекта - "HelloWorld". Об организации папок рассказано ниже - "Организация папок проекта и SPL".
Рисунок 5 - Окно сохранения проекта
После выбора директории создался новый проект с пустой реализацией функции main. Для настройки проекта под конкретный микроконтроллер нужно перейти в опции проекта. Окно опций проекта открывается с помощью сочетания клавиш Alt+F7 или в меню "Project->Options...". Далее приведены только те опции, которые необходимо поменять, все остальное следует оставить по умолчанию. Далее по вкладкам:
Выбираем микроконтроллер К1986ВЕ92QI, который относится в рамках работы с IDE IAR к названию устройства "Milandr MDR32F9Q2I".
Рисунок 6 - Выбор микроконтроллера
Если будет необходим HEX файл программы, то можно включить его создание во вкладке "Output Converter".
Рисунок 7 - Выбор создания hex файла прошивки
Здесь можно выбрать файл, задающий раскладку памяти для микроконтроллера. По умолчанию установлен файл "MDR32F9Q2I.icf".
Области памяти можно скорректировать, нажав Edit, но тогда лучше сохранить измененную версию под новым именем, чтобы оставить рабочим исходный вариант.
В закладке Setup необходимо выбрать используемый отладчик, например, CMSIS-DAP или J-Link/J-Trace.
Рисунок 8 - Выбор отладчика
В следующей закладке "Download" можно выставить опцию "Verify download" для верификации программы после программирования.
Рисунок 9 - Вкладка Download
В настройках отладчика CMSIS-DAP можно выбрать использование Jtag или SWD.
Рисунок 10 - Настройки CMSIS-DAP
В данном окне следует выставить следующие опции: стартовая частота микроконтроллера - 8МГц, Reset - Reset Pin. Далее можно выбрать использование Jtag или SWD, а так же увеличить скорость подключения.
Рисунок 11 - Настройки JLink
Для сохранения изменений используется кнопка Save All. При первом сохранении среда IAR предложит сохранить Workspace текущего проекта; сохраняем под таким же именем "HelloWorld". При следующих запусках среды выбираем File - Recent Workspaces, и IDE открывается в оставленном состоянии.
Проект организован таким образом, чтобы Startup-файлы запуска микроконтроллера располагались в папке Startup, файлы драйверов - в папке Drivers, а файлы программы, в данном случае файл main.c - в папке src.
Каждый раз копировать файлы библиотек в папку проекта, и затем подключать в среде IAR неудобно, поэтому в данной статье библиотечные файлы размещены по стационарному адресу и подключаются во всех проектах файлы из одного источника. Преимущество данного решения в том, что при исправлении ошибки в общих исходных файлах, изменения появятся во всех связанных с библиотекой проектах, потребуется лишь повторная компиляция.
Итоговая организация файлов в директории: в общей папке IAR_CODE лежит папка Libraries (соответственно, перенесем папку "Libraries" по пути C:\CODE\IAR_CODE\), и по папке для каждого микроконтроллера, внутри которых создаются отдельные проекты. Проекты используют библиотечные файлы SPL, которые подключаются относительными путями от папки проекта. Использование абсолютных путей сделает проект непереносимым в другое место, поэтому лучше использовать относительные пути. При переносе или копировании проекта куда-то, необходимо будет скопировать проект и папку "Libraries", сохраняя их относительное расположение. Тогда проект будет успешно собираться из другого места.
Ниже приведена организация директорий и файлов для МК К1986ВЕ92QI, которая будет использоваться в проекте.
IAR_CODE\ - Общая папка с проектами в IAR
MDR32F9Q2I\ - папка проектов под 1986VE9x
HelloWorld - папка проекта
Libraries\ - библиотеки
CMSIS\
MDR32FxQI\
CoreSupport - поддержка ядра
DeviceSupport\
MDR32F9Q2I\ - startup файлы
inc
startup\iar
SPL\ - файлы SPL
MDR32FxQI\
inc
src
MDR32FxQI_config.h - пример файла выбора МК и настроек библиотеки SPL
Данная организация уже приведена в "Example_Projects", поэтому можно воспользоваться ей для дальнейшей работы.
Файл "MDR32FxQI_config.h" в стандартном архиве с SPL требуется скопировать в папку с проектом, после чего открыть этот файл в любом текстовом редакторе (например, в блокноте или Notepad) и выбрать требуемый МК, раскомментировав соответствующее макроопределение:
/* Uncomment the line corresponding to the target microcontroller */
// #define USE_MDR32F9Q2I
// #define USE_MDR32F1QI_REV3_4
// #define USE_MDR32F1QI_REV6
// #define USE_MDR32FG16S1QI
В папке "Example_Projects" из архива "IAR Installer" эти изменения не требуются.
Теперь, чтобы среда IAR могла находить файлы SPL в текущей раскладке, необходимо указать ей пути для поиска при сборке. Для этого в дереве проекта нужно нажатием левой кнопкой мыши выбрать самый верхний пункт "HelloWorld - Debug", чтобы он был активен, и открыть опции проекта (сочетания клавиш Alt+F7, или в меню "Project->Options..."). Если не выбрать верхний пункт проекта, а будет активен какой-то другой файл из групп в дереве проекта, то при нажатии Alt+F7 откроются опции этой группы. Так как в данном случае нужно указать пути для всех групп в проекте, нужно выбрать самый верхний узел в дереве.
В категории "С/С++ Compiler" нужно выбрать вкладку Preprocessor. В этой вкладке в поле "Additional include directories" необходимо добавить сформированные пути. После добавления путей директорий их следует заменить на относительные пути (так как при добавлении они являются абсолютными).
Вот пути до требуемых файлов относительно папки проекта:
$PROJ_DIR$\..\..\Libraries\CMSIS\MDR32FxQI\CoreSupport\CM3
$PROJ_DIR$\..\..\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\inc
$PROJ_DIR$\..\..\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\startup\iar
$PROJ_DIR$\..\..\Libraries\SPL\MDR32FxQI\inc
$PROJ_DIR$\..\..\Libraries\SPL\MDR32FxQI\inc\USB_Library
$PROJ_DIR$\..
$PROJ_DIR$\.
При расположении прочих проектов по данной раскладке, эти пути останутся правильными.
При добавлении путей через диалоговое окно необходимо следующее:
Добавить путь до директории через диалоговое окно
Путь получился абсолютным
Нажать на кнопку с треугольником
В выпавшем меню выбрать вариант с путем относительно директории проекта
Для компиляции минимального проекта к уже существующему файлу main.c необходимо подключить startup-файлы.
Перед подключением файлов в проект будет удобно завести переменную в среде IAR, которая будет задавать путь к папке с кодом IAR_CODE. Для этого в главном меню выбираем Tools - Configure Custom Argument Variables.
Рисунок 14 - Tools - Configure Custom Argument Variables
В открывшемся окне:
Создать группу MDR_Lib нажатием кнопки "New Group..."
Добавить новую переменную MDR_CODE со значением C:\CODE\IAR_CODE нажатием кнопки "Add Variable...", которая будет задавать путь к корневой папке
Рисунок 15 - Добавление пользовательской переменной
Если проект не был сохранен, а при первом сохранении сохраняется Workspace, то кнопки в данной форме будут неактивны. Поэтому перед заходом в данную форму нужно сохранить Workspace (кнопка Save All на тулбаре).
После этого при подключении файлов из директории IAR_CODE пути в проекте будут указываться относительно переменной $MDR_CODE$, следовательно при переносе проекта в другое место достаточно будет переназначить новый путь в переменной MDR_CODE.
Теперь можно подключить необходимые для компиляции пустого проекта файлы. Для этого по нажатию правой кнопкой мыши по созданной группе Startup следует выбрать пункт Add - Add Files и подключить файлы startup_MDR32F9Q2I.S, system_MDR32F9Q2I.c и system_MDR32F9Q2I.h, находящиеся по пути C:\CODE\IAR_CODE\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\startup\iar (при этом нет необходимости добавлять их по одному, так как можно выделить все и добавить разом).
После этого проект должен собираться - меню Project - Rebuild All. Окно Build сообщит о статусе сборке проекта (0 ошибок).
Для проверки того, что файлы подключились через переменную $MDR_CODE$, по нажатию правой кнопки мыши на заголовок в дереве проекта "HelloWorld - Debug" выберем в выпадающем меню Open Containing Folder. Откроется окно проводника в Windows с выделенным файлом HelloWorld.ewp. Если открыть его как текстовый документ (например, с помощью блокнота), в самом низу можно увидеть следующие строки, указывающие пути подключенных файлов:
<group>
<name>Startup</name>
<file>
<name>$MDR_CODE$\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\startup\iar\startup_MDR32F9Q2I.S</name>
</file>
<file>
<name>$MDR_CODE$\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\startup\iar\system_MDR32F9Q2I.c</name>
</file>
<file>
<name>$MDR_CODE$\Libraries\CMSIS\MDR32FxQI\DeviceSupport\MDR32F9Q2I\startup\iar\system_MDR32F9Q2I.h</name>
</file>
</group>
Как видно, пути указаны через переменную $MDR_CODE$. Данный подход может помочь при необходимости перенести весь репозиторий с проектами (т.е. папку IAR_CODE) в новое расположение или на другой компьютер с минимальными усилиями.
Код для main.c взят из проекта Hello World - светодиод. В этом коде используются библиотечные файлы управления портами и тактовой частотой. Для их подключения к проекту нужно добавить файлы MDR32FxQI_port.c и MDR32FxQI_rst_clk.c, расположенные в IAR_CODE\Libraries\SPL\MDR32FxQI\src\. Заголовочные *.h файлы подключать не нужно, так ка пути к ним уже прописаны и они найдутся сами.
После компиляции (F7 или через кнопку в меню) проекта окно Build сообщит об успешной компиляции. Для прошивки микроконтроллера получившейся программой следует выбрать в меню Project - Download - Download active application. После загрузки программы микроконтроллер начнёт мигать светодиодом.
В случае использования программаторов Segger, при загрузке в устройство подключенное впервые, драйвера Segger запрашивают какое ядро Cortex подключено.
Выбор должен быть таким:
В итоге, для того чтобы начать работать в IAR с микроконтроллерами компании Миландр необходимо:
Сайт: | https://support.milandr.ru |
E-mail: | support@milandr.ru |
Телефон: | +7 495 221-13-55 |