Collaboration diagram for AT91:
|
The AT91 peripherals are connected to the 32-bit wide advanced peripheral bus. All registers are word accessible only.
Modules | |
| Bus Interface | |
| External bus interface registers. | |
| Power Saving | |
| Power saving registers. | |
| Interrupt Controller | |
| Advanced interrupt controller registers. | |
| Parallel I/O | |
| Parallel I/O controller registers. | |
| Watchdog Registers | |
| Watchdog timer registers. | |
| Watchdog Functions | |
| AT91 on-chip watchdog timer. | |
| Special Function | |
| Special function registers. | |
| USART | |
| Universal synchronous / asynchronous receiver / transmitter registers. | |
| Timer/Counter | |
| Timer / Counter registers. | |
Defines | |
| #define | IRQ_ENTRY() |
| Interrupt entry. | |
| #define | IRQ_EXIT() |
| Interrupt exit. | |
| #define | FIQ_ENTRY() |
| Fast interrupt entry. | |
| #define | FIQ_EXIT() |
| Fast interrupt exit. | |
|
|
Value: asm volatile("sub lr, lr,#4" "\n\t" /* Adjust LR */ \ "stmfd sp!,{r0-r12,lr}" "\n\t" /* Save registers on IRQ stack. */ \ "mrs r1, spsr" "\n\t" /* Save SPSR */ \ "stmfd sp!,{r1}" "\n\t")
|
|
|
Value: asm volatile("ldmfd sp!, {r1}" "\n\t" /* Restore SPSR */ \ "msr spsr_c, r1" "\n\t" /* */ \ "ldr r0, =0xFFFFF000" "\n\t" /* End of interrupt. */ \ "str r0, [r0, #0x130]" "\n\t" /* */ \ "ldmfd sp!, {r0-r12, pc}^" "\n\t")
|
|
|
Value: asm volatile("sub lr, lr,#4" "\n\t" /* Adjust LR */ \ "stmfd sp!,{r0-r7,lr}" "\n\t" /* Save registers on IRQ stack. */ \ "mrs r1, spsr" "\n\t" /* Save SPSR */ \ "stmfd sp!,{r1}" "\n\t")
|
|
|
Value: asm volatile("ldmfd sp!, {r1}" "\n\t" /* Restore SPSR */ \ "msr spsr_c, r1" "\n\t" /* */ \ "ldr r0, =0xFFFFF000" "\n\t" /* End of interrupt. */ \ "str r0, [r0, #0x130]" "\n\t" /* */ \ "ldmfd sp!, {r0-r7, pc}^" "\n\t")
|