![]() |
![]() |
|||||||||||||||
Три страшных слова: исходный код, ассемблер, компиляция…
Автор: Я все прекрасно понимаю: вам порядком наскучила досужая болтовня о всяких АЛУ, ПЗУ и ПВВ. Вы рветесь писать программу, шить ее в контроллер и любоваться ее безупречной работой. Что ж, сейчас я расскажу почти все, что понадобится нам для этого. А что нам, собственно говоря, для этого понадобится?
Во-первых - редактор для написания текста программы.
Во-вторых - компилятор – чтобы перевести исходный код в машинный язык.
В-третьих - девайс, посредством которого мы соединим компьютер с контроллером.
И в-четвертых - программа, которая будет управлять прошивкой HEX-файла в контроллер.
Во-общем, много нам всего нужно… :) Редактор. Хочу вас немного испугать (а может - обрадовать), но исходный код программы пишется в самом обыкновенном… блокноте! Да да, это который notepad.exe! Стандартная программа любого Виндовса. Нет, конечно есть всевозможные AVR-Studio и проч., но мы сейчас рассматриваем самый простой, и при том – самый надежный вариант. Итак – БЛОКНОТ. Компилятор Компилятор, который мы будем юзать, называется tavrasm. Он скачивается с сайта www.tavrasm.org. Программка запускается из командной строки. Так что, настоятельно рекомендую поставить себе какой-нибудь файл-менеджер. Лично я юзаю Windows Commander 5.11, и очень нежно и преданно его люблю :) Но все равно, каждый раз прописывать ключи и файлы в командную строку – согласитесь – это для ОЧЕНЬ терпеливых людей. Поэтому мы поступим хитрее. Мы напишем BAT-файл (далее – «батник»). Людям, вскормленным на Виндовсе, это может быть и не знакомо, поэтому, в двух словах – шо це таке батник. Батник (файл с расширением .bat) – это исполняемый файл, который занимается тем, что запускает из себя выполнение других исполняемых файлов (.exe, .com, .bat и т.п.), в том порядке, в котором они вписаны в батник. Причем возможны ветвящиеся структуры (типа if). То есть, батнику можно передавать при запуске переменные, в соответствии со значениями которых он и будет делать либо одно, либо другое, либо третье, либо 153-е… Для нас батник удобен тем, что в него можно записать строку вызова программы с кучей ключей и прочих премудростей, а потом просто запускать его – и программа будет вызываться, как если бы мы ввели содержимое батника в командную строку...
Ну вот. Значит, мы скачали файл tawrasmw.zip.
Путь к нему:
Теперь давайте создадим на диске еще одну папочку – AVR-projects - в ней мы будем содержать наши проекты на контроллерах. Таким образом, мы создали:
Теперь откроем блокнот и напишем текст батника:
D:avr avrasm avrasm.exe -i code.asm -e outputlistfile.lst -o outputhexfile.hex
В первой строке мы вызываем компилятор tavrasm. Во второй строке мы просим батник не закрывать окно по завершении выполнения компиляции – чтоб спокойно прочитать, что нам написал компилятор. Он ведь может и ругаться :) Теперь в меню «Файл» блокнота выбираем «Сохранить как». ![]() Имя файла (File name): compile.bat Тип файла (Save as type): All Files
Если оставить тип файла .txt, то блокнот сохранит файл под именем compile.bat.txt. Но не спешите вылазить из нета. Надо еще кой-чего скачать. А именно – фирменный компилятор от Atmel – "Avrasm". Он нам очень нужен из-за того, что в нем есть заголовочные файлы def.inc. А также – хелп. Правда – на английском. Кстати, русский хелп к ассемблеру для AVR можно посмотреть здесь
Качаем вот этот архивчик (компилятор Avrasm):
https://atmel.com/dyn/resources/prod_documents/ASM.ZIP Убедитесь, что в папочке есть файл 2313def.inc !
Все! Теперь можно приступать к написанию программы. Теперь можно написать первую строчку. Она выглядит так: .include "D:avravrasmappnotes2313def.inc"
То есть, мы подключаем заголовочный файл.
Заголовочные файлы xxxdef.inc содержатся в установочной папке любого атмеловского
компилятора для AVR-ок. Например - AVR Studio. Он качается на
сайте Atmel. Качаем, ставим, ищем папочку,
куда установилась программа. Также (ВНИМАНИЕ: ХАЛЯВА), все (почти все) заголовочные файлы для контроллеров AVR Atmel, можно скачать прямо у нас на сайте. Они находятся в архивчике appnotes.zip.
Ну вот, с заголовочными файлами разобрались.
ldi R16,5 ;загрузка констант в регистры Заметим, что синтаксис ассемблера не требует каких либо знаков после команды. Но каждая команда обязательно должна писаться с новой строки. Знак ";" (точка с запятой), которым во многих языках обозначается конец команды, в Асме используется для комментирования – то есть все символы правее этого знака и до перехода на новую строку, компилятор игнорирует.
Сохраняем файл. Окно можно не закрывать. Лезем в папку tutorial и запускаем compile.bat.
Файл компилируется. ![]()
По окончании компиляции, внимательно читаем текст на черном окошке.
Если там содержатся слова типа "Error" – значит компилятор нашел ошибку.
Обычно, он пишет, что именно ему не нравится и в какой строке. Смотрим номер строки,
жмем в Блокноте Ctrl+G, вводим номер строки – и курсор автоматически встает в ее начало.
ВНИМАНИЕ!!! <<--Вспомним пройденное----Поехали дальше-->>
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |