МИКРОКОНТРОЛЛЕР AVR - Страница 59

МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Я лично не люблю загружать из памяти сразу большое количество регистров и пытаться запомнить, что в них находится. По-моему, это приводит к увеличению числа ошибок и затрудняет их выявление. Вместо этого лучше загружать из памяти содержимое регистров только тогда, когда оно требуется, и сохранять результат сразу после окончания обработки. Я хочу довести это до вашего сознания в первую очередь. Такая техника программирования выработалась у меня еще со времен программирования на ассемблере для IBM 370. Тогда я понял, как трудно запомнить, какой регистр за что отвечает. Поэтому при программировании на AVR я стараюсь держать в РОН только самые нужные переменные и загружать их из памяти, только когда они требуются. Чтобы избежать проблем с запоминанием, что хранит данный регистр, можно дать им символьное обозначение:

#define i R16 ; Обозначить регистр R16

Языки высокого уровня

Фирма Atmel утверждает, что архитектура AVR хорошо подходит для эффективного получения программных кодов с помощью компиляторов. Однако, моим первым впечатлением было, что это не совсем правильно. Разделение РОН и памяти SRAM может привести к неэффективности программного кода, а ограниченное количество РОН не позволит эффективно выполнить код. В процессе размышления о данной проблеме и изучения своих попыток написать компилятор для PIC, я понял, что AVR обладает некоторыми свойствами, которые позволяют относительно легко написать эффективный компилятор по сравнению с другими контроллерами, которые описаны в этой книге. Мои комментарии в этом разделе основываются на моем собственном стиле написания компиляторов и могут отличаться от того, что принято в лучших технологиях компиляции.

Go to Top