我们在使用基于CC2540开发的车载GPS产品时,发现有几台设备出现了程序跑坏的现象,终端重新启动不能恢复,必须重新烧写程序才能够恢复。不知道这个问题是怎么引起的?
Triton Zhang:
不能工作 的情况非常复杂,出了问题后先不要急着重新烧录程序,查找问题优先,思路如下:
1. 把出了问题的芯片,用烧写器读FLASH内容出来,和正确的进行比较,看FLASH程序是否被改写或擦除。
如果是被改写,多半是配置参数,常量等被改了。
如果整块被擦除,则先屏蔽下你程序中的FLASH擦写函数。
工程如果不包含FLASH .C 文件,编译不过,所以建议进入到FLASH.C文件,屏蔽掉eras 函数中的内容
2. 如果改后的代码不出现被擦除的情况,则需要你检查自己的代码中是否有跑飞的情况。
3. 如果任然出问题。则建议
1) CC2540烧写时可以对FLASH进行写保护。防止恶意擦除。建议烧写程序时把改选项加上。
2) 电路设计时,最好把CC2540和前端处理器(如果有的话)设计成缓启动,不要让CC2540和其他处理器一起启动。等前端处理器的管脚稳定后,在用它来启动CC2540
如果按照以上处理,还会发生,请继续讨论。
da qin zheng sheng:
用的啥电源?建议用质量好的!
xin li10:
回复 Viki Shi:
我们之前烧写程序的时候设置成不能读写的模式了,暂时读取不出来。后面我们会取消这个设置,等发现有问题的终端后再读出来看看。
xin li10:
回复 Triton Zhang:
好的,我们先读出来比对一下。
xin li10:
回复 da qin zheng sheng:
我们用的是锂聚合物电池,深圳市中顺新能电池有限公司产的,型号LP554858,2500mAh,不知道会不会有影响?