【序】 毕业在即,以前做的ARM和uC/OS的项目也忘的差不多了,近日将以前的项目温习了下,对ARM程序开发的启动部分代码及中断程序的编写进行了详细研究。在网上获此佳作 《基于ARM 的嵌入式系统程序开发要点》,对ARM上的裸机程序开发进行了详细陈述,包括启动的中断向量的设置、存储器配置、堆栈初始化、应用程序环境的拷贝准备、主程序的调用等以及ARM和Thumb代码的交互、重映射的处理,分析精妙,本人觉得把此文研读透了应付嵌入式ARM的面试基本没问题,在此与大家共享。
蓝色部分是本人还有点疑问的,欢迎朋友们指正,谢谢。
不知道什么原因上传后排版就变了,并且图不好传上来,在此只发关键章节,对此感兴趣的朋友可以来信索取全部文档。
sailor_forever
基于
ARM
的嵌入式系统程序开发要点
整理
: sailing sailing_9806@163.com
(二)系统的初始化过程
基于ARM 的芯片多数为复杂的片上系统集成(SoC),这种复杂的系统里多数的硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都使用汇编语言。系统启动程序所执行的操作跟具体的目标系统和开发系统相关,一般通用的内容包括: