求助,遇到未解之谜

2019-03-25 20:20发布

最近在做LPC1768的IAP在线升级,目前已可通过ISP下载IAP bootloader程序到前64K,并可通过CAN口通讯,进行应用软件的下载到后面的空间。
启动时从bootloader的main入口处就判断标志,选择运行下载程序还是应用程序。
运行过程中,定时器、串口、CAN口、AD等等的中断都算能正常运行,但是有一个问题如下面这个帖子的兄弟提到的,基本一模一样,帖子貌似沉了好久,未解之谜,大家再研究研究。
http://bbs.eeworld.com.cn/forum. ... 9&highlight=IAP
对能检测到的项目,有的机器运行都正常,有的机器不是这边有问题,就是那边有问题,所以很费解。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
sjtitr
1楼-- · 2019-03-25 22:53
 精彩回答 2  元偷偷看……
qzh7461102
2楼-- · 2019-03-26 03:03
sjtitr 发表于 2014-4-12 20:06
一段时间以前的事情了。

那时候某厂商的芯片,也是CM3内核。做IAP,发生一宗令人感到费解的升级事故:

谢谢关注,我目前数据校验是这样的:
1、上位机对应用软件的代码每段(1024字节)加上CRC,下位机接收到后,确定CRC正确才IAP写入;
2、下位机IAP写入时,进行了固化的扇区准备,扇区写入,写入数据比较;
3、纠结好长时间后,再添加了人为的循环比较,就是每帧数据写入FLASH的数据与接收的数据在while循环里比较;
以上三者均能通过,才可能让升级继续,直至完成。

控制这么算比较严格了,升级每次都能下载成功,但就是运行有不同的异常出现。
sjtitr
3楼-- · 2019-03-26 07:37
qzh7461102 发表于 2014-4-12 21:17
谢谢关注,我目前数据校验是这样的:
1、上位机对应用软件的代码每段(1024字节)加上CRC,下位机接收到 ...

我也没有什么好办法,如果你认为检察足够严格的话,就查看一下周边:例如能否保证缓存的数据在写入期间不被破坏,特别是,是否有堆栈溢出等情况。有条件的话,可以试着一口气写完,然后上位机重新发送一遍数据,再一口气的比对。
qzh7461102
4楼-- · 2019-03-26 08:16
sjtitr 发表于 2014-4-12 22:21
我也没有什么好办法,如果你认为检察足够严格的话,就查看一下周边:例如能否保证缓存的数据在写入期间不 ...

嗯,这个我之前在下载完以后,对全部代码进行过整体的CRC上下位机比较,后来改了方案用这三个来卡扣后,就没再用最后的校验比较,可以再加上去验证下。
qzh7461102
5楼-- · 2019-03-26 13:22
还有各种妙想的兄弟们,给支支招。
zhaojun_xf
6楼-- · 2019-03-26 15:22
看我之前写的帖子,对于NXP来说IAP可能遇到的问题我都说到了,注意看向量表和最后一包编程是否正确。。。。。。

一周热门 更多>