Редактор Ассемблера Плюс: Первый Проект

Продолжение серии статей о редакторе сборок микроконтроллеров ARM для компилятора GNU AS. Предыдущая статья Редактор Ассемблера Плюс: Установка Картинки под катом! Итак, мы подошли к созданию первого проекта.

Важное замечание: сам редактор обрабатывает тексты программ на языке ассемблера в соответствии с правилами, которые описаны во внешних файлах конфигурации, поэтому можно описывать новые правила для любых ARM-микроконтроллеров с ядрами, которые поддерживаются gnu, как (и их список — очень существенно!).

Как вы понимаете, проект сейчас слишком молод, чтобы иметь правила для всего спектра микроконтроллеров - просто еще не все из них описаны, это не большая проблема, если вы готовы помочь в описании микроконтроллера (я об этом расскажу позже), но если вы не готовы, то вам придется немного подождать, пока будут сделаны эти настройки для вашего микроконтроллера.

Сейчас активно описываются микроконтроллеры семейства STM32F4x, основной для тестирования - STM32F407, поэтому первый пример будет для этого микроконтроллера, он используется в отладочной плате STM32F4 Discovery от ST, у меня этот микроконтроллер используется на Open407I- Отладочная плата C (документация находится в папке Add\ MCUDoc в Easy версии редактора для скачивания, см.

предыдущую статью), или STM32F4VE (китайская платка, тоже с aliexpress) Итак, запускаем редактор, и выбираем «Проект» - «Новый» и после указания папки и имени для хранения файлов проекта появится окно настроек проекта.



Редактор ассемблера плюс: первый проект

В этом окне нужно указать микроконтроллер, используемый в проекте, нажать «Установить» и выбрать STM32F407.

Редактор ассемблера плюс: первый проект

Будут прочитаны настройки микроконтроллера и заполнены поля настроек проекта:

Редактор ассемблера плюс: первый проект

Поля .

syntax .

cpu .

thumb .

fpu — это параметры компиляции для выбранного микроконтроллера, Адрес прошивки - куда будет записана прошивка на вкладке Конфигурация , настройки самого редактора, вам вряд ли придется менять его самостоятельно даже в будущем

Редактор ассемблера плюс: первый проект

Далее перейдите на вкладку «Каталоги».



Редактор ассемблера плюс: первый проект

Здесь указаны папки, которые будут созданы в папке проекта, и если значения по умолчанию, указанные в окне настроек, вас устраивают, то вам достаточно нажать кнопку «Создать каталоги проекта» и также можно скопировать исполняемые файлы компилятора с расширением .

bat для создания возможности самостоятельной компиляции проекта без использования возможностей редактора.

После этого нажмите кнопку «Принять».

Настройки проекта будут применены, и вы увидите следующий статус редактора.



Редактор ассемблера плюс: первый проект

По интерфейсу: [1] — список файлов, открытых в редакторе [ 2 ] — выбор режима отображения файлов проекта [ 3 ] - окно отображения файлов в: Каталоге проекта, Каталоге исходных файлов, Каталоге компиляции.

[ 4 ] - поле редактора [ 5 ] — кнопки быстрого доступа к дополнительным функциям Теперь, не вдаваясь в подробности, создадим тестовую программу По идее, нам следует выбрать в дереве файлов папку src, вызвать меню редактирования кнопкой мыши, добавить файл и идти дальше, но функции блокнота описывать вообще не буду, проект создадим как и обещали - кликами мыши, так выбираем в главном меню "Модули" - "Добавить модуль"

Редактор ассемблера плюс: первый проект

и видим все доступные шаблоны кода, нас интересует раздел «Стартовые файлы (main.asm)»

Редактор ассемблера плюс: первый проект

справа видим краткое описание выбранного модуля, в таком виде это готовый набор файлов проекта, нажимаем «Установить» и получаем готовую заготовку проекта, с началом тактирования микроконтроллера

Редактор ассемблера плюс: первый проект

Теперь для компиляции проекта заходим в меню «Выполнить» — «Настройки компиляции».



Редактор ассемблера плюс: первый проект

Здесь задаются имена программ-компиляторов, у вас есть возможность определить их «По умолчанию», в этом случае пути будут исправлены к файлам компилятора, которые идут в комплекте с редактором, пожалуй, самое простое — просто нажать эту кнопку

Редактор ассемблера плюс: первый проект

Здесь я бы рекомендовал поставить галочку «Сохранить проект перед компиляцией», потому что компилируется только сохраненное содержимое файлов, и вам не придется перед этим сохранять их вручную (иначе вы забудете на середине и будете удивляться, почему программа не работает так как вы написали) Теперь можно скомпилировать проект «Запустить» — «Компилировать и строить».



Редактор ассемблера плюс: первый проект

Теперь в каталоге компиляции проекта\compile вы можете увидеть получившиеся файлы, например текст прошивки находится в файле sys.sasm, прошивка находится в sys.bin или sys.hex соответственно (выбирайте в зависимости от вашего программатора, но в редакторе особо думать об этом не придется)

Редактор ассемблера плюс: первый проект

Теперь самое время подключить ваше устройство через программатор и записать прошивку на устройство, выберите "Пуск" - "Записать на устройство через.

", если у вас ST-Link - то ST-Link [direct] - это прошивка используя утилиты программатора от ST (см.

прошлую статью), но если у вас есть другой программатор (J-Link), то записываем через OpenOCD (но я там еще экспериментирую)

Редактор ассемблера плюс: первый проект

Поскольку наша программа не предоставляет никаких визуальных эффектов, мы просто запустим отладку и посмотрим, как все происходит. Для этого выберите «Выполнить» — «Выполнение и отладка [OpenOCD]».



Редактор ассемблера плюс: первый проект

В появившемся окне нажимаем «Пуск» и через несколько секунд видим, что наш микроконтроллер работает (Running), значит значений регистров нет и состояние неизвестно

Редактор ассемблера плюс: первый проект

Перезагрузим микроконтроллер и перейдем в режим пошагового выполнения кода, нажмем кнопки: «HALT» (принудительная остановка микроконтроллера), «RESET HALT» (перезагрузка микроконтроллера и переход в режим пошагового выполнения программы).

) в окне отладчика

Редактор ассемблера плюс: первый проект

В окне редактора, когда в нем открыт текст скомпилированной прошивки, вы увидите выделение текущей команды ассемблера, которая будет выполнена; окно отладчика показывает состояние ядра микроконтроллера и значения регистров Теперь вы можете выполнять программу пошагово, для этого есть две кнопки «ШАГ ВХОД» (выполнение текущей команды с входом в подпрограммы) и «ШАГ НАД» выполнение подпрограмм за один шаг.

Так как наша программа фактически состоит из одной подпрограммы, то нажимаем «STEP IN» и получаем переход по адресу 0x08000048, подпрограмму с надписью SYSCLK168_START.

Редактор ассемблера плюс: первый проект

И таким образом можно пошагово пройти программу и посмотреть, как изменяются значения регистров и флагов.

Дополнительно в окне отладчика можно просмотреть текущее состояние регистров конфигурации периферийных устройств микроконтроллера.



Редактор ассемблера плюс: первый проект

При двойном щелчке по полю регистра его значение будет отображаться в различных форматах, в следующем порядке: BIN -> HEX -> DEC.

Редактор ассемблера плюс: первый проект

Можно просмотреть текущие значения в памяти микроконтроллера; для удобства можно задать несколько разных адресов, размер просмотра и размер области памяти (но не переусердствуйте).



Редактор ассемблера плюс: первый проект

Для того, чтобы продолжить выполнение программы, нажмите кнопку «ВОЗОБНОВИТЬ».

На этом на сегодня все, в следующей статье мы напишем что-то более наглядное, традиционно мигающий светодиод, используя модули редактора и также с минимальными усилиями на клавиатуре (они нам понадобятся позже), заодно разберем именно те функции редактора, для которого он был создан изначально задуман продолжение Редактор ассемблера плюс: использование модулей Теги: #Программирование микроконтроллеров #stm32 #arm #Assembler #asm edit

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.