我使用LPC2132实现软件升级功能,但现在发现,当侍升级的软件代码长度超过0x7fff 时,升级后更新的软件不能正常运行。 实现方法如下: 我先写一段监控程序,叫程序1,空间在4K之内的,使用了0x0000~0x1000的扇区地址。程序1负责检查外置FLASH有没有新的有效文件(程序2),当发现有新的文件后将的文件写入0x1000~0xffff LPC2132的FLASH之内。然后跳转到0x1000之内运行。 当程序2文件长度小于0x8000时,能正常运行到新的程序之中,但当程序为0x8004或以上时程序不再运行。 内置4K的程序(程序1)是使用-entry 0x0000 生成的,程序2使用-entry 0x1000 生成的。不知这样生成是否有限制的地方。 另外,程序2的中断向量为0x1000的偏移量,而LPC 2132中断向量为0x0000,是如何自动跳转到0x1000 的,这个过程我有点含糊。
|