Предыдущая Следующая

3. System — режим выполнения системных программ, при котором ОС работает с данными пользователя.

4. IRQ — режим обработки прерываний, в который процессор, попадает при поступлении на вход IRQ запроса прерывания низшего уровня.

5. FIQ (Fast IRQ) — режим быстрой реакции на прерывания, в который процессор попадает при поступлении на вход FIQ запроса высшего уровня.

6. Abort — режим, в который процессор переходит при ошибке обращения к памяти (обращение по несуществующему адресу, попытка записи в ПЗУ и т. п.). Эти ошибки фиксируются контроллером прерываний, который выдает процессорному ядру запрос на переход в режим Abort.

7. Undefined — режим, в который процессор переходит при выборке неправильного кода команды.

Все режимы функционирования процессора, кроме' режима User, называются привилегированными. Каждому из них соответствует определенная регистровая модель, содержащая набор 32-битных регистров, доступных процессору в этом режиме. Все возможные регистровые модели для состояния ARM приведены в Табл. 1.2. В каждом режиме процессору доступны 16 регистров общего назначения R0...R15 и регистр состояния CPSR. Все регистры общего назначения имеют определенные стандартом фирмы ARM дополнительные имена, которые указаны в таблице в скобках. При вызове подпрограмм и организации передачи данных между ними, этот стандарт рекомендует следующее использование регистров общего назначения:

• регистры al...а4 используются для передачи параметров подпрограммам;

• регистры v 1...v8 используются для хранения локальных переменных;

• регистр IP служит для хранения промежуточных данных между вызовами процедур.

Регистры, имена которых выделены в таблице жирным шрифтом, являются банкированными. Это значит, что они используются только в том режиме, на который указывают их суффиксы (_fiq, _svc, _abt, _irq, _und) вместо соответствующих им регистров без суффиксов. При переходе в указанный режим из других режимов, текущее содержимое регистров без суффиксов автоматически переписывается в соответствующие банкированные регистры, а при возврате в прежний режим вновь используются его собственные регистры. Таким образом, суммарное количество физических 32-битных регистров общего назначения, доступное процессору во всех режимах состояния ARM, равно 31, а суммарное количество доступных процессору физических регистров состояния равно 6 (регистру CPSR соответствуют банкированные регистры с обобщенным форматом имени SPSR_xxx, о чем будет сказано ниже).

Таблица 1.2. Регистровые модели процессорного ядра ARM7TDMI-S в различных режимах состояния ARM

User, System

FIQ

Supervisor

Abort

IRQ

Undefined

RO (al)

RO

RO

RO

RO

RO

Rl (a2)

Rl

Rl

Rl

Rl

Rl

R2(a3)

R2

R2

R2

R2

R2

R3(a4)

R3

R3

R3

R3

R3

R4 (vl)

R4

R4

R4

R4

R4

R5(v2)

R5

R5

R5

R5

R5

R6 (v3)

R6

R6

R6

R6

R6

R7 (v4)

R7

R7

R7

R7

R7

R8 (v5)

R8_flq

R8

R8

R8

R8

R9(v6)

R9_fiq

R9

R9

R9

R9

RIO (v7)

R10_flq

RIO

RIO

RIO

RIO

Rll (v8)

Rll_flq

Rll

Rll

Rll

Rll

R12 (IP)

R12_flq

R12

R12

R12

R12

R13(SP)

R13_fiq

R13_svc

R13_abt

R13_irq

R13_und

R14 (LR)

R14_flq

R14_svc

R14_abt

R14_irq

R14_und

R15 (PC)

R15

R15

R15

R15

R15

CPSR

CPSR

CPSR

CPSR

CPSR

CPSR

 

SPSR_flq

SPSR_svc

SPSR_abt

SPSRJrq

SPSR_und

В базовом режиме User, в котором процессор находится большую часть рабочего времени, используются 32-битные регистры R0...R15 и регистр состояния CPSR.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_19.html on line 611

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_19.html on line 611

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_19.html on line 611