Содержание

Создаем проект в среде CodeMaster-ARM

CodeMaster-ARM интегрированная среда разработки (IDE), содержащая набор программных средств для редактирования, компиляции и отладки приложений для встроенных микроконтроллеров с ядром ARM7, ARM9, Cortex-M0, Cortex-M1, Cortex-M3. Данная среда выпускается компанией Фитон. Обратившись к нашей таблице совместимости средств разработки и программаторов, делаем вывод, что среда CodeMaster-ARM совместима с собственным программатором фирмы "Фитон" "JEM-ARM-V2" и также поддерживается всё тот же "JLink".

Миландр предоставляет файлы поддержки своих микроконтроллеров для CodeMaster-ARM. В этой статье мы научимся создавать проект в данной среде, выполним его настройку, подключим SPL, и по традиции помигаем светодиодом "Hello Word". Распаковщик SPL для CodeMaster-ARM можно скачать по ссылке

Установка CodeMaster-ARM

Скачать архив среды можно с сайта фирмы Фитон в разделе загрузке во вкладке ARM & Cortex. Мы будем будем использовать демо-версию, которая имеет ограничение по размеру кода 8192 байта, что для реализации нашего проекта более чем достаточно. После распаковки архива и его инсталляции, при первом запуске среды будет предложено выбрать один из готовых уже проектов. Поскольку мы создаем свой новый проект, данное окно можно смело закрывать.

Создание нового проекта

Приступим к созданию нового проекта. Для этого перейдём в вкладку Project→New. В открывшемся окне в разделе General Properties необходимо указать Project Name и Project Folder.

Project name(no path): "HelloWorld" - имя проекта

Project folder: "HelloWorld" - это имя заранее созданной папки.

После создания проекта выполним некоторые настройки.Переходим в Debug→ Debug Options и на вкладке Target выбираем микроконтроллер, с которым будем работать. В нашем случае это 1986ВЕ92.

Следующим шагом нам нужно выбрать программатор. Переходим в Debug→ Choose debugger. Режим Simulator - это симулятор системы команд CodeMaster - программно логическая модель ядра микроконтроллера ARM. При этом периферийные устройства не симулируются. Нас интересует режим J-Link JTAG Debugger. Но его можно выбрать только при подключенном к компьютеру программаторе. Если J-Link не подключен, то в этом случае выбираем режим Simulator.

Организация папок проекта и SPL

При организации папок проекта будем придерживаться определённого стиля, аналогично тому, как это по умолчанию делает Keil, и как это описано в статье Создаем проект в среде IAR. Особенностью CodeMaster-ARM, в отличие от Keil’a или IAR’a, является то, что изменять структуру папок в окне проекта разработчиками не предусмотрено, поэтому все файлы, не зависимо от того, являются ли они библиотечными или это наш основной файл, складываются в папку «C Sources». Реальную структуру директорий на диске мы всё же сохраним, чтобы потом было удобнее во всём этом разбираться.

Подключим библиотеки 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» прописываем через запятую относительные пути для файлов библиотеки.

Их можно скопировать прямо отсюда:

..\..\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», здесь прописаны все наши указанные пути. Должно получиться так

Теперь необходимо подключить к проекту библиотечные файлы для работы с периферией. В нашем проекте для работы со светодиодами через порты 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».

После нажатия кнопки «Открыть» в окне проекта в папке «C Sources» должны появиться файлы MDR32F9Qx_port.c и MDR32F9Qx_rst_clk.c.

Теперь таким же образом добавляем Startup файл, но уже в папку "Asm Source". Для нашего микроконтроллера 1986ВЕ92 startup расположен по пути: …\SPL\CMSIS\CM3\DeviceSupport\MDR32F9Qx\startup\cmc - файл startup_MDR32F9Qx.mca.

Переходим к созданию main.c

В директории проекта я создал папку src, в которую будут помещаться все создаваемые си-файлы, в нашем проекте это только main.c. Чтобы создать файл, где мы будем писать код, необходимо нажать соответствующую кнопку в тулбаре, либо через меню «File – New».

В открывшееся окно вставляем код мигания светодиодом из проекта «Hello World - светодиод». Сохраняем файл в созданную нами папку src под именем main.c. Теперь необходимо добавить нашу программу в проект. Для этого в окне проекта кликаем правой кнопкой мышки на папку «C Sources» и выбираем пункт «Add file to project…». В открывшемся окне выбираем наш файл main.c. Проверяем чтобы галочка «Copy files to the project directory» была снята. После нажатия кнопки «Открыть» в окне проекта в папке «C Sources» должен появиться файл main.c, расположенный в директории src.

Теперь всё готово к запуску. Чтобы скомпилировать проект кликаем на соответствующую кнопку в тулбаре, либо нажимаем клавишу F7, либо через меню «Project – Make».

arm_make.jpg

В открывшемся окне выводится результат компиляции, если возникли какие-то ошибки и предупреждения, они отражены здесь. У нас ошибок нет. Следовательно, программу можно загружать в микроконтроллер. Это можно сделать через соответствующую кнопку тулбаре, либо сочетанием клавиш Shift+F7, либо через меню «Project – Make and start debugging». Сразу же после начала прошивки появится окно с предупреждением, что будет произведено программирование Flash памяти и это приведёт к потери текущего состояния микроконтроллера. Соглашаемся и нажимаем кнопку «Yes».

arm_warning.jpg

После загрузки программы в микроконтроллер запускается режим отладчика. Для управления режимом отладки в тулбаре предусмотрена группа кнопок, определяющих запуск кода и шаги его выполнения. Чтобы начать выполнение программы нажимаем центральную кнопку с красной стрелочкой или F5.

arm_toolbar.jpg