[i] Настройки проекта IDE Keil для МК К1901ВЦ1QI и МК семейства К1986ВЕ9x
В статье представлено краткое описание всех вкладок опций проекта в среде IDE Keil на примере микроконтроллеров семейства К1986ВЕ9x:
- К1986ВЕ92FI (MDR1211FI), К1986ВЕ92F1I (MDR1211F1I), К1986ВЕ94GI (MDR1209GI);
- К1986ВЕ91Т, К1986ВЕ92У, К1986ВЕ92У1, К1986ВЕ93У, К1986ВЕ94Т;
- К1986ВЕ92QI (MDR32F9Q2I).
А также для микроконтроллера К1901ВЦ1QI (MDR32FG16S1QI).
Опции проекта можно открыть через меню "Project - Options for Target…", либо через Toolbar (рисунок 1).
Рисунок 1 - Открытие "Options for Target…" через Toolbar
Содержание
|
1. Device 2. Target 3. Output 4. Listing 5. User 6. C/C++ 7. Asm 8. Linker 9. Debug 9.1 J-Link, окно 'Target device settings' 9.2 Настройки программатора 10. Utilities |
1. Device
Рисунок 2 - Options for Target. Вкладка 'Device', K1986VE92xI
В этой вкладке указан Device (микроконтроллер), для которого собирается проект. Справа в соседнем окне выводится информация о названии и основных характеристиках микроконтроллера.
Выбор Device в зависимости от микроконтроллера:
- K1986VE92xI - K1986VE92FI (MDR1211FI), K1986VE92F1I (MDR1211F1I);
- K1986VE94GI - К1986ВЕ94GI (MDR1209GI);
- MDR1986BE91 - К1986ВЕ91Т;
- MDR1986BE92 - К1986ВЕ92У, К1986ВЕ92У1;
- MDR1986BE93 - К1986ВЕ93У;
- MDR1986BE94 - К1986ВЕ94Т;
- MDR32F9Q2I - К1986ВЕ92QI.
Если требуется выбрать К1901ВЦ1QI, нужно перейти в категорию Cortex-M3 with DSP и выбрать MDR32FG16S1QI.
2. Target
Рисунок 3 - Options for Target. Вкладка 'Target'
Внизу вкладки 'Target' указано расположение областей памяти в микроконтроллере. Эти значения также могут использоваться во вкладке 'Linker'. Изменять их не требуется, они автоматически устанавливаются из описания.
3. Output
Рисунок 4 - Options for Target. Вкладка 'Output'
Во вкладке 'Output' можно активировать опцию - Create HEX file, которая добавляет после сборки проекта генерирование выходного образа прошивки в формате Intel HEX. Также можно изменить название исполняемого файла в поле 'Name of Executable'.
4. Listing
Рисунок 5 - Options for Target. Вкладка 'Listing'
Во вкладке 'Listing' выставляются различные опции вывода справочной информации при сборке программы. Самым интересным является *.map файл, в котором показано распределение программы и данных в памяти микроконтроллера.
5. User
Рисунок 6 - Options for Target. Вкладка 'User'
Во вкладке 'User' можно задать различные скрипты, которые будут выполняться автоматически перед компиляцией проекта, перед сборкой (Before Build/Rebuild) и после сборки (After Build/Rebuild).
6. C/C++
Рисунок 7 - Options for Target. Вкладка 'C/C++'
Во вкладке C/C++ выбираются опции компиляции, пути к заголовочным файлам (Include Path) и т.д. В строке "Define" можно задать ключи условной компиляции, если они используются в проекте.
При разработке и отладке программ рекомендуется выключать оптимизацию - "-O0". При высоком уровне оптимизации получается более компактный и быстрый код, но из-за применяемых оптимизаций его сложнее отлаживать. Повышение уровня оптимизации лучше оставить до полного окончания разработки и отладки программы.
7. Asm
Рисунок 8 - Options for Target. Вкладка 'Asm'
Во вкладке 'Asm' приведены настройки ассемблера. При работе с ARM Compiler v6 рекомендуется выбирать автоопределение ассемблера - поле 'Assembler Option', значение 'armclang (Auto Select)'. Иначе может быть выведено предупреждение [i] Warning A1950W (armasm is deprecated) после перехода на новую версию Keil 5.42.0.0.
8. Linker
Рисунок 9 - Options for Target. Вкладка 'Linker', K1986VE92xI
Во вкладке 'Linker' приведены настройки компоновщика. При сборке проекта компоновщик использует конфигурационный scatter-файл, в котором задается адресное пространство микроконтроллера (адресация областей EEPROM и RAM, распределение секций и т.д.). Если установлена опция 'Use Memory Layout from Target Dialog', то Keil автоматически генерирует scatter-файл на основе описания областей IROMx/IRAMx из вкладки 'Target'. Однако в драйверах SPL (а именно EEPROM) применяется дополнительная секция в памяти ОЗУ, в связи с этим при использовании драйвера EEPROM следует использовать scatter-файл, входящий в состав Software Pack (расположен в папке RTE\Device\"MCU" относительно проекта).
В зависимости от микроконтроллера путь к scatter-файлу будет следующим:
- К1986ВЕ92FI, К1986ВЕ92F1I - .\RTE\Device\K1986VE92xI\K1986VE9xI.sct;
- К1986ВЕ94GI - .\RTE\Device\K1986VE94GI\K1986VE9xI.sct
- К1986ВЕ91Т - .\RTE\Device\MDR1986BE91\MDR1986VE9x.sct;
- К1986ВЕ92У, К1986ВЕ92У1 - .\RTE\Device\MDR1986BE92\MDR1986VE9x.sct
- К1986ВЕ93У - .\RTE\Device\MDR1986BE93\MDR1986VE9x.sct;
- К1986ВЕ94Т - .\RTE\Device\MDR1986BE94\MDR1986VE9x.sct;
- К1986ВЕ92QI - .\RTE\Device\MDR32F9Q2I\MDR32F9Q2I.sct;
- К1901ВЦ1QI - .\RTE\Device\MDR32FG16S1QI\MDR32FG16S1QI.sct.
9. Debug
Рисунок 10 - Options for Target. Вкладка 'Debug'
В окне Debug в поле 'Use' выбирается программатор. Поддерживаемые программаторы в IDE Keil приведены в статье [i] Совместимость микроконтроллеров со средами разработки и программаторами.
Рекомендуется сначала подключить программатор к плате через JTAG, а затем к компьютеру через USB. После подключения программатора и USB можно подать питание на плату.
Для перехода к настройкам программатора необходимо нажать кнопку 'Settings'.
9.1 J-Link, окно 'Target device settings'
При первом запуске 'Settings' программатора J-Link открывается окно Target device settings. Поскольку J-Link официально не поддерживает микроконтроллеры Миландр, то необходимо выбрать аналог с корректным указанием ядра из списка и нажать ОК.
Для МК К1901ВЦ1QI и МК семейства К1986ВЕ9x нужно выбрать вариант "Unspecified Cortex-M3".
Рисунок 11 - SEGGER J-Link, Target device settings
Если выбор микроконтроллера был осуществлен неверно, то самый простой способ повторного выбора - это удалить файл JLinkSettings.ini из папки с проектом. После удаления данного файла при открытии 'Settings' программатора J-Link снова открывается окно Target device settings с выбором микроконтроллера.
Также программатор J-Link позволяет прошивать МК без участия среды Keil, информация об этом приведена в статье [i] Программирование контроллеров с помощью J-FLASH Lite.
9.2 Настройки программатора
Сначала необходимо выбрать отладочный интерфейс подключения к плате. Обычно во всех микроконтроллерах с ядрами Cortex-Mx или аналогами доступны два интерфейса - JTAG и SWD. Интерфейс SWD использует меньшее количество выводов для связи, чем JTAG - статья Подключение выводов JTAG в микроконтроллерах.
Например, выбираем Port: SW. После выбора порта, если ранее было подключено питание и если все подключено правильно, то в окне справа появится наше подключенное устройство в JTAG Device Chain. Выбираем рабочую частоту, например, 2 МГц. При такой частоте, как правило, прошивка всегда проходит успешно. При необходимости частоту можно увеличить.
В группе Connect & Reset Options рекомендуется установить подключение с предварительным сбросом, при этом сам сброс необходимо выбрать по выводу RESET микроконтроллера. Для разных программаторов данные настройки немного отличаются, ниже приведены примеры для J-Link и ULINK2/CMSIS-DAP.
Рисунок 12 - Options for Target. Вкладка 'Debug', 'Settings->Debug', J-link
Рисунок 13 - Options for Target. Вкладка 'Debug', 'Settings->Debug', ULINK2/CMSIS-DAP
Во вкладке 'Flash Download' выбираются опции программирования (стирание, программирование, верификация). Дополнительно можно установить опцию Reset and Run, чтобы после завершения программирования отладчик сбрасывал микроконтроллер, и он стартовал уже с новой программой. Ниже в секции Programming Algorithm выбран алгоритм прошивки микроконтроллера. Этот алгоритм берется из *.FLM файла, который входит в состав Software Pack.
При выборе алгоритма необходимо обратить внимание на область памяти, куда будет записываться программа. Эта область должна соответствовать области Flash-памяти. Алгоритм прошивки Flash работает из ОЗУ, поэтому выше представлен диапазон используемого ОЗУ. Эта область также должна соответствовать ОЗУ в карте памяти микроконтроллера.
Рисунок 14 - Options for Target. Вкладка 'Debug', 'Settings->Flash Download', K1986VE92xI
В зависимости от микроконтроллера название FLM будет отличаться:
- К1986ВЕ92F(1)I, К1986ВЕ94GI - K1986VE9xI IAP 128kB Flash Rev_X;
- К1986ВЕ91Т, К1986ВЕ92У, К1986ВЕ92У1, К1986ВЕ93У, К1986ВЕ94Т - 1986VE9xI IAP 128kB Flash Rev_X;
- К1901ВЦ1QI - 1901VC1 IAP 128kB Flash Rev_X.
10. Utilities
Рисунок 15 - Options for Target. Вкладка 'Utilities'
Оставлены настройки по умолчанию. Рекомендуется включить опцию Use Debug Driver, чтобы использовать настройки программатора из вкладки 'Debug'.
После настройки проекта можно приступить к написанию базового проекта Hello World.
Сохранить статью в PDF