44B0引导代码解析与初始化

需积分: 3 4 下载量 108 浏览量 更新于2024-07-31 收藏 90KB DOC 举报
"44BINIT.S 是一个44b0处理器的引导初始化代码,主要负责设置内存配置、初始化中断系统、设置堆栈、初始化C语言变量以及填充零初始化的C变量。代码中包含了对一些关键硬件模块的操作,如中断控制器、看门狗定时器、时钟控制器和内存控制器的寄存器配置。此外,还定义了ARM处理器模式的常量,如用户模式和中断模式。" 在44b0引导代码中,我们首先看到的是对不同功能模块的初始化。这包括: 1. **中断控制**:通过INTPNDE、INTMODE、INTMSK、I_ISP 和 I_CMSK 等寄存器来管理和配置中断系统。INTPNDE 寄存器指示中断请求的状态,INTMODE 设置中断模式,INTMSK 控制中断屏蔽,I_ISP 表示中断服务是否挂起,I_CMSK 保存当前的中断优先级。 2. **看门狗定时器**:通过 WTCO 寄存器来控制和管理看门狗定时器,确保系统在特定时间后如果没有被重置则会强制重启,以防止系统出现长时间的无响应。 3. **时钟控制器**:PLLCON、CLKCON 和 LOCKTIME 寄存器用于控制处理器的时钟频率和锁定时间,确保系统时钟的稳定性和精度。 4. **内存控制器**:REFRESH 寄存器用于设置DRAM或SDRAM的刷新控制,保证动态内存的正确操作和数据完整性。 代码中还定义了一些预设的常量,这些常量与ARM处理器的工作模式有关。例如: - **USERMODE**(0x10):表示用户模式,这是处理器的正常运行模式,大部分应用程序都在此模式下执行。 - **FIQMODE**(0x11):快速中断模式,用于处理高优先级的快速中断事件。 这段代码是启动过程的关键部分,它确保处理器在上电或复位后能够正确地设置硬件环境,使操作系统和其他软件能够安全地运行。44BINIT.S 通过初始化这些核心硬件模块,为后续的系统加载和应用程序执行奠定了基础。