ARM Vectored Interrupt Controller

支持 32 路中断请求输入

每路输入可配置是否使能,每一路中断输入可配置为 FIQ 或 IRQ

具有一个 FIQ 通道,为了使处理速度最快,务必使只有一个通道设置为 FIQ,优先级最高

具有 32 个 IRQ 通道,每个通路可配置选择哪路中断源输入

32 个通道分为 8 个不同的优先级,

通道 0—3 具有最高的优先级,通道 4—7 具有次高的优先级,依次类推,通道 28—31
具有最低的优先级

相同优先级的 4 个通道之间不能相互打断;

如果同时产生相同优先级的几个通道的中断(比如通道 0—3),会优先执行低通道中断(先执行通道 0,然后通道 1,然后通道 2,最后通道 3)。


中断向量在ARM7处理器中位于0到0x1C地址
为了在不同的操作模式下对中断的替换使用,一小片的Boot块和SRAM空间,需要重新映射。中断向量的重映射是通过内存映射控制特性完成的。

模式 激活条件 用途
boot loader 通过任何复位操作硬件激活 在复位后,boot loader总是被执行。启动块的中断向量被映射到0地址,在boot期间处理异常和使用中断。
Flash模式 通过boot代码,软件激活 在Flash中的有效的用户程序签名被识别出来,且不强制执行boot操作时,就会激活,启动用户程序。中断向量没有重新映射,还是处于Flash的0地址
RAM模式 通过用户程序,软件激活 由用户程序激活。中断向量被映射到SRAM的底部

有些SOC的Boot Block是Boot ROM,

另外一些,还是Flash, 只不过是从整体的Flash重新映射一部到boot block地址空间,比如 LPC213x, BOOT BLOCK(12 kB REMAPPED FROM ON-CHIP FLASH MEMORY) 从0x7FFF D000到0x8000 0000

当一个软件中断(SWI)生成时, ARM内核 总是会从 0x8地址取得一个32位宽的数据。 这意味着, 当MEMMAP[1:0]=10 (RAM模式), 数据实际是由
0x4000 0008地址提供的。 当MEMMAP[1:0]=00 (boot loader模式), 数据由 0x7FFF E008 地址 提供(从芯片上的bootloader映射的boot block)

The flash boot loader code is executed every time the part is powered on or reset. The
loader can execute the ISP command handler or the user application code.

The boot block is 12 kB in size and resides in the top portion (starting from 0x0007 D000) of the on-chip flash memory.

After any reset the entire boot block is also mapped to the top of the on-chip memory space i.e. the boot block is also visible in the memory region starting from the address 0x7FFF D000.

The flash boot loader is designed to run from this memory area but both the ISP and IAP software use parts of the on-chip RAM. The interrupt vectors residing in the boot block of the on-chip flash memory also become active after reset, i.e., the bottom 64 bytes of the boot block are also visible in the memory region starting from the address 0x0000 0000. The reset vector contains a jump instruction to the entry point of the flash boot loader software.

The boot block is present at addresses 0x0007 D000 to 0x0007 FFFF in all devices. ISP and IAP commands do not allow write/erase/go operation on the boot block.
启动块是不能被擦除的

LPC213x Bootloader(启动装载程序)控制复位后的初始化操作,并提供Flash ISP编程接口。它驻留在Flash的最前面的12KB,只能读不能写

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注