GCC AS: новый чистый проект на ассемблере
Микроконтроллер создан, а как и в чём писать ему программу, человечеству так просто не дано.
Если вы самостоятельно захотите откопать ассемблер для ARM, то пожалуй устанете это делать.
Чёрная дыра какая-то.
Поэтому те крупицы информации, которые собраны энтузиастами в интернете, можно считать чудом.
К этому относится и моя работа о том, как под виндой начать ассемблерный проект с нуля.
Среда разработки: ваш любимый блокнот. Я использую
EmEditor.
Это хороший текстовый редактор с подсветкой синтаксиса.
Что бы начать работать, выполните несколько простых шагов.
- скачайте мой архивчик с чистым проектом
- скачайте утилиты последней версии
- наполняйте текстовые файлы кодом, компилируйте, заливайте в камушек
Итак, первым делом скачайте
мой архив
и поместите его в любое место на любом диске. Кликните по файлу
Сборка.cmd - проект хоть и "пустой"
но там есть несколько строк кода и данных. Произойдёт компиляция. Если проект скомпилировался без ошибок, в папке
exe
появится бинарник и интеловский HEX для заливки в камень.
Если вы раньше писали на ассемблере для AVR, то сразу поймёте назначение многих файлов,
которые вкладываются в проект.
- Распределение flash.asm - таблицы, данные, прошиваемые во флешку вместе с кодом
- Распределение memoryXX.asm - карта переменных и областей, размещённых в RAM
- Макросы псевдоинструкций.asm - мне нравятся эти макросы. Привык со времён AVR8.
Загляните в папку
exe. Там хранится заветный файлик
stm32f4xx.asm.
Скачайте последнюю версию, я его то же иногда обновляю.
Теперь загляните в файл
stm32.ld. Конечно я не являюсь крутым специалистом по управлению линкером,
с его корявым синтаксисом, но все необходимые
команды в этом файле имеются. И главное - всё работает. Файл простой, не содержит разной мути, от которой стекленеют глаза.
И вы легко сможете поправить его под свой камушек. В данном примере рассматривается архитектура STM32F4.
А теперь, три заветных файла:
- arm-none-eabi-as.exe
- arm-none-eabi-ld.exe
- arm-none-eabi-objcopy.exe
Это и есть ассемблер.
Для полноценного написания программ, потребуются только эти три файла.
Это так просто. Их не нужно инсталлировать. Они не забивают и не вешают систему.
И работают на любом компьютере под виндой. Они и компилируют наш проект.
Вы можете скачать последнюю версию.
Ссылки на скачивание
лежат здесь.
Совет: храните актуальную версию компилятора вместе с проектом в папке
exe.
В gcc любят изменить что-то в новой версии так,
что обновив его однажды, вы не сможете работать со старыми проектами, при компиляции будет вылетать куча ошибок
и вам придётся всё переписывать.. Это болезнь не только gcc.
Так что, пусть компилятор стареет вместе с вашим проектом и без надобности не обновляйте его.
Этим вы облегчите себе жизнь в будущем. А папка с проектом будет полностью переносима, хоть на флешке. Воткнул в любой компьютер и работай.
Вот собственно и всё. Наполняйте проект кодом. Запускайте файл
Сборка.cmd. Смотрите в папку
exe
и вы найдёте там интеловский HEX для заливки программатором в камушек.
Кажется, что мне нечего больше добавить. С виду всё просто. А я чуть не поседел, выясняя это всё с нуля.
Помочь реально было некому. Программист на ассемлере - это сочетание таких свойств и качеств,
которые в природе редко встречаются. Присоединяйтесь, если конечно сможете.
Действуйте!
p.s. Как подсказали на форуме, наши заветные файлы в реальности являются пакетом
binutils.
Этот пакет содержит ещё несколько полезных утилит. Информацию о них я добавил в файл
Сборка.cmd. Возьмите утилиты там же и раскомментируйте строки в командном файле,
что бы они начали работать.