[i] Настройки проекта IDE Keil для МК семейства К1986ВЕ1x
В статье представлено краткое описание всех вкладок опций проекта в среде IDE Keil на примере микроконтроллеров семейства К1986ВЕ1x:
- К1986ВЕ1FI (MDR1213FI), К1986ВЕ1GI (MDR1213GI);
- К1986ВЕ1Т, К1986ВЕ1АТ;
- К1986ВЕ1QI (MDR32F1QI).
Рисунок 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', K1986VE1xI
В этой вкладке указан Device (микроконтроллер), для которого собирается проект. Справа в соседнем окне выводится информация о названии и основных характеристиках микроконтроллера.
Выбор Device в зависимости от микроконтроллера:
- K1986VE1xI - К1986ВЕ1FI (MDR1213FI), К1986ВЕ1GI (MDR1213GI);
- MDR1986BE1T - К1986ВЕ1Т, К1986ВЕ1АТ;
- MDR32F1QI - К1986ВЕ1QI (MDR32F1QI).
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', K1986VE1xI
Во вкладке 'Linker' приведены настройки компоновщика. При сборке проекта компоновщик использует конфигурационный scatter-файл, в котором задается адресное пространство микроконтроллера (адресация областей EEPROM и RAM, распределение секций и т.д.). Если установлена опция 'Use Memory Layout from Target Dialog', то Keil автоматически генерирует scatter-файл на основе описания областей IROMx/IRAMx из вкладки 'Target'. Однако, автоматически генерируемого scatter-файла недостаточно при работе с EEPROM и DMA с помощью SPL, так как для них требуется размещение функций и данных строго в области RAM AHB. В связи с этим рекомендуется использовать scatter-файла, входящий в состав Software Pack (расположен в папке RTE\Device\"MCU" относительно проекта).
В зависимости от микроконтроллера путь к scatter-файлу будет следующим:
- К1986ВЕ1FI/GI - .\RTE\Device\K1986VE1xI\K1986VE1xI.sct;
- К1986ВЕ1(А)Т - .\RTE\Device\MDR1986BE1T\MDR1986VE1T.sct;
- К1986ВЕ1QI - .\RTE\Device\MDR32F1QI\MDR32F1QI.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 официально не поддерживает микроконтроллеры Миландр, то необходимо выбрать аналог с корректным указанием ядра из списка и нажать ОК.
В зависимости от микроконтроллера выбор должен быть таким:
-
К1986ВЕ1x - "Unspecified Cortex-M1",
-
К1986ВЕ9x, К1901ВЦ1QI - "Unspecified Cortex-M3".
-
К1986ВЕ8Т, К1986ВК01GI - "Unspecified Cortex-M4"
Рисунок 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', K1986VE1xI
В зависимости от микроконтроллера название FLM будет отличаться:
- К1986ВЕ1FI/GI - K1986VE1xI IAP 128kB Flash Rev_X;
- К1986ВЕ1(А)Т - 1986VE1/VE3 IAP 128kB Flash Rev_X;
- К1986ВЕ1QI - 1986VE1 IAP 128kB Flash Rev_X.
10. Utilities
Рисунок 15 - Options for Target. Вкладка 'Utilities'
Оставлены настройки по умолчанию. Рекомендуется включить опцию Use Debug Driver, чтобы использовать настройки программатора из вкладки 'Debug'.
После настройки проекта можно приступить к написанию базового проекта Hello World.
Сохранить статью в PDF
Программное обеспечение