[i] Создаем проект для МК К1986ВК025 в IAR EW for RISC-V

ID статьи: 37450
Дата последнего изменения: 23.04.2024 16:32:55

Поддержка микроконтроллера К1986ВК025 на базе ядра RISC-V предусмотрена как в среде IDE Eclipse (подробнее в соответствующей статье), так и в среде IAR Embedded Workbench for RISC-V. При работе с IAR EW требуется использовать программатор I-Jet.

Статья содержит информацию о:

1. Добавлении поддержки МК К1986ВК025 в среду IAR EW for RISC-V.

2. Создании и конфигурации базового проекта.

3. Особенностях конфигурации отладочной платы и подключении отладчика при работе с IAR EW for RISC-V.

4. Запуске отладки проектов в среде IAR EW for RISC-V.

5. Дополнительных особенностях настроек среды/использования файлов поддержки.

Вводные сведения о библиотеке MDR32VF0xI и организации проектов

По состоянию на 2024 год предполагается переход на микросхемы MDR1206FI, MDR1206AFI, которые являются усовершенствованной версией К1985ВК025 (MDR32F02) с некоторыми отличиями. Поскольку МК MDR1206(A)FI функционально близки к К1986ВК025, программная поддержка уровня CMSIS и SPL для микроконтроллеров К1986ВК025 (MDR32F02), MDR1206FI и MDR1206AFI реализована в общей библиотеке - MDR32VF0xI. Поэтому информация из данной статьи по большей части также применима и для MDR1206(A)FI.

В свою очередь проекты (в том числе шаблонов) для микроконтроллеров реализованы как один общий для всех, так и раздельные индивидуально под МК.

Для выбора конкретного МК необходимо выбрать соответствующий макрос USE_MDR... в файле MDR32VF0xI_config.h на уровне SPL или, если уровень SPL не используется и используется только уровень CMSIS, в файле system_MDR32VF0xI_config.h на уровне поддержки устройства (DeviceSupport) в CMSIS. После выбора конкретного МК с помощью макроса при сборке проекта необходимо также выбрать соответствующую микроконтроллеру конфигурацию сборки. Для К1986ВК025, не смотря на то, что микроконтроллер один, макросов предусмотрено два (с сохранением одной конфигурации сборки) - для ревизий 1.0, 1.1 и ревизии 2.0. 

Примеры проектов с общим для микроконтроллеров MDR32F02, MDR1206FI, MDR1206AFI функционалом реализованы в общем для всех примере. Например, проект MDR32VF0xI_Led является общим для всех этих МК. 

1. Подготовка среды IAR EW for RISC-V

Для добавления поддержки МК К1986ВК025 (MDR32F02) в среду IAR EW for RISC-V необходимо запустить установочный exe-файл, который автоматически добавит требуемые файлы, из архива в "Файлы поддержки IDE IAR EW for RISC-V для МК К1986ВК025, MDR1206FI, MDR1206AFI" - предварительно рекомендуется ознакомиться с информацией в ReadMe.pdf. После этого в настройках проекта можно будет выбирать МК: Milandr -> MDR32VF0xI -> "Milandr MDR32F02".

2. HelloWorld для К1986ВК025

После запуска среды IAR EW for RISC-V необходимо создать новое рабочее пространство (File->New Workspace), затем - новый проект (Project->Create New Project...). В окне "Create New Project" следует выбрать Milandr project templates->MDR32F02 empty project. Также может быть выбран вариант "MDR1206AFI empty project" - информация о различии приведена выше.


Рисунок 1 - Окно создания нового проекта

После создания и сохранения файла проекта будет создан новый пустой проект, в котором, уже произведены основные настройки.

В меню настроек можно зайти, нажав ПКМ по проекту, и в появившемся всплывающем окне выбрав пункт "Options...". Из примененных настроек стоит обратить внимание на настройки программатора - для микросхем ревизий 1 и 1.1 в настройках сброса должен быть выбран пункт Software, иначе будет невозможно подключиться программатором к микроконтроллеру до сброса питания (рисунок 2).


Рисунок 2 - Выбор типа сброса в настройках отладчика I-jet


2.1. Конфигурации проекта

В шаблоне проекта MDR32F02 empty project реализованы несколько конфигураций: 

Различия в этих конфигурациях заключаются в расположении кода и данных.

В конфигурациях "RAM_TCM_Debug" весь код и данные расположены в ОЗУ, поэтому конфигурация подходит только для отладки - код загружается в микроконтроллер только отладчиком-программатором при входе в отладку, при сбросе по питанию ОЗУ очищается.

В конфигурациях "FLASH" код программы расположен в Flash-памяти, данные расположены в ОЗУ. Так как используется FLASH-память, для ее программирования применяется алгоритм Flashloader.

За указание расположения областей программы по определенным регионам памяти отвечает файл Linker Configuraion, указываемый в настройках проекта (Options for node...->Linker->Linker configuration file). В меню настроек можно зайти, нажав ПКМ по проекту, и в появившемся всплывающем окне выбрав пункт "Options...". В файлах поддержки для IAR EW реализованы 3 Linker-файла для размещения кода программы в Flash-памяти, памяти TCM RAM или AHB RAM (рисунок 3) - пользователем могут быть выбраны другие самостоятельно разработанные варианты.


Рисунок 3 - Выбор Linker файла для расположения кода в ОЗУ или FLASH


2.2. Код проекта

Код для проекта HelloWorld можно взять из папки ExampleProjects\MDR32VF0xI\MDR32VF0xI_Led (файл main.c в папке src) из архива "Файлы поддержки IDE IAR for RISCV для МК 1986ВК025, MDR1206FI, MDR1206AFI". 

В проекте MDR32VF0xI_Led осуществляется подключение требуемых библиотек (заголовочный файл МК, библиотеки тактирования и портов общего назначения), включение тактирования порта D и инициализация его выводов 0-3 (на отладочной плате К1986ВК025 ТСКЯ.468998.125 светодиоды LED[4:1] заведены на выводы PD[3:0]), отключение светодиодов LED[4:1] и затем циклическое их переключение.

После копирования кода из примера MDR32VF0xI_Led в файл main.c проекта необходимо скомпилировать проект (рисунок 4) с помощью кнопки на верхней панели, или же ПКМ по проекту->Make (выделено на рисунке 4 красным) - при этом среда IAR потребует сохранить рабочее пространство.


Рисунок 4 - Компиляция проекта

3. Подготовка отладочной платы, подключение отладчика

Для работы с I-Jet по JTAG на отладочной плате должны быть убраны перемычки на разъёме JTAG TO USB. Более подробно о возможностях отладки микроконтроллера К1986ВК025 на отладочной плате - в статье Создаем проект для МК К1986ВК025 в IDE Eclipse

На отладочной плате должны быть установлены перемычки на разъемах 3V3 to LED и 3V3 to LCD_LED.

Стоит обратить внимание, что питание VCCB формируется дополнительным источником питания - например, батарейкой. Вместо батарейки питание VCCB можно подать с VCC, установив перемычку на отладочной плате между разъёмами Ucc и BUcc.
Для работы МК из внутренней Flash памяти на отладочной плате переключателями MODE[1:0] должен быть выбран режим 2'b00. Для запуска из внутренней ОЗУ - режим 2'b11.Однако при этом стоит иметь в виду, как работает режим отладки в IAR - вне зависимости от установленного на MODE[1:0] режима работа загрузочной программы пропускается. Выбор режима загрузки MODE имеет смысл при наличии запрограммированной в область BOOT типовой загрузочной программы, поскольку является ее программным функционалом.
Не допускается подключение внешнего отладчика к отладочной плате при установленных перемычках на разъёме JTAG to USB.

4. Запуск проекта

После успешной компиляции проекта можно приступить к отладке. Для этого нужно выбрать пункт Project->Download and Debug. После этого произойдёт прошивка памяти Flash (если используются конфигурации "FLASH" - в конфигурациях "RAM_TCM_Debug" ПО запускается из ОЗУ без программирования Flash-памяти) и будет запущен режим отладки. Для запуска проекта следует выбрать опцию Debug->Go (или клавиша F5).

Для просмотра регистров ядра и периферии нужно перейти в пункт View->Registers->Registers 1 - после этого появится окно просмотра регистров.

Перед запуском отладки, если требуется просмотр регистров периферийных блоков микроконтроллера К1986ВК025 (MDR32F02) ревизий 1 и 1.1, необходимо изменить подключаемый по умолчанию файл Device Description File в настройках проекта - в категории Debugger, вкладка Setup(рисунок 5). По умолчанию подключен файл ddf для К1986ВК025 ревизии 2.


Рисунок 5 - Выбор используемого ddf-файла для отладки


Для прошивки памяти без запуска режима отладки: Project->Download->Download active application. При этом, однако, программирование образа загрузочной программы, если она указана в настройках проекта в категории Debugger, осуществляться не будет. 

Для стирания Flash памяти: Project->Download->Erase memory

Контактная информация

Сайт:https://support.milandr.ru
E-mail:support@milandr.ru
Телефон: +7 495 221-13-55