Инструменты пользователя

Инструменты сайта


prog:spec:elpower_dualcore_iar

Запускаем микроконтроллер для управления двигателями, "Электросила", в режиме DUALCORE | IDE IAR

В прошлой статье мы рассмотрели запуск и отладку микроконтроллера для управления двигателями “Электросила” в режиме DUALCORE в IDE Keil с помощью программатора ULINK2 – рекомендуем прочесть перед рассмотрением этой статьи, так как большая часть теоретической информации здесь будет опущена.

Мне в руки попал CMSIS-DAP совместимый адаптер производства компании Миландр и программатор I-jet производства компании IAR Systems. На рисунке ниже представлены фотографии двух этих программаторов. CMSIS-DAP от компании Миландр на данный момент находится в разработке.

Если кратко, то CMSIS-DAP является стандартом, позволяющим получить доступ к порту отладки микроконтроллера (the Coresight Debug Access Port) на ядре ARM Cortex через USB. CMSIS-DAP, как правило, реализован в виде встроенной интерфейсной микросхемы, обеспечивающей прямое USB-подключение со стороны машины разработчика к отладчику, и через JTAG или SWD от отладчика к целевому устройству. В основе CMSIS-DAP программатора от Миландр лежит микроконтроллер 1986ВЕ92QI.

В среде IAR запустить микроконтроллер “Электросила” в режиме DUALCORE и произвести отладку двух ядер можно ТОЛЬКО с помощью CMSIS-DAP программатора или I-jet. Ранее с ULINK2 мы были ограничены лишь средой Keil uVision, не имея возможность произвести отладку где-то еще.

Программатор J-Link не поддерживает двухъядерную отладку ни в среде Keil, ни в среде IAR

Проект для IDE IAR, который будет рассмотрен в статье, доступен по ссылке.

Для открытия проекта необходимо запустить MLDR124_test.eww из папки IAR_Systems. Это рабочее пространство основного проекта. Рабочее пространство MLDR124_slave.eww будет подключаться для запуска вторым ядром в ходе настройки, представленной ниже.

Перед работой не забудьте добавить поддержку микроконтроллера “Электросила” в среду IAR. Это можно сделать согласно этой статье

Обратите внимание, что по пути проекта *\IAR_Systems\FLASH\Exe находится файл MLDR124_test.hex, который можно сразу прошить в микроконтроллер и приступать к отладке, не забыв выставить указанные настройки ниже.

Помощь при написании, как и в прошлой статье, оказала презентация Миландра с выставки “ЭкспоЭлектроника”. Она доступна по следующей ссылке

Процесс перехода из режима LOCKSTEP в режим DUALCORE принципиально ничем не отличается от проекта для Keil. В файле startup_mldr124.s для обработчика Reset_Handler прописаны инструкции, после которых произойдет переход в режим DUALCORE. Ядра 0 и 1 продолжат выполнять программу по отдельности. Сама программа устроена с помощью мьютексов, в процессе запуска проекта одно ядро будет мигать зеленым светодиодом на отладочной плате на базе микроконтроллера “Электросила”, а второе ядро красным светодиодом.

Настройки среды IAR для двухъядерной отладки с помощью программатора CMSIS-DAP

Для того, чтобы настроить среду IAR для двухъядерной отладки по программатору CMSIS-DAP необходимо выполнить по шагам следующие действия:

1. Собрать проект.

2. Зайти в настройки проекта, нажав правую кнопку мыши по названию проекта.

3. Выбрать пункт Debugger.

4. В выпадающем списке Driver выбрать CMSIS DAP

5. Перейти во вкладку Download.

6. Указать путь для файла конфигурации для загрузчика памяти программ (все файлы для микроконтроллера “Электросила” должны быть заранее установлены в среду).

7. Перейти во вкладку Multicore.

8. Если у Вас версия IDE IAR 8.3x, то нужно поставить галочку возле строки Enable multicore master mode, тем самым активировав режим ведущего для текущего проекта. В версии IDE IAR 8.4x нужно выбрать пункт "Simple", чтобы запустить возможность заполнения аналогичных полей для двухъядерной отладки.

9. Указать путь к рабочему пространству ведомого проекта. Путь до файла с рабочим пространством ведомого по умолчанию задан корректно, однако, сам файл лежит в папке /IAR_Systems

10. Указать название проекта ведомого.

11. Задать конфигурацию для проекта ведомого. По умолчанию FLASH.

После настройки можно приступать к отладке. В IDE IAR имеются две кнопки для запуска процесса отладки, подробнее на рисунке ниже.

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

В случае с адаптером CMSIS-DAP производства Миландр подходит просто запуск отладки. Файл с прошивкой был заранее загружен в микроконтроллер.

Настройки среды IAR для двухъядерной отладки с помощью программатора IAR Systems I-jet

Настройка аналогична CMSIS-DAP, только в четвертом пункте необходимо во всплывающем списке выбрать I-jet/JTAGjet.

После этого можно приступать к отладке.

Отладка двух ядер

После запуска режима отладки можно будет наблюдать два окна IDE IAR, помеченных как MLDR124_test – Master и MLDR124_slave – Slave. Окно мастера отвечает за первое ядро (в IDE помечено цифрой “0”), соответственно, на панели инструментов для первого ядра будет закрашенная стрелка или квадратик, в зависимости от того, активно ядро или нет, а для второго эти символы будут пустыми. Всё это указывает на то, что из первого окна Вы можете управлять режимом отладки ТОЛЬКО для первого ядра. Аналогично для второго окна.

Возможные трудности при запуске отладки двух ядер на отладочной плате "Электросила"

1. Если при работе с программатором I-jet Вы увидели ошибку из картинки ниже, когда запускаете отладку вместе с загрузкой программы (зеленая кнопка "Download and Debug", которая описывается ранее в статье), то для её устранения необходимо нажать кнопку S5 на отладочной плате. Кнопка снимает питание аналоговой части: без её нажатия загрузка программы в среде IAR через программатор I-jet может выполняться не всегда.

2. Была выявлена особенность работы при использовании версии IDE IAR 8.40 вместе с программматором I-jet. Когда происходит загрузка отладки, может произойти ситуация, когда одно из ядер по непонятным причинам на момент запуска оказывается в HardFault. Для устранения ошибки достаточно перезагрузить микроконтроллер, после этого отладка двух ядер происходит в штатном режиме.

3. Если Вы запускаете тот же пример из официального пака для IDE IAR, представленного на официальном сайте, то обратите внимание на общую структуру проекта. Чтобы иметь возможность отладить проекта (запустить второе окно среды для второго ядра), в настройках Debugger → Multicore нужно выставить следующие настройки:

prog/spec/elpower_dualcore_iar.txt · Последние изменения: 2019/10/01 10:41 — ilya