[i] Запуск микроконтроллера для управления двигателями К1986ВК01GI в режиме DUALCORE | IDE IAR
В статье Запуск микроконтроллера для управления двигателями К1986ВК01GI в режиме DUALCORE | IDE Keil были рассмотрены запуск и отладка микроконтроллера для управления двигателями К1986ВК01GI в режиме DUALCORE в IDE Keil с помощью программатора ULINK2 – статья рекомендуется к прочтению, так как большая часть теоретической информации в текущей статье опущена.
Имеется CMSIS-DAP совместимый адаптер производства компании Миландр и программатор I-jet производства компании IAR Systems. На рисунке 1 представлены фотографии двух этих программаторов.
Рисунок 1 - Внешний вид программаторов CMSIS-DAP и I-jet
CMSIS-DAP является стандартом, позволяющим получить доступ к порту отладки микроконтроллера (the Coresight Debug Access Port) на ядре ARM Cortex через USB. CMSIS-DAP, как правило, реализован в виде встроенной интерфейсной микросхемы, обеспечивающей прямое USB-подключение со стороны машины разработчика к отладчику, и через JTAG или SWD от отладчика к целевому устройству. В основе CMSIS-DAP программатора от Миландр лежит микроконтроллер К1986ВЕ92QI.
В среде IAR запустить микроконтроллер К1986ВК01GI в режиме DUALCORE и произвести отладку двух ядер можно ТОЛЬКО с помощью CMSIS-DAP программатора или I-jet. Ранее с ULINK2 было ограничение лишь со стороны среды Keil uVision, и возможности произвести отладку где-то еще не имелось.
Для открытия рассматриваемого в статье проекта необходимо запустить общий большой проект HelloWorld_All из папки Example_Projects установочного пака. В этом проекте необходимо выбрать пример "HelloWorld_DualCore_MDR1986VK01 - Debug".
Помощь при написании статьи оказала презентация компании Миландр с выставки “ExpoElectronica”. Презентация доступна по следующей ссылке.
Процесс перехода из режима LOCKSTEP в режим DUALCORE принципиально ничем не отличается от проекта для Keil. В файле startup_MDR1986VK01_DC.s для обработчика Reset_Handler прописаны инструкции, после которых произойдет переход в режим DUALCORE. Ядра 0 и 1 продолжат выполнять программу по отдельности. Сама программа устроена с помощью мьютексов, в процессе запуска проекта одно ядро будет мигать красным светодиодом на отладочной плате на базе микроконтроллера К1986ВК01GI, а второе ядро синим светодиодом.
Настройки среды IAR для двухъядерной отладки с помощью программатора CMSIS-DAP
Для того, чтобы настроить среду IAR для двухъядерной отладки с помощью программатора CMSIS-DAP, необходимо выполнить по шагам следующие действия:
1. Собрать проект.
2. Зайти в настройки проекта, нажав правую кнопку мыши по названию проекта. Наглядно на рисунке 2.
Рисунок 2 - Пример правильного открытия окна Options
3. Выбрать категорию Debugger.
4. В выпадающем списке Driver выбрать CMSIS DAP, как показано на рисунке 3.
Рисунок 3 - Выбор отладчика CMSIS-DAP
5. Перейти в категорию настроек "General Options" и убедиться, что для работы выбран микроконтроллер "Milandr MDR1986VK01" в поле "Device" вкладки "Target" - выбор рабочего микроконтроллера подключит все необходимые файлы для работы с ним.
6. Убедиться, что в категории настроек "Debugger", во вкладке "Download" установлена галочка на опции "Use flash loader(s)". Наглядно настройки из пунктов 5. и 6. приведены на рисунке 4.
Рисунок 4 - Выбор в среде рабочего микроконтроллера и файла, ответственного за загрузку программы в микроконтроллер
7. Перейти во вкладку Multicore категории настроек "Debugger".
8. В версии IDE IAR 8.4x нужно выбрать пункт "Simple", чтобы запустить возможность заполнения полей для двухъядерной отладки. Эти настройки приведены на рисунке 5.
9. Указать путь к рабочему пространству ведомого проекта. Путь до файла с рабочим пространством ведомого необходимо указать такой, где и расположен основной большой проект из установочного пака - в данном случае $WS_DIR$\HelloWorld_All.eww.
10. Указать название проекта ведомого, в данном случае это тот же проект, что и для ведущего, то есть HelloWorld_DualCore_MDR1986VK01.
11. Задать конфигурацию для проекта ведомого. В данном случае используется конфигурация Debug.
Рисунок 5 - Настройки вкладки Multicore
После настройки можно приступать к отладке. В IDE IAR имеются две кнопки для запуска процесса отладки, подробнее на рисунке 6.
Рисунок 6 - Кнопки для запуска процесса отладки
-
При нажатии первой кнопки произойдет загрузка файла прошивки в микросхему, и последует запуск режима отладки.
-
При нажатии второй кнопки запустится сразу режим отладки.
В случае с адаптером CMSIS-DAP производства Миландр подходит просто запуск отладки. Файл с прошивкой был заранее загружен в микроконтроллер.
Настройки среды IAR для двухъядерной отладки с помощью программатора IAR Systems I-jet
Настройка аналогична CMSIS-DAP, только в четвертом пункте необходимо во всплывающем списке выбрать I-jet/JTAGjet, как это показано на рисунке 7.
Рисунок 7 - Выбор отладчика I-jet
После этого можно приступать к отладке.
Отладка двух ядер
После запуска режима отладки запустятся два окна IDE IAR. Первое окно мастера отвечает за первое ядро (в IDE помечено цифрой “0”), соответственно, на панели инструментов для первого ядра будет закрашенная стрелка или квадратик, в зависимости от того, активно ядро или нет, а для второго эти символы будут пустыми. Всё это указывает на то, что из первого окна есть возможность управлять режимом отладки ТОЛЬКО для первого ядра. Аналогично для второго окна. Пример режима отладки для окна Master показан на рисунке 8.
Рисунок 8 - Пример окна Master для режима отладки
Возможные трудности при запуске отладки двух ядер на отладочной плате "Электросила"
1. Только для МК Электросила рев. 1. Если при работе с программатором I-jet появляется ошибка, показанная на рисунке 9, когда запускается отладка вместе с загрузкой программы (зеленая кнопка "Download and Debug", которая описывается ранее в статье), то для её устранения необходимо нажать кнопку S5 на отладочной плате. Кнопка снимает питание аналоговой части: без её нажатия загрузка программы в среде IAR через программатор I-jet может выполняться не всегда.
Рисунок 9 - Демонстрация ошибки IarldePm
2. Была выявлена особенность работы при использовании версии IDE IAR 8.40 вместе с программатором I-jet. Когда происходит загрузка отладки, может произойти ситуация, когда одно из ядер по непонятным причинам на момент запуска оказывается в HardFault. Для устранения ошибки достаточно перезагрузить микроконтроллер, после этого отладка двух ядер происходит в штатном режиме.
3. Если запускается тот же пример из официального пака для IDE IAR, представленного на официальном сайте, то обратите внимание на общую структуру проекта. Чтобы иметь возможность отладить проекта (запустить второе окно среды для второго ядра), в настройках Debugger → Multicore нужно выставить следующие настройки, которые представлены на рисунке 10.
Рисунок 10 - Конфигурация проекта для примера из официального пака для IDE IAR
Сохранить статью в PDF