В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > ARM > ARM7TDMI
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


6. Регистры статуса программы

Процессор ARM7TDMI содержит регистр CPSR и пять регистров SPSR для использования в обработчиках исключительных ситуаций. Регистры статуса программы:

  • хранят информацию о большинстве недавно выполненных операциях АЛУ
  • управляют включением и отключением прерываний
  • устанавливают режим работы процессора.

Назначение бит показано на рисунке 2.6.


Рисунок 2.6. Формат регистра статуса программы

Прим.: В целях совместимости с будущими процессорами ARM не рекомендуется затрагивать значение зарезервированных бит. Один из способов сохранения неизменности этих бит - использование последовательности "чтение-модификация-запись" при изменении содержимого CPSR.

Далее будут рассмотрены: флаги кода условия, биты управления и зарезервированные биты.

6.1 Флаги кода условия

Биты N, Z, C и V являются флагами кода условия, они устанавливаются при выполнении арифметических и логических операций. Кроме того, они обновляются при выполнении инструкций MSR и LDM. Процессор ARM7TDMI проверяет данные флаги для определения необходимости выполнения инструкции. Все инструкции могут выполняться по условию в состоянии ARM. В состоянии Thumb только инструкция перехода может выполняться по условию. Более детальная информация по условному выполнению инструкций приведена в "ARM Architecture Reference Manual".

6.2 Биты управления

Нижние 8 бит регистра PSR совместно называются битами управления.

К ним относятся:

  • биты отключения прерываний
  • бит T
  • биты режима

Биты управления изменяют свое состояние при возникновении исключительных ситуаций. Если процессор работает привилегированном режиме, то программа может манипулировать данными битами.

Биты отключения прерываний

Биты I и F являются битами отключения прерываний:

  • если бит I = 1, то отключаются прерывания IRQ;
  • если бит F =1, то отключаются прерывания FIQ.

Бит T

Бит T отражает рабочее состояние:

  • если T = 1, то процесс работает в состоянии Thumb
  • если T = 0, то процессора работает в состоянии ARM.

Рабочее состояние также индицируется внешним сигналом TBIT.

Внимание: не пользуйтесь инструкцией MSR для принудительного изменения состояния бита T в регистре CPSR. В этом случае, процессор перейдет в непредсказуемое состояние.

Биты режима

Биты M[4:0] определяют режим работы процессора (см. таблицу 2.2). Не все сочетания данных бит определяют действительный режим процессора, поэтому, необходимо использовать только приведенные ниже значения.

Таблица 2.2. Значения бит режима регистра PSR

M[4:0] Режим Регистры, видимые в состоянии Thumb Регистры, видимые в состоянии ARM
10000 пользователя r0-r7, SP, LR, PC, CPSR r0-r14, PC, CPSR
10001 FIQ r0-r7, SP_fiq, LR_fiq, PC, CPSR, SPSR_fiq r0-r7, r8_fiq-r14_fiq, PC, CPSR, SPSR_fiq
10010 IRQ r0-r7, SP_irq, LR_irq, PC, CPSR, SPSR_irq r0-r12, r13_irq, r14_irq, PC, CPSR, SPSR_irq
10011 супервизорный r0-r7, SP_svc, LR_svc, PC, CPSR, SPSR_svc r0-r12, r13_svc, r14_svc, PC, CPSR, SPSR_svc
10111 аварийный r0-r7, SP_abt, LR_abt, PC, CPSR, SPSR_abt r0-r12, r13_abt, r14_abt, PC, CPSR, SPSR_abt
11011 неопределенный r0-r7, SP_und, LR_und, PC, CPSR, SPSR_und r0-r12, r13_und, r14_und, PC, CPSR, SPSR_und
11111 системный r0-r7, SP, LR, PC, CPSR r0-r14, PC, CPSR

Если в M[4:0] запрограммировать некорректное значение, то это приведет к переходу процессора в необратимое состояние, выйти из которого можно только инициировав состояние сброса.

7.3 Зарезервированные биты

Оставшиеся биты в регистрах PSR не используются, но зарезервированы. При изменении флага PSR или бит управления необходимо гарантировать, что значения зарезервированных бит не затрагиваются. Также необходимо гарантировать, чтобы ход выполнения программы не зависел от значения данных бит, т.к. в будущих процессорах они могут иметь 1 или 0-ое значение.



<-- Предыдущая страница Оглавление Следующая страница -->