LPC1768 IAP 升级后APP异常运行

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

LPC1768 IAP 升级后APP异常运行

3,003件の閲覧回数
Michael-X
Contributor I

求助,同14年以下两个贴子反馈的问题一样,但没找到解决方法。出错机率有1~5%左右。

http://bbs.eeworld.com.cn/thread-435273-1-1.html

http://bbs.eeworld.com.cn/thread-324949-1-1.html

盼复!!

ラベル(2)
0 件の賞賛
返信
4 返答(返信)

2,990件の閲覧回数
Michael-X
Contributor I

好的,过程如下:

1、程序分区为: boot:0---2FFF (2000--2FFF存储固件信息),APP:3000---3FFFFF,backup: 40000--7FFFFF

2、正常启动过程,APP运行,从串口下载应用程序至backup区,并校验40000开始的程序,正确后,写入2000--2FFF程序信息并标记升级,重启。

3、重启后,Boot运行,读取(2000-2FFF)信息,判断需要升级,并重新校验40000--7FFFFF的程序信息与000--2FFF一致,进入复制过程:(40000--7FFFFF)复制至 (3000---3FFFFF),成功后,校验(3000---3FFFFF),如果正确重启。

4、进入APP,校验程序(3000---3FFFFF,按程序实际大小,存储在(000--2FFF)),通过应用程序把校验码发出来。

---------------------------------------------------

以上升级过程在程序开发实验过程中,均能正常。

当出货量大后1K以上,发现部份产品出现有几种情况:

1)无法升级程序。(返回分析,防真调试时,发现BOOT校验40000---7FFFF这个校验码与存储在(000--2FFF)校验码不一致,无法下一步升级)

2)可以升级,但返回的校验码异常,运行也会异常。(分析:使用J-LINK读取固件与烧录的固件比较代码一致;使用IAR防真boot程序,并读取3000---7FFFFF,fv发现部份数据与代码不一致),以上链接反馈的问题类似。使用J-Link重新刷程序后,代码运行正常。

3)可以升级,返回校验码正常,但程序运行异常(通讯发送开机命令,但机子不开机,显示不正常等)。(分析:使用J-LINK读取固件与烧录的固件比较代码一致。没有做防真)

通过去年的出货量,发现故障的产品至少有1%。

有查过程序,发现有可能的地方有:

网上搜索有人提到频率的问题,我们重新确认了一下。

主程序的频率66.6M ,程序IAP程序设置 #define IAP_FCCLK (80000),BOOT,APP都是这个设置,感觉这里有问题,但不确定。

后来修订#define IAP_FCCLK (66666),不过新出货的程序没有IAP升级的需求,暂时无法得到相关数据。

以上。

0 件の賞賛
返信

2,725件の閲覧回数
438746665
Contributor I

我最近也遇到同样问题。结合你的问题分析和仿真现象,修改IAP_FCCLK值为单片机的频率值后,BOOT更新程序能正常启动运行。

0 件の賞賛
返信

2,993件の閲覧回数
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, HuanMing,

你好, 愿闻其详, 你是如何升级IAP的, 升级IAP后,APP如何异常?

BR

XiangJun Rong

0 件の賞賛
返信

2,722件の閲覧回数
438746665
Contributor I

将IAP_FCCLK值设为你单片机的运行频率。

0 件の賞賛
返信