ARM9_2440启动代码详解:内存配置与工作模式设置

需积分: 9 1 下载量 125 浏览量 更新于2024-09-16 收藏 51KB PDF 举报
本文档详细解析了ARM9_2440处理器的启动代码,特别是针对2440芯片进行初始化配置的过程。"2440INIT.S" 文件是C启动代码的一部分,其主要职责是设置内存配置、初始化中断服务寄存器(ISR)、堆栈,并设置预定义的工作模式和相关变量。 首先,文件开始通过`GEToption.inc` 和 `GETmemcfg.inc` 这样的头文件包含了其他必要的配置信息,这类似于C语言中的`#include`指令,确保了所需的库和设置被正确加载。 接着,文档定义了一个名为`BIT_SELFREFRESH`的宏,用于控制SDRAM的自刷新功能,其中通过位操作符`<<`将自刷新标志位设置为22位置1。接下来,文档列出了ARM9处理器预定义的六种工作模式:用户模式(USERMODE)、快速中断模式(FIQMODE)、中断模式(IRQMODE)、监管模式(SVCMODE)、异常中断模式(ABORTMODE)以及未定义模式(UNDEFMODE)。这些模式对于理解处理器的操作和安全级别至关重要。 `MODEMASK`被定义为一个掩码,用于组合和测试工作模式。取消中断(NOINT)常量0xc0表示禁止所有的中断请求。 核心部分,文档讨论了堆栈的设置。在`option.inc`中,堆栈基地址被定义为0x33ff8000。然后分别计算出在不同工作模式下的堆栈起始地址,如用户模式堆栈(UserStack)从基地址减去0x3800,监管模式堆栈(SVCStack)和异常中断模式堆栈(UndefStack)的起始地址也相应调整。 这份启动代码对于嵌入式系统开发人员来说非常重要,它确保了处理器在启动阶段正确地配置了内存和中断管理,这对于系统的稳定性和性能优化有着决定性的影响。通过理解这些代码,开发者可以定制适合特定应用需求的启动流程,从而更好地利用ARM9_2440处理器的特性。