ARM启动代码详解——Philips LPC2XXX系列
需积分: 4 78 浏览量
更新于2024-10-18
收藏 116KB PDF 举报
"该资源是关于ARM启动代码的分析,特别是针对PHILIPS LPC2XXX系列微控制器。本文档详细阐述了启动过程中涉及的关键步骤和编程细节,包括处理器的工作模式、中断处理以及中断向量表的配置。"
在ARM架构中,启动代码是程序执行的第一个环节,它负责设置处理器的状态、初始化硬件、配置内存映射以及建立中断处理机制。对于LPC2XXX系列,这是基于ARM7TDMI内核的微控制器,因此其启动过程遵循ARM7的规则。
首先,文档中定义了ARM处理器的七种工作模式,这些模式决定了处理器如何响应不同类型的事件和异常:
1. **用户模式 (User Mode, Mode_USR)**:默认的操作模式,应用程序代码通常在此模式下运行。
2. **快速中断模式 (FIQ Mode, Mode_FIQ)**:用于高速数据传输或硬件中断处理。
3. **中断请求模式 (IRQ Mode, Mode_IRQ)**:标准中断处理模式。
4. **超级用户模式 (Supervisor Mode, Mode_SVC)**:用于操作系统和其他系统服务。
5. **终止模式 (Abort Mode, Mode_ABT)**:在异常或未预期的数据访问时进入。
6. **未定义模式 (Undefined Mode, Mode_UND)**:执行未定义指令时进入。
7. **系统模式 (System Mode, Mode_SYS)**:最高权限模式,与用户模式类似,但有完全的访问权限。
接着,文档提到了中断和状态屏蔽位,如`I_Bit`和`F_Bit`,它们用于控制IRQ和FIQ中断的开启和关闭。`T_bit`则用于设定处理器是在ARM模式还是Thumb模式下运行。
启动代码的主体部分展示了中断向量表的配置,中断向量表是处理器在遇到异常或中断时跳转到的地址集合。例如,`Reset_Addr`是复位中断的处理程序地址,其他如`Undef_Addr`、`SWI_Addr`、`PAbt_Addr`、`DAbt_Addr`分别对应未定义指令、软件中断、预取中止和数据中止的处理程序。中断向量表的最后一个条目通常是IRQ中断的入口地址,这里通过相对寻址来实现。
最后的`LDR PC, FIQ_Addr`指令表示加载FIQ中断处理程序的地址到程序计数器(PC),使得处理器在接收到FIQ时能正确跳转到对应的处理代码。
这篇ARM启动代码分析对理解LPC2XXX系列微控制器的启动流程、处理器模式切换和中断管理有重要的参考价值,有助于开发者编写高效的嵌入式系统初始化代码。
2010-04-21 上传
327 浏览量
170 浏览量
395 浏览量
337 浏览量
282 浏览量
758 浏览量
241 浏览量
232 浏览量
xiaoweiboy
- 粉丝: 83
- 资源: 97
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库