Создаем проект в среде CodeMaster-ARM
CodeMaster-ARM - интегрированная среда разработки (IDE), содержащая набор программных средств для редактирования, компиляции и отладки приложений для встроенных микроконтроллеров с ядром ARM7, ARM9, Cortex-M0, Cortex-M1, Cortex-M3. Данная среда выпускается компанией Фитон. В таблице совместимости средств разработки и программаторов указано, что среда CodeMaster-ARM совместима с собственным программатором фирмы "Фитон" "JEM-ARM-V2" и также поддерживает программатор "JLink", и именно он будет использоваться.
Компания "Миландр" предоставляет файлы поддержки своих микроконтроллеров для CodeMaster-ARM. В этой статье описано создание проектов в данной среде:
-
выполнение настройки проекта,
-
подключение SPL,
-
и создание стандартного проекта "Hello, World".
Распаковщик SPL для CodeMaster-ARM можно скачать в конце статьи. Также в этом распаковщике уже содержится готовый проект из статьи.
Установка CodeMaster-ARM
Скачать архив среды можно с сайта фирмы Фитон в разделе загрузке во вкладке ARM & Cortex. В статье используется демо-версия этой программы, которая имеет ограничение по размеру кода 8192 байта, что достаточно для реализации проекта "HelloWorld". После распаковки архива и его инсталляции, при первом запуске среды будет предложено выбрать один из готовых уже проектов. Поскольку создается свой новый проект, данное окно можно закрывать.
Рисунок 1 - Окно готовых примеров
Создание нового проекта
Для создания нового проекта нужно перейти в вкладку Project→New. В открывшемся окне в разделе General Properties необходимо указать Project Name и Project Folder.
Рисунок 2 - Окно создания проекта
Project name(no path): "HelloWorld" - имя проекта.
Project folder: "HelloWorld" - это имя заранее созданной папки.
После создания проекта выполним некоторые настройки. Переходим в Debug→ Debug Options, и на вкладке Target нужно выбрать используемый микроконтроллер. В данной статье это К1986ВЕ92.
Рисунок 3 - Вкладка выбора микроконтроллера
Следующим шагом нам нужно выбрать программатор. Для этого нужно перейти в Debug→ Choose debugger. Режим Simulator - это симулятор системы команд CodeMaster - программно-логическая модель ядра микроконтроллера ARM. При этом периферийные устройства не симулируются. В этом окне нужно выбрать используемый режим, в данном случае - режим J-Link JTAG Debugger. Однако его можно выбрать только при подключенном к компьютеру программаторе. Если программатор не подключен, то в этом случае следует выбрать режим Simulator.
Рисунок 4 - Выбор отладчика
Организация папок проекта и SPL
Стиль организации папок в статье аналогичен тому, как это по умолчанию делает среда Keil uVision, и как это описано в статье Создаем проект в среде IAR. Особенностью среды CodeMaster-ARM, в отличие от Keil или IAR, является то, что изменять структуру папок в окне проекта разработчиками не предусмотрено, поэтому все файлы, независимо от того, являются ли они библиотечными или это основной файл программы, складываются в папку «C Sources». Реальная структура директорий на диске будет сохранена, чтобы потом было удобнее в этом разобраться.
Рисунок 5 - Организация папок
Необходимо подключить библиотеки SPL, позволяющие работать с периферией микроконтроллера. Библиотека для микроконтроллеров компании «Миландр» скачивается с официального сайта по ссылке.
Для автоматической распаковки файлов библиотеки SPL можно воспользоваться установщиком в конце статьи.
Организация директорий и файлов, которые будут использоваться в проекте, приведена ниже.
ARM_CODE\ - Общая папка с проектами в CodeMaster-ARM
1986BE9x\ - папка проектов под 1986BE9x
MDR32F9Qx_board.h - файл выбора МК и ревизии
HelloWorld - папка проекта
SPL\ - папка SPL
MDR32F9Qx_config.h - файл прочих настроек
CMSIS\
CM3\
CoreSupport - поддержка ядра
DeviceSupport\MDR32F9Qx\ - startup файлы
inc
startup\cmc
MDR32F9Qx_StdPeriph_Driver\ - driver файлы
inc
src
Чтобы получилась такая раскладка, вот что нужно скопировать из архива SPL:
В папку ARM_CODE\SPL:
исходные файлы SPL
lib\MDR32F9_2013\lib\Libraries\все содержимое
файлы с настройкой SPL под конкретный микроконтроллер
lib\MDR32F9_2013\lib\Examples\MDR1986VE9x\MDR32F9Q3_EVAL\MDR32F9Qx_config.h
в папку ARM_CODE\1986BE9x:
lib\MDR32F9_2013\lib\Examples\MDR1986VE9x\MDR32F9Q3_EVAL\MDR32F9Qx_board.h
Чтобы среда CodeMaster-ARM могла находить файлы SPL в такой раскладке, необходимо указать ей пути для поиска при сборке. Для этого нужно выбрать пункт «Project – Options», и в открывшемся окне выбрать вкладку «Folders». В строке «Include-files» нужно через запятую прописать относительные пути для файлов библиотеки.
Рисунок 6 - Выбор библиотечных файлов
Их можно скопировать отсюда:
..\. .\SPL\MDR32F9Qx_StdPeriph_Driver\inc;
..\. .\SPL\CMSIS\CM3\CoreSupport;
..\. .\SPL\CMSIS\CM3\DeviceSupport\MDR32F9Qx\inc;
..\. .\SPL\CMSIS\CM3\DeviceSupport\MDR32F9Qx\startup\cmc;
..\. .\SPL;
..\
По нажатию на кнопку «…» слева от строки «Include-files» открывается окно редактирования указанных путей до библиотечных файлов. Должно получиться так:
Рисунок 7 - Редактирование путей до файлов библиотеки
Теперь необходимо подключить к проекту библиотечные файлы для работы с периферией. В данном проекте для работы со светодиодами через порты GPIO (общие порты ввода-вывода) понадобятся функции задания тактирования и работы с портами. Для этого нужно нажать правой кнопкой мыши на папку «C Sources» и в появившемся контекстном меню выбрать пункт «Add file to project…». В открывшемся окне перейти в добавленную ранее папку SPL, и далее по адресу «…\MDR32F9Qx_StdPeriph_Driver\src» выбрать файлы MDR32F9Qx_port.c и MDR32F9Qx_rst_clk.c. Здесь также предусмотрена опция копировать добавляемые файлы в директорию проекта. В данном проекте не используется такой стиль структурирования, поэтому стоит убрать галочку внизу окна с пункта «Copy files to the project directory».
Рисунок 8 - Подключение библиотечных файлов к проекту
После нажатия кнопки «Открыть» в окне проекта в папке «C Sources» должны появиться файлы MDR32F9Qx_port.c и MDR32F9Qx_rst_clk.c.
Рисунок 9 - Вид папок после подключения библиотечных файлов для работы с периферией
Теперь таким же образом нужно добавить Startup файл, но уже в папку "Asm Source". Для микроконтроллера К1986ВЕ92 startup расположен по пути: …\SPL\CMSIS\CM3\DeviceSupport\MDR32F9Qx\startup\cmc - файл startup_MDR32F9Qx.mca.
Рисунок 10 - Вид папок после подключения Startup-файла
Создание main.c
Для удобства рекомендуется создать отдельную папку в директории проекта, в которую будут помещаться все Си-файлы. В примере эта папка названа src, а единственный содержащийся в ней файл - main.c. Для создания файла main.c, в котором будет написан код программы, необходимо нажать соответствующую кнопку на тулбаре, или же выбрать через меню «File – New».
Рисунок 11 - Кнопка создания нового файла
В открывшееся окно вставляем код мигания светодиодом из проекта «Hello, World». Далее нужно сохранить файл в созданную src-папку под именем main.c. Теперь необходимо добавить программу в проект. Для этого в окне проекта по нажатию правой кнопкой мышки на папку «C Sources» нужно выбрать пункт «Add file to project…», и в открывшемся окне выбрать файл main.c, убедившись при этом, что галочка «Copy files to the project directory» снята. После нажатия кнопки «Открыть» в окне проекта в папке «C Sources» должен появиться файл main.c, расположенный в директории src.
Рисунок 12 - Вид папок после добавления файла main.c
Теперь всё готово к запуску. Для компиляции проекта нужно нажать на соответствующую кнопку в тулбаре, нажать клавишу F7, либо через меню «Project – Make».
Рисунок 13 - Окно статуса компиляции
В открывшемся окне выводится результат компиляции. Если возникли какие-то ошибки и предупреждения, они отражены здесь. В данном примере ошибок нет. Следовательно, программу можно загружать в микроконтроллер. Это можно сделать через соответствующую кнопку на тулбаре, либо сочетанием клавиш Shift+F7, либо через меню «Project – Make and start debugging». Сразу же после начала прошивки появится окно с предупреждением, что будет произведено программирование Flash-памяти и это приведёт к потери текущего состояния микроконтроллера. Соглашаемся и нажимаем кнопку «Yes».
Рисунок 14 - Предупреждение об очистке и перепрограммировании Flash-памяти
После загрузки программы в микроконтроллер запускается режим отладчика. Для управления режимом отладки в тулбаре предусмотрена группа кнопок, определяющих запуск кода и шаги его выполнения. Чтобы начать выполнение программы, нужно нажать центральную кнопку с красной стрелочкой или F5.
Рисунок 15 - Кнопка запуска/остановки выполнения программы
Особенности работы со средой
1. Всегда важно отслеживать, чтобы файлы нужных расширений находились в необходимых стандартных папках дерева проекта. Например, ассемблерный файл startup должен строго находиться в папке "Asm Sourcses". Несоблюдение этого требования может приводить к ошибкам при сборке проекта.2. Необходимо следить за правильно выбранным микроконтроллером для работы в настройках отладчика, поскольку при смене самого отладчика, настройки выбора активного микроконтроллера для работы сбрасываются, и необходимо производить выбор вновь. Сохранить статью в PDF