|
Информационный портал технической поддержки Центра проектирования интегральных микросхем |
В статье представлено краткое описание всех вкладок опций проекта в среде IDE Keil на примере микроконтроллеров семейства К1986ВЕ1x:

Рисунок 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 |

Рисунок 2 - Options for Target. Вкладка 'Device', K1986VE1xI
В этой вкладке указан Device (микроконтроллер), для которого собирается проект. Справа в соседнем окне выводится информация о названии и основных характеристиках микроконтроллера.
Выбор Device в зависимости от микроконтроллера:

Рисунок 3 - Options for Target. Вкладка 'Target'
Внизу вкладки 'Target' указано расположение областей памяти в микроконтроллере. Эти значения также могут использоваться во вкладке 'Linker'. Изменять их не требуется, они автоматически устанавливаются из описания.

Рисунок 4 - Options for Target. Вкладка 'Output'
Во вкладке 'Output' можно активировать опцию - Create HEX file, которая добавляет после сборки проекта генерирование выходного образа прошивки в формате Intel HEX. Также можно изменить название исполняемого файла в поле 'Name of Executable'.

Рисунок 5 - Options for Target. Вкладка 'Listing'
Во вкладке 'Listing' выставляются различные опции вывода справочной информации при сборке программы. Самым интересным является *.map файл, в котором показано распределение программы и данных в памяти микроконтроллера.

Рисунок 6 - Options for Target. Вкладка 'User'
Во вкладке 'User' можно задать различные скрипты, которые будут выполняться автоматически перед компиляцией проекта, перед сборкой (Before Build/Rebuild) и после сборки (After Build/Rebuild).

Рисунок 7 - Options for Target. Вкладка 'C/C++'
Во вкладке C/C++ выбираются опции компиляции, пути к заголовочным файлам (Include Path) и т.д. В строке "Define" можно задать ключи условной компиляции, если они используются в проекте.
При разработке и отладке программ рекомендуется выключать оптимизацию - "-O0". При высоком уровне оптимизации получается более компактный и быстрый код, но из-за применяемых оптимизаций его сложнее отлаживать. Повышение уровня оптимизации лучше оставить до полного окончания разработки и отладки программы.

Рисунок 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.

Рисунок 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-файлу будет следующим:

Рисунок 10 - Options for Target. Вкладка 'Debug'
В окне Debug в поле 'Use' выбирается программатор. Поддерживаемые программаторы в IDE Keil приведены в статье [i] Совместимость микроконтроллеров со средами разработки и программаторами.
Рекомендуется сначала подключить программатор к плате через JTAG, а затем к компьютеру через USB. После подключения программатора и USB можно подать питание на плату.
Для перехода к настройкам программатора необходимо нажать кнопку 'Settings'.
При первом запуске 'Settings' программатора J-Link открывается окно Target device settings. Поскольку J-Link официально не поддерживает микроконтроллеры Миландр, то необходимо выбрать аналог с корректным указанием ядра из списка и нажать ОК.
В зависимости от микроконтроллера выбор должен быть таким:

Рисунок 11 - SEGGER J-Link, Target device settings
Если выбор микроконтроллера был осуществлен неверно, то самый простой способ повторного выбора - это удалить файл JLinkSettings.ini из папки с проектом. После удаления данного файла при открытии 'Settings' программатора J-Link снова открывается окно Target device settings с выбором микроконтроллера.
Также программатор J-Link позволяет прошивать МК без участия среды Keil, информация об этом приведена в статье [i] Программирование контроллеров с помощью J-FLASH Lite.
Сначала необходимо выбрать отладочный интерфейс подключения к плате. Обычно во всех микроконтроллерах с ядрами 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 будет отличаться:

Рисунок 15 - Options for Target. Вкладка 'Utilities'
Оставлены настройки по умолчанию. Рекомендуется включить опцию Use Debug Driver, чтобы использовать настройки программатора из вкладки 'Debug'.
После настройки проекта можно приступить к написанию базового проекта Hello World.
| Сайт: | https://support.milandr.ru |
| E-mail: | support@milandr.ru |
| Телефон: | +7 495 221-13-55 |