4792|11

194

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

有没有人碰到过bootloader非预期的把flash内容给修改了的? [复制链接]

如题,程序里面有bootloader,目前发现有几例,单片机不运行了,怀疑是程序被bootloader非法修改了,出现这种情况都是在上电过程中就损坏的,而不是在程序运行过程中。
谢谢!

最新回复

也可能是在进入boot程序之前程序就跑飞了,我就遇见过这样的情况,我是把检测更新的函数修改了,在产品批量生产时大部分都是可以正常工作的,但是就是有几台上电不能正常工作,但是手动复位就可以正常工作,然后我调试跟踪,发现就没有进入程序,程序不知道跑飞到哪里去了,大家遇见过这种问题没?  详情 回复 发表于 2012-5-29 17:26
 
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

回复 楼主 zxq6 的帖子

你有没有修改过bootloader?如果没有的话,原始的bootloader应该不会修改flash里面的东西
 
 

回复

194

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

回复 沙发 allan0508 的帖子

添加了一个解密函数进去,如此而已。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

4
 

回复 楼主 zxq6 的帖子

你是在bootloader里做应用程序的校验和么?
 
 
 

回复

194

帖子

0

TA的资源

一粒金砂(高级)

5
 

回复 4楼 tekkon 的帖子

不知道,直接使用的官方例程,只是增加了一个解密函数而已。
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

6
 

回复 5楼 zxq6 的帖子

Bootloader 里边只是会将进来的数据编程到 FLASH 相应位置.这个解密函数是干什么的?应该不会产什么问题。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

7
 
一定要限定好指针,防止乱写Flash
 
 
 

回复

194

帖子

0

TA的资源

一粒金砂(高级)

8
 

回复 7楼 zhzhchang 的帖子

能不能具体说说如何限定?
 
 
 

回复

400

帖子

0

TA的资源

五彩晶圆(中级)

9
 
1. 什么芯片?
2. 具体的现象是什么?比如上电后运行不正常的判别依据是什么?怀疑BOOT程序更改了FLASH的依据又是什么?
3. 出问题后,是否重新烧写一次就正常?
4. Boot程序的进入条件是否有严格判断, 最好是内部地址校验加外部管脚校验,如果是只有外部管脚校验,检测一下管脚上电时是否有非正常操作。
4. 在BOOT 程序中FLASH擦写加校验可以有效防止BOOT程序错误操作。不过如果上电进入了BOOT程序,你的应用程序也是跑不起来的。
 
 
 

回复

194

帖子

0

TA的资源

一粒金砂(高级)

10
 
1.LM3S9B92-C5
2.具体现象如下因为我的系统有液晶屏,正常情况下进入app会在屏上有显示,而出错的那些单片机,上电后是没有显示的,怀疑flash被更改的依据是:我的bootloader和app都有禁止jtag的代码,但是那些出错的芯片,拿回来后,很轻松就可以用jtag重新写入程序,而重新写入程序的芯片又运行正常。
3.是的,重新写入后正常
4.boot程序是使用的官方的boot_eth代码,只有外部管脚校验。该管脚只作为bootloader使用,无其他用途
5.上电并未进入bootloader,因为我观察过,如果是进入bootloader,网线插好后本地连接应该能够连起来,但是出错的芯片没有显示连接。

PS,楼上能否介绍一种擦写校验的算法?

[ 本帖最后由 zxq6 于 2012-4-2 08:59 编辑 ]
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

11
 

回复 10楼 zxq6 的帖子

TI的 IEC60730 application note 里有flash CRC校验的算法
你可以下载解压后看看test_flash.c以及 sw01272.c

http://www.ti.com/mcu/docs/litab ... yId=1&familyId=1755

下载解压后把这个文件夹放到你的 StellarisWare目录底下就可以调用test_flash.c里的函数了
 
 
 

回复

720

帖子

0

TA的资源

纯净的硅(中级)

12
 

也可能是在进入boot程序之前程序就跑飞了,我就遇见过这样的情况,我是把检测更新的函数修改了,在产品批量生产时大部分都是可以正常工作的,但是就是有几台上电不能正常工作,但是手动复位就可以正常工作,然后我调试跟踪,发现就没有进入程序,程序不知道跑飞到哪里去了,大家遇见过这种问题没?

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表