LPC2000系列ARM硬件结构解析: VIC中断控制器与MAM存储加速模块

需积分: 1 0 下载量 91 浏览量 更新于2024-07-13 收藏 1.46MB PPT 举报
"VIC相关启动代码分析 - LPC2000系列ARM硬件结构(5~9)" 在LPC2000系列的ARM处理器中,向量中断控制器(VIC)是处理中断的关键组件,用于管理和调度来自不同外设的中断请求。在启动代码中对VIC进行初始化是必要的,以确保系统的稳定运行。下面我们将详细讨论VIC初始化过程以及LPC2000系列的一些关键硬件特性。 首先,VIC初始化涉及到以下几个步骤: 1. 清除中断使能寄存器`VICIntEnClr = 0xffffffff;`,这会禁止所有中断,确保在系统运行初期不会无预期地响应中断请求。 2. 设置 VIC 中断向量地址`VICVectAddr = 0;`,通常设置为0,表示中断处理程序的默认地址或者中断服务例程的入口。 3. 设置 VIC 中断选择寄存器`VICIntSelect = 0;`,用于配置中断源的优先级和中断类型。 接下来,我们关注处理器的模式和中断状态。在LPC2100和LPC2200系列中,启动代码默认会关闭IRQ和FIQ中断,这是通过设置CPSR(Current Program Status Register)寄存器实现的。`MSR CPSR_c,#0xdf`这条指令将CPSR的I位和F位清零,分别对应禁止IRQ和FIQ中断。如果用户需要启用这些中断,必须在特权模式下手动设置CPSR的相应位。 LPC2000系列硬件结构包括多个关键模块: - 存储器寻址:该系列微控制器提供了灵活的内存映射,支持不同类型的存储器如Flash、SRAM等。 - 系统控制模块:包含电源管理、复位和时钟控制等功能。 - 存储器加速模块(MAM):针对Flash存储器进行优化,通过128位总线提升指令执行速度,避免CPU因等待Flash读取而停滞。 - MAM内部包含两个Flash存储器组,一个预取指缓冲区,一个分支跟踪缓冲区和一个数据缓冲区,用于减少访问延迟。 - 关闭MAM时,CPU可能需要等待Flash完成读取,造成执行效率下降。 - 开启MAM则可以连续提供指令,提高处理器的吞吐量,减少了等待周期。 除此之外,LPC2000系列还包含了丰富的外设接口: - 外部中断输入:用于接收外部设备的中断请求。 - 定时器0和定时器1:提供定时和计数功能。 - SPI接口:串行外围接口,用于与各种外设通信。 - I2C接口:用于低速设备间的通信。 - UART(0、1):通用异步收发传输器,用于串行通信。 - A/D转换器:将模拟信号转换为数字信号。 - 看门狗:确保系统在异常情况下能够自动复位。 - 脉宽调制器(PWM):用于生成可调频率和占空比的信号。 - 实时时钟:提供精确的时间基准。 这些特性使得LPC2000系列微控制器广泛应用于各种嵌入式系统设计中,如工业控制、消费电子和通信设备等。理解和配置好VIC以及相关硬件模块,对于开发高效、可靠的嵌入式系统至关重要。