Продолжение серии статей о редакторе сборок микроконтроллеров 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
-
Почему Не Меняются Менеджеры?
19 Oct, 24 -
Небоскребы: Как Их Мыть?
19 Oct, 24 -
Ваниль 1.1.5
19 Oct, 24 -
Микростимулы Для Авторов
19 Oct, 24