原来有个项目是用lpc2368 不带操作系统做的IAP,可以成功升级。现在要做带ucos系统的出现了问题。我的做法:
1,将原来的升级程序和通信协议移到带ucos中,用原来的高端软件升级
2,设置了编译参数-apcs /interwork
3,在STARTUP.S文件中初始化用户模式堆栈为StackUsr-20*4。
4,调用IAP前先OS_ENTER_CRITICAL(),结束IAP调用后再OS_EXIT_CRITICAL()。
为什么高端软件把Hex的文件通过IAP写到FLASH中可以成功,但是重启ARM,结果就死掉了。我对过ads生成的Hex文件和IAP写到FLASH中的数据是一样的,是什么问题。是不是和target的设置有关?我用flashmagic分别烧写两个区的程序,都可以允许
希望版主能帮忙一下,谢谢! |