понедельник, 06 августа 2012
Что необходимо для проекта на ассемблере?
В первую очередь — создать проект
обычным образом, как и для Си-проекта. Выбрать контроллер, создать папку, назвать проект, согласиться с добавлением загрузочного кода (startup_xxx.s).
читать дальше...Настройки, правда, можно чуточку изменить. Во-первых, можно не ставить галочку на вкладке Target, которая называется MicroLIB (если __main свой, только тогда, иначе словите Hard Fault). Так как проект не сишный, стандартную библиотеку можно не использовать. Можно и использовать, конечно, но тогда надо делать всё немного по-другому.
В общем, какая разница, какую библиотеку не использовать =D
Так вот. Создаём файл main.s. В нём будет основной цикл сидеть.
Минимальное его содержимое таково:
Вот в более приличном виде: на пастебин.
Функция __main, по идее, является функцией инициализации стандартной библиотеки, откуда уже вызывается main в Си-коде. Но раз проект асмовский, библиотека пока не понадобится.
Этот проект будет компилироваться. И вот сюда уже можно добавлять полезный код =)
Канонный SystemInit можно найти в файле system_stm32f4xx.c.
По поводу набора инструкций, в документации они представлены все, что есть:
1. Cortex-M3/M4F Instruction Set. Technical User Manual (англ.)
2. Cortex®-M4. Technical Reference Manual (англ.)
Список в разделе 3.3.
Я расскажу только про десяток самых основных. А вообще их очень много.
UPD от 23.05.2013: программирование на ассемблере для кортексов широко рассматривается в книге "The Definitive Guide to the ARM Cortex-M3". Правда, я не читал и не могу сказать, хорошо там объяснено или нет. Но книжка большая и в интернете присутствует.
UPD от 24.05.2013: system_stm32f4xx.c в дальнейших проектов не дайт частоту работы в 168 МГц, ибо рассчитан на кварц 25 МГц, а впаян 8 МГц. См. ссылку, чтобы получить правильный файл. Тем не менее, примеры работают, хотя и не на той частоте, потом обновлю.
<< Предыдущее Следующее >>
@темы:
arm,
программизмы,
электроника,
ассемблер,
stm32f4discovery,
stm32