ARM启动代码详解——Philips LPC2XXX系列
需积分: 4 161 浏览量
更新于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 上传
330 浏览量
758 浏览量
1102 浏览量
575 浏览量
673 浏览量
781 浏览量
2011 浏览量
417 浏览量
xiaoweiboy
- 粉丝: 83
- 资源: 97
最新资源
- cpp-programming:用C ++语言编程
- holbertonschool-low_level_programming
- Excel模板基本数字表.zip
- typescript-nextjs-starter:用于Next.js的TypeScript入门程序,其中包括构建令人惊叹的项目所需的全部内容:fire:
- drf-restricted-fields:Django Rest Framework限制字段
- 【地产资料】XX地产---房产中介绩效方案.zip
- mywebsite
- StickyHeaders:一个 JS 库,可在可滚动列表视图中启用粘性部分标题
- 结果API
- django-extended-admin:django admin扩展,支持URL可点击字段
- Excel模板基础课、专业主干课教师情况统计表.zip
- DecToBin:简短的脚本,用于以某些常见和不常见的编程语言将十进制转换为二进制数
- neditor:基于 ueditor的更现代化的富文本编辑器,支持HTTPS
- 半导体行业点评:氮化镓商用加速,看好国内产业链崛起-200221.rar
- BioinformaticsProject2020:ShortestDistanceTadFinder V1.0
- react-workshop:React通量应用程序