跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
TOLL封装MOS管捷比信 · 专业器件主题站

快速重启嵌入式系统

随着计算机技术的发展,工业技术也得到了迅速发展,嵌入式应用也变得非常广泛。为了确保指令的实时操作,ARM芯片不直接在FLASH中运行。相反,它以更快的读取速度将闪存中的数据复制到SDRAM,然后运行它,从而提高运行速度。但是,由于程序的固定特性,我们重新启动时将再次复制代码。我们知道SDRAM在没有保存数据的情况下断电,但如果SDRAM没有断电,则内部数据不会丢失。当我们重新启动时,我们没有关闭芯片电源。此时,系统不得不再次复制代码,这造成了浪费时间。当然,在行业中,在我们的系统启动后,它通常不太可能重新启动,因此每次启动时浪费的时间。但是,当我们使用数码相机时,我们必须拍摄。这个时间可能是几毫秒。每次打开它都需要几秒钟才能启动。这是无法忍受的。它不能一直打开,便携式相机的电池太有限了。我们通常的解决方案之一是将系统切换到低功耗模式,但只有低功耗模式仍会浪费功率。我们认为,如果只有SDRAM供电,作为待机模式,每次按下复位按钮时,它都会直接跳入SDRAM而无需再次复制代码。这实现了快速启动,并且相应地延长了电池的供电时间。 1上电,复位完成; 2嵌入式ARM内核自动将闪存中最低的4k启动代码复制到SRAM,并从SRAM的0x0000_0000地址开始; 3完成一些必要的初始化工作,将FLASH中的代码复制到In SDRAM; 4跳转到SDRAM运行;通过上述步骤,我们进入我们的应用程序或操作系统。当我们需要复位时,即nRESET引脚上出现向下脉冲,并发生复位。当nRESET信号为低电平时,ARM处理器会丢弃任何指令的执行,并从增加的字地址中取指令;当nRESET信号变高时,ARM处理器执行以下操作:1。当前PC值和CPSR值写入R14_svc和SPSR_svc,保存的PC和SPSR的值未知; 2.强制M [4:0]至10011(超级用户模式),并且“I”为“I”。和“F” CPSR中的位设置为1并清除T位; 3.强制PC从0x00地址获取指令。 4.恢复到ARM状态并开始执行。也就是说,程序将跳转到地址位置0x0000_0000并开始上述第三和第四步骤。我们知道从闪存读取数据比SDRAM慢,这里我们必须复制代码,这也是很长一段时间。但是,此时我们可以发现我们没有断电,SDRAM中的数据仍然是我们的代码,我们不需要重新复制这段代码,在下次启动时,只需直接跳转到SDRAM运行,做一些初始化工作很好。这样重启速度非常快。以下是程序从系统启动改变复位跳转指令的流程图。修改0x0000_0000的跳转指令可以替换为以下数据:使用LDR PC,= 0x3000_0000指令,反汇编后得到的32位指令数据为0xE3A0_F5C0。把它放在0x0000_0000。要修改0x0000_0000处的数据,可以使用以下指令:完成上述配置后,可以快速重新启动程序。