Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

18 Часть I. Общие принципы устройства и функционирования Atmel AVR зованием OTP ROM, что значительно рискованнее, — изменить в случае даже ма- лейшей ошибки записанную программу уже было невозможно. Появление flash- памяти изменило весь «ландшафт» в этой области — именно в результате ее вне- дрения стали возможными такие операции, как программное обновление BIOS компьютера или «перепрошивка» управляющих программ для бытовых электрон- ных устройств. В 1995 году два студента Норвежского университета естественных наук и техноло- гии из города Тронхейма, Альф Боген и Вегард Воллен, выдвинули идею 8-разрядного RISC-ядра, которую предложили руководству Atmel. Имена разработ- чиков вошли в название архитектуры AVR: Alf + Vergard + RISC. Идея настолько понравилась, что в 1996 году в Тронхейме был основан исследовательский центр Atmel, и уже в конце того же года выпущен первый опытный микроконтроллер но- вой серии AVR под названием AT90S1200. Во второй половине 1997 года корпора- ция Atmel приступила к серийному производству семейства AVR. Почему AVR? У AVR-контроллеров «с рождения» есть две особенности, которые отличают это семейство от остальных 8-разрядных МК. Во-первых, это наличие конвейера, бла- годаря чему для AVR не существует понятия машинного цикла: большинство команд выполняются за один такт. Для сравнения отметим, что пользующиеся большой популярностью МК семейства PIC выполняют команду за 4 такта, а клас- сические 8051 — вообще за 12 или даже 24 такта. Вторая особенность — наличие 32 оперативных регистров, не совсем равноправ- ных, но позволяющих в ряде случаев вообще не обращаться к оперативной памяти и не использовать в явном виде стек (что в принципе невозможно в том же семей- стве х 51). Более того, в младших моделях Tiny AVR стек вообще недоступен для программиста. Потому структура ассемблерных программ для AVR стала подозри- тельно напоминать программы на языке высокого уровня, где операторы взаимо- действуют не с ячейками памяти и регистрами, а с абстрактными переменными и константами. Программы при этом работают много быстрее и с точно предсказуе- мым временем выполнения отдельных операций. Суммировав мнения из различных источников и опираясь на собственный опыт, автор пришел примерно к такому подразделению областей применения самых рас- пространенных семейств 8-разрядных контроллеров: контроллеры классической архитектуры х 51 (первые микросхемы семейства 8051 были выпущены еще в начале 1980-х) уже давно не применяются на прак- тике и лучше всего подходят для общего изучения предмета — по аналогии с языками Pascal или Basic при обучении программированию. Intel-ассемблер замечательно продуман, программы на нем хорошо читаются, число различных команд для x 51 весьма велико ( x 51, в отличие от многих других, имеет не RISC-, а CISC-архитектуру, для которой характерно наличие большого числа весьма функциональных команд). Авторитетный Di Halt [2], отмечал: « Что касается лично меня, то я обожаю архитектуру 51 за ее чертовски приятный ассемблер,

RkJQdWJsaXNoZXIy MTExODQxMg==