嵌入式系统快速重启的研究
时间:11-16
来源:中电网
点击:
然后,程序在SRAM中将代码自身复制到地址为0x3000_0000开始处,如图2中2所示。
在将代码复制完之后将地址为0x0000_0000处的复位中断跳转矢量改为跳转到0x3000_0000,如图2中3所示。
然后程序跳转到SDRAM中,地址为相对于0x3000_0000的一个偏移量,这个偏移量为当前地址距0x0000_0000的偏移量,如图2中4所示。
在图2中5中,如果用户使用了Reset按键,重新启动系统,我们就可以从地址为0x0000_00000处直接跳转到0x3000_0000这个位置,开始进行硬件初始化等工作,这次就不会有代码拷贝的过程了。
快速重启软件流程
下面是系统自开机开始, 程序修改复位跳转指令的流程图,在修改0x0000_0000处的跳转指令可用如下数据替代:
使用LDR PC, =0x3000_0000指令,反汇编后得到的32位指令数据是0xE3A0_F5C0,将其放到0x0000_0000处即可。
而修改0x0000_0000处的数据,可用如下指令:
程序经过以上配置,就可以实现系统的快速重启。
结论
系统的快速重启,应用将非常广泛。即使是嵌入式系统慢慢的也将变得很复杂,系统所占的空间也在慢慢的变大,这样一个复制过程将严重影响很多设备的使用,最简单的就是数码相机了。
- DDR SDRAM在嵌入式系统中的应用(02-07)
- DSP中的存储器共享与快速访问技术设计(06-28)
- 利用 Xilinx FPGA 和存储器接口生成器简化存储器接口(07-27)
- 使用 Virtex-4 器件实现的 DDR2 的控制器(08-03)
- SDRAM在任意波形发生器中的应用(01-06)
- 嵌入式DSP访问片外SDRAM的低功耗设计研究(03-03)