воскресенье, 1 февраля 2009 г.

Память данных

Для адресации файловых регистров в распоряжении имеется ограниченное число разрядов в словах команд (в базовой серии PIC — 5 разрядов, с помощью которых можно адресовать 32 файловых регистра). Файловые регистры от 0 до 7 применяются для специальных целей. Их называют Special Function Register (SFR) — регистрами специального назначения. Таким образом, для использования в качестве пользовательских переменных остается еще 24 разряда.

В среднем подсемействе микроконтроллеров PIC используется 7 разрядов, которых достаточно уже для адресации 128 файловых регистров. Файловые регистры от 0 до 31 — регистры специального назначения (SFR). так что для переменных остается 96 байт.

Именно в малом размере адресного пространства заключается главный недостаток сжатых команд. Хотя большинство микросхем предоставляют до 4 банков ПО 32 и 128 файловых регистров, операции по переключению банков не совместимы с удобством программирования. При каждом обращении к файловому регистру необходимо обращать внимание на то. правильно ли выбран банк.

Разряды для выбора банка расположены в FSR для базовой серии и в регистре STATUS для среднего подсемейства микроконтроллеров РIС. С некоторого времени MPASM позволяет выбирать банк с помощью ассемблерного макроса:
BANKSEL WERT ;WERT - пример любой переменной
По этому макросу ассемблер вставляет команды, принадлежащие определенно* MJ типу микроконтроллеров, для выбора банка, в котором находится переменная
WERT.

Основной способ избежать ошибок — помещать переключение банка перед каждым доступом к памяти данных тем не менее, несмотря на всю надежность такого подхода, он делает программу большой и не удобочитаемой. Такой способ используют компиляторы с языков высокого уровня.

При программировании на ассемблере многие разработчики применяют другой метод. В качестве основного состояния задается банк 0. и переключение выполняется только при доступе к другим банкам. Для того, чтобы этот метод был действительно эффективен, необходимо хорошо продумывать структуру данных — особенно, если реализованы подпрограммы, не зависящие от главной программы.

Для упрощения этой процедуры компанией Microchip при разработке микроконтроллеров PIC был принят ряд мер. Так, в PIC с четырьмя банками присутствуют области адресов, расположенные друг над другом, к которым можно обращаться независимо от выбора банка (так называемая "область доступа"). Выло бы бессмысленно дополнительно перед каждым доступом к переменной выполнять переключение банка- В этой области доступа располагают, например, рабочие переменные стандартных подпрограмм. Наиболее важные регистры специального назначения. к которым часто обращаются (рабочие регистры), обычно располагаются в банке 0. Регистры специального назначения, расположенные в банке 1. используются, преимущественно, для инициализации.

Комментариев нет:

Отправить комментарий