ARM7嵌入式系统中启动程序的实现
时间:12-05
来源:互联网
点击:
{
vector.0(VECTOR,+First)
int_handler.o(+RO)
*(+RW,+ZI)
}
}
在arm链接器的命令行里加入”-scovdescription-file-scf”或”-scatterdescription-file”,编译链接后,将产生一个分布装载文件。
链接器同时产生一组符号,给出每个分布描述文件中命名的区间的长度,装载地址和执行地址。由于链接器和C库都没有将代码从它的装载区间拷贝到执行区间,或创建一个零初始化区域的功能,所以要由应用程序员利用这组符号产生的信息完成这项工作,这是在呼叫C程序之前必须完成的,举例如下:
LDRr0,=|Load$$DRAM$$Base|
LDRr1,=|Image$$DRAM$$Base|
CMPr0,r1检查装载地址和执行地址是否相同
BEQdo_zi_init相同,则不拷贝该区间,初始化零数据区
MOVr2,r1;不相同,将装载区拷贝到执行区
LDRr4,=|Image$$DRAM$$length|
ADDr2,r2,r4
BLcopy
do_zi_init
LDRr1,=|Image$$DRAM$$ZI$$Base|
MOVr2,r1
LDRr4,=|Image$$DRAM$$ZI$$length|
ADDr2,r2,r4
MOVr3,#0
BLzi_init调用零初始化子程序
结语:
本文介绍的启动程序已经在以CirrusLogic公司的EP7211和Ateml公司的AT91M40400开发的系统上运行并测试通过。今后可以在这一基础上添加串行通信模块和FLASH操作模块,开发系统监控程序,从而实现应用程序的在线升级。
- 实时操作系统μC/OS-II在ARM7上的移植(05-12)
- ARM7与FPGA在工业控制中的结合应用 (06-26)
- ARM7与FPGA在工业控制的结合 (07-03)
- 基于ARM7和DSP的逆变电源设计电路(01-08)
- ARM7嵌入式系统在车辆调度中的应用范畴(07-06)
- ARM系列微处理器简介之:初识ARM系列处理器(08-13)
