ARM2440ddr.h: 上电初始化与工作模式切换
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的嵌入式系统项目至关重要。
2011-03-14 上传
2022-09-24 上传
2022-07-13 上传
2023-05-23 上传
2023-04-04 上传
2023-04-04 上传
2023-06-10 上传
2023-10-27 上传
2023-05-31 上传
weixin_38609401
- 粉丝: 5
- 资源: 936
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍