QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 932|回复: 3

Blob会自动改变FLASH内容导致无法运行,有谁遇到过吗?

[复制链接]
发表于 2004-10-20 23:54:24 | 显示全部楼层 |阅读模式
前几天在www.lart.tudelft.nl重新下了个arm-linux编译器,终于将blob编译好了。下到44b0开发板

上运行,超级终端出现了令我兴奋的blob>提示符,执行help、reset等命令也一切正常!!!但是当我断

电重开的时候,板子没有一点反应了…………奇怪!我试着在windows下用AXD将flash的内容读了出来,

与刚刚烧进去的bin文件比较,发现前四字节的内容全变成了0x00!!!难道烧写有问题?这样为什么第

一次就可以运行?当时我是将JTAG线拔下来了的。
    我于是在start.S中加了个led blink程序,并重新烧了一次,第一次也是没有问题,启动时led闪烁

两次后超级终端开始有显示...这次我小心翼翼的将超级终端先断开,在断了44b0的电源。上电...led不

亮了,串口也没有反应了…………再次读出Flash中的内容,又发现在0x0000004C--0x00000087的内容被

修改了……修改的内容没有规律;反汇编可以看出它是将start.S中初始化端口的前几段代码给修改了…


    不知有没有谁也遇到了同样问题的,能否告知解决办法?!!!我的blob、linux源码是tpu先生编译

好的那个版本!编译OS是RH linux 7.2。
发表于 2004-10-21 10:03:45 | 显示全部楼层
你应该检查blob对Flash访问(写入或者进行ID query或者CFI query)的时候有没有关中断,如果你在写Flash或者使Flash芯片进入特殊模式的时候没有关中断的话,程序就会飞掉,因为0地址是异常处理向量表啊。至于Flash的内容被修改也是有可能的。
回复

使用道具 举报

 楼主| 发表于 2004-10-21 13:36:33 | 显示全部楼层
谢谢!我再查查。blob中的main()中确实调用了函数读Flash ID,但是读出来的值并不正确。
回复

使用道具 举报

 楼主| 发表于 2004-10-22 12:56:37 | 显示全部楼层
问题找到了!原来是FLASH从0x004c~0x0087这一段坏了,可以擦除,就是不能写,写了也还是原来的东西……我在这之前用了跳转指令跳过这一段FLASH就好了!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-22 08:03 , Processed in 0.051933 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表