AVRASM Basic Macro Library

Библиотека „Основни дефиниции на макроси“, която разширява стандартния набор от инструкции за асемблиране за микроконтролери Atmel AVR (8-битов AVR набор от инструкции) и препоръчва парадигма за програмиране: със съхраняване на „модела на данни на приложението“ в RAM и използване на няколко „временни регистри“ ...

Предназначение

Тази библиотека е написана на асемблер за компилатора AVRASM. Съответно, той е предназначен за разработване на софтуерен фърмуер (фърмуер) на асемблер за Atmel AVR (8-битови) микроконтролери.

Препоръчвам ви да използвате тази библиотека във всяка от вашите програми на асемблерни езици (за фърмуер за AVR), като я включите в самото начало на главния ASM файл, както следва: Това ще направи мета-езика достъпен глобално в цялата програма. Освен това ще опрости шаблона на нов проект, тъй като тази библиотека също съдържа макроси с кода за основната инициализация на микроконтролера.

Библиотеката е съставена от най-полезните и компактни парчета код, взети от примерите и статиите на общността EasyElectronics.ru; от други сайтове; от листа с данни на микроконтролери и Atmel Appnotes... събрани и преработени от мен в един стил; завършен до функционална пълнота.

Кодът на библиотеката вече се намира в един файл "macrobaselib.inc" и е разделен на функционални секции (инициализация на MK, I/O поддръжка, аритметични операции).

Ключови моменти: В кода на тази библиотека и когато работите с нея, регистрите R16,R17,R18,R19 се препоръчват да се използват като"временни променливи" - следователно в кода на вашето приложение не ги използвайте за съхраняване на постоянни данни! Както каза DI HALT: При изчисляване регистрите могат да бъдат предварителнонатиснете върху стека... но ще ви дам по-добър съвет: когато пишете програма, обмислете алгоритъма по такъв начин, че да използвате регистрите като солиден TEMP, данните от който са от значение само тук и сега. А какво ще се случи с тях при следващата процедура вече не е важно. И всичкипостоянни данни трябва да се съхраняват в RAM (SRAM). Тази библиотека се основава на идеите и опита на DI HALT относно метода за използване на Macroassembler, и по-специално на директивата MACRO: за създаване на ваш собствен мета-език, който разширява стандартния набор от директиви на AVR асемблер, и основни техники, които улесняват програмирането: MACRO е оператор за макро заместване. Това е наистина лудост! Позволява ви да задавате имена на цели части от код, освен това можете също да задавате параметри. Макросите ви позволяват да създавате удобни команди за всички случаи, всъщност създавате свой собствен език. Макрос асемблерът е много мощно нещо. С напредването на играта ще представя различни макроси и ще показвам примери за това как работят макросите. AVR асемблерът, макар и доста развит, но като всеки асемблер е на много ниско ниво и следователно с него е доста трудно да се „стреляте в крака“. Тази библиотека ви предоставя някои подробности за изобретяването на "пистолет" (по-специално: "куршум" и "спусък"). Сега просто трябва да преоткриете „пистолета“ и „крака си“...

Забележка: GitHub е избран за разпространение на код като най-прогресивния, удобен и функционален метод за взаимодействие между разработчиците с отворен код. Развивайте и допълвайте библиотеката - тогава можете лесно да допринесете.