Страницы

воскресенье, 31 марта 2013 г.

Миландр MDR32F9Q2I. ARM GNU AS Example. Пример ассемблерного файла

В данной заметке, представлю ранее уже опубликованный, простейший пример ассемблерного кода для Cortex-M3 микроконтроллера Миландр MDR32F9Q2I, переписанный на ассемблере GNU AS.

Ассемблер GNU AS - открытый проект ассемблера, входящего в набор инструментов GNU.
Пришёл на платформу Windows из прекрасного мира свободного программного обеспечения.
Позволяет снять ограничение на размер "прошивки", которое накладывают коммерческие ассемблеры, такие как Keil ARM ASM и пр. Это даёт шанс использовать всю мощь микроконтроллера, мощь открытых средств разработки, мощь многоплатформенности и пр.
Однако, пример то простейший, но "продраться" сквозь лес настроек - задача не из легких. Попробую.

Что понадобиться, для платформы Windows?


1. Сам ассемблер.
Ассемблер GNU AS проще всего получить в составе инструментов Sourcery CodeBench Lite Edition for ARM EABI. Исполняемый файл ассемблер arm-none-eabi-as.exe.
После установки этого набора, можно приступать к разработке.

2. Редактор исходного кода
Подойдет любой. Приветствуется - с подсветкой синтаксиса. Для начала я взял Eclipse JUNO SR1. Там можно просто открыть ассемблерный файл и отредактировать, не создавая проектов и пр., не вникая в бесконечные настройки среды (правда, в дальнейшем, вникнуть придётся).

3. Linker - компоновщик, редактор связей
Входит в пакет программ GNU ARM Toolchain. В моём случае, он есть в составе Sourcery CodeBench Lite Edition for ARM EABI. Там есть всё что нужно. Будет использоваться для
компоновки прошивок для ОЗУ и ПЗУ.

4. Objcopy
Для преобразования elf-файлов в конечные файлы прошивок, в формате intel hex или binary,
пригодные для загрузки в ПЗУ микроконтроллера сторонними средствами.

5. Make - утилита сборки
Понадобиться, что воспользоваться подготовленным файлом сборки (Makefile) для примера, чтобы не собирать проект отдельными командами. Прежде чем написать Makefile, я так и делал, чтобы получше осознать цепочку инструментов.
В наборе инструментов Sourcery CodeBench Lite Edition for ARM EABI, она зовётся cs-make.


6. Утилита загрузки в микроконтроллер
Это может быть, на данный момент, milprog, uart-bootloader (с форума Миландра), связка gdb отладчик + gdb-сервер от J-Link, либо от OpenOCD, либо что-то своё.

Проект примера

Пример можно собрать как в командной строке Windows, так и в среде Eclipse.
Проще в командной строке, т.к. надо выполнить только команду cs-make, в папке проекта.

Набор файлов проекта можно загрузить по ссылке: http://yadi.sk/d/VNTjnqXQ3fOpa

В Eclipse надо пройти цепочку действий - создать проект, импортировать туда пример, потом собирать. Eclipse перед этим надо настроить, для поддержки разработки ARM - установить GNU ARM Plugin, GDB Hardware debugging. С первого раза, сложновато.

Да, Makefile проекта простейший, не многоплатформенный. Например, цель "очистка проекта" работает под Windows.


Настройка среды под Linux будет позже, как только обновиться компьютер, но в принципе всё тоже самое, в некоторых местах даже проще.







Комментариев нет: