Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 24

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 100 >> Следующая


Context Pointer

Rl 5

ru

RIJ

R1?

rtl

RIO

r9

rfl

r7

R6

rs

R4

r3

r2

r1

rq

(cp) +30 (cp)+ 2b

(cp) + z (cp)

HCAD20H

Рисунок 4-7

Выбор банка регистров с помощью СР-регистра

Некоторые режимы адресации используют CP-регистр для вычисления адреса.

Короткая 4-битная адресация GPR-регистров (обозначение: Rw или Rb) позволяет использовать относительные адреса памяти, привязанные к содержимому CP-регистра, т.е. к базовому адресу текущего банка регистров. В зависимости от использования данного режима для относительного доступа к слову (Rw) или байту (Rb), короткий 4-битный

6-24 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

адрес перед сложением с содержимым регистра CP может быть умножен на два для доступа к словам или может быть оставлен без изменений.

GPR-регистры, используемые в качестве указателя косвенного адреса, всегда доступны пословно. Для некоторых команд только первые четыре GPR-регистра могут использоваться в качестве указателя косвенного адреса. Эти GPR-регистры доступны с помощью короткой 2-битной адресации. Вычисление физических адресов идентично короткой 4-битной GPR-адресации.

Короткая 8-битная адресация регистров (обозначение: reg или bitoff) интерпретирует младшие 4 значащих бита в диапазоне от FOh до FF+, как короткие 4-битные адреса GPR-регистров, в то время как четыре старших значащих бита игнорируются. Вычисление представленного физического адреса GPR-регистра идентично вычислению короткого 4-битного адреса GPR-регистра. Для доступа к одиночным битам в GPR-регистрах, слово адреса GPR-регистра вычисляется, как описано выше, но позиция бита в слове определяется с помощью независимого дополнительного 4-битного значения.

Must be within the Internal RAM area

мсапм05

Рисунок 4-8

Неявное использование CP для режима короткой адресации GPR

Указатель стека (SP)

Этот не адресуемый побитно регистр используется для указания адреса вершины внутреннего системного стека (TOS). Значение SP-регистра декрементируется, как только в стек посылаются данные, и инкрементируется после возврата данных из стека. Таким образом системный стек растет от большего к меньшим значениям адресов памяти.

Наименьшему значащему биту в SP-регистре всегда присваивается «0» , и битам 15-12 всегда аппаратно присваивается «1», поэтому SP-регистр может принимать значения от FOOOh до FFFEh. Это позволяет получить

6-25 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

доступ физическому стеку в внутренней области RAM С167. Виртуальный стек (обычно больший, чем физический) может быть реализован программным способом. Этот механизм поддерживается регистрами STKOV и STKUN (см. ниже описание).

Значение SP-регистра может быть изменено любой командой, поддерживающей возможность изменения содержимого SFR-регистров.

Примечание: Команды POP и RETURN не должны следовать сразу за командой, изменяющей значение CP-регистра, что обусловлено внутренним структурой конвейера команд.

SFR

SP (FE12H/09H) Значение после RESET: FCOOh

15 14 13 12 11 10 987654321 0
1 1 1 1 sp 0
г г г г VW г
Бит Функция
sP Модифицируемая часть регистра SP

Указывает значение вершины внутреннего системного стека

Указатель переполнения стека STKOV

Значение этого побитно не адресуемого регистра сравнивается со значением SP-регистра после каждой операции, наполняющей данными системный стек (команды PUSH и CALL или прерывания), и после каждого вычитания из значения SP-регистра. Если содержимое SP-регистра менее содержимого STKOV-регистра, то имеет место аппаратная ловушка переполнения стека.

Так как наименьший значащий бит в STKOV-регистре всегда равен нулю а также битам 15-12 всегда аппаратно присваивается «1», то STKOV-регистр может содержать значения от F000H до FFFEh.

6-26 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

SFR

STKOV (FE14H/0AH) Значение после RESET: FAOOh

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 О

1 1 1 1 stkov 0

г г г г rw г

Бит Функция
stkov Модифицируемая часть регистра STKOV Обозначает нижний предел внутреннего системного стека

Ловушка переполнения стека (вводится в действие, когда (SP)<(STKOV)) может быть использована двумя различными способами.

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

• Автоматический flushing системного стека позволяет использовать системный стек, как «Стековый кэш» для создания большего внешнего пользовательского стека. В этом случае STKOV-регистр должен быть установлен на значение, на 12 ячеек больше, чем необходимо для вершины стека. При этом, наихудшим случаем, который может случиться, является обнаружение состояния переполнения стека в момент входа в обслуживание прерывания. В этом случае требуется шесть дополнительных ячеек стека для сохранения значений IP, PSW, CSP как при обслуживании прерывания, так и при обслуживании аппаратной ловушки.
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100