Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
354 Микроконтроллеры AVR от азов программирования... Один из этих регистров-указателей может также использоваться в качестве указателя адреса данных, размещенных в памяти программ (Flash -памяти). Эти дополнительные составные 16-разрядные регистры именуются X, Y и Z. Подробнее они будут описаны далее в этом разделе. АЛУ поддерживает арифметические и логические операции между двумя регистрами или между константой и регистром. В АЛУ также могут выполняться операции с отдельными регистрами. После каждой арифметической операции обновляется регистр статуса для того, чтобы отразить информацию о ее результате. Последовательность выполнения программы может быть изменена командами условного и безусловного перехода, а также командой вызова подпрограммы, в которых используется непосредственная адресация. Большинство инструкций AVR представляет собой одно 16-разрядное слово. Каждый адрес памяти программы содержит 16-битовую инструк цию или половину 32-разрядной инструкции. При выполнении процедуры обработки прерывания или подпро граммы текущее значение счетчика команд (PC) сохраняется в стеке. Стек фактически размещен в одном адресном пространстве с памятью данных SRAM (ОЗУ) и, следовательно, размер стека ограничен только раз мером SRAM и тем, какую часть SRAM использует остальная программа. Программа пользователя обязательно должна инициализировать ука затель стека (SP) сразу после сброса (прежде, чем будет выполнена под программа или будет вызвано прерывание). Указатель стека (SP) имеет свой конкретный адрес в пространстве регистров ввода-вывода. К дан ным в ОЗУ (SRAM) можно получить доступ, используя пять различных способов адресации, поддержанных архитектурой AVR. Адресное пространство всех видов памяти в архитектуре AVR явля ются регулярным линейным. Гибкий модуль прерываний имеет ряд реги страторов управления в адресном пространстве регистров ввода-вывода и дополнительный флаг глобального разрешения прерываний в реги стре статуса. Каждый вид прерывания имеет свой отдельный вектор в таблице век торов прерываний. Прерывания имеют приоритет в соответствии с их положением в таблице векторов прерываний. Чем ниже адрес вектора прерывания, тем выше приоритет. Пространство регистров ввода-вывода содержит 64 адреса для реги стров управления периферийными устройствами, регистров управле ния режимами работы процессора и другими функциями ввода/вывода. К любому регистру ввода-вывода можно получить доступ непосред ственно по его номеру или как к ячейке памяти данных. В адресном про странстве памяти данных регистры ввода-вывода располагаются сразу после файла регистров общего назначения (0x20 — 0x5F).
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==