ARM2440ddr.h: 上电初始化与工作模式切换

0 下载量 154 浏览量 更新于2024-09-01 收藏 116KB PDF 举报
ARM2440ddr.h文件是针对ARM2440单片机平台的一种关键头文件,它在系统上电启动时起到核心作用。该文件主要用于单片机的基本初始化,包括检测启动源(Nor Flash或NAND Flash),以及将引导程序从非易失性存储器转移到SDRAM中,确保程序能够顺利运行。一旦迁移成功,控制流程会跳转到主函数(main函数)执行。 文件中的部分内容解析如下: 1. 引入文件:GET和INCLUDE这两个宏具有相似功能,用于引入预编译的配置文件,如GETmemcfg.inc和GET2440addr.inc,这些文件可能包含了特定于ARM2440硬件配置的变量和常量。 2. SDRAM刷新模式:定义了SDRAM的工作模式,例如`BIT_SELFREFRESHEQU(1<<22)`,表明SDRAM支持自刷新(self-refresh)模式,这是一种低功耗状态,数据不会丢失。 3. 处理器模式寄存器:CPSR寄存器是ARM处理器的状态标志,通过常数如`USERMODEEQU0x10`至`ABORTMODEEQU0x17`等,分别对应用户模式、快速中断处理模式(FIQ)、常规中断处理模式(IRQ)、系统管理模式(SVC)、未定义模式(UNDEF)和未定义模式掩码(MODEMASK)。这些常数用于设置处理器工作在不同特权级别。 4. 异常模式堆栈:定义了在各种异常模式下(如用户模式、系统模式等)的堆栈地址,如`UserStackEQU(_STACK_BASEADDRESS-0x3800)`,这些堆栈地址用于处理异常时保存当前状态。 5. 工作状态判断与编译方式:代码中通过`GBLLTHUMBCODE`来区分32位和16位工作模式。ARM2440支持32位和16位指令集,32位执行时使用ARM指令,而16位则执行Thumb指令。通过这种方式,程序员可以根据实际需求选择合适的编译方式,比如使用tasm.exe在16位环境下编译。 总结来说,ARM2440ddr.h文件是ARM2440单片机系统启动过程中的重要组成部分,它管理内存初始化、启动源判断、数据迁移以及处理器模式设置,确保了系统的稳定和高效运行。理解并熟练掌握这个文件的内容,对于开发基于ARM2440的嵌入式系统项目至关重要。