天嵌 ARM开发社区

 找回密码
 注册
查看: 2760|回复: 3

请教:u-boot无法读nand flash问题

[复制链接]
haichang417 发表于 2010-8-13 18:08:07 | 显示全部楼层 |阅读模式
我自己移植的u-boot。添加上了nand读写功能。引导内核需要用nand read从nand读出内核镜像,但是无法读取。提示如下:
  1. NAND read: device 0 offset 0x0, size 0x40000
  2. data abort
  3. pc : [<320082d0>]           lr : [<320082cc>]
  4. sp : 31fd1a74  ip : 00000003         fp : 32028800
  5. r10: 00000051  r9 : 00000001         r8 : 31fd3fe0
  6. r7 : 32028758  r6 : ffffffff         r5 : 00000000  r4 : 00000000
  7. r3 : 00000051  r2 : 00000083         r1 : 00000000  r0 : 32028758
  8. Flags: nzcv  IRQs on  FIQs off  Mode SVC_32
  9. Resetting CPU ...
复制代码
请问data abort问题怎么解决?(已经google半天了,没有找到答案)nand erase是没问题。
machoe 发表于 2010-8-14 14:49:31 | 显示全部楼层
数据异常有很多情况,具体的也不好说,你也没有给了源码。
不过你可以仔细检查一下,有没有数组、堆栈越界,变量类型不一致等问题,这些都有可能造成数据异常。
 楼主| haichang417 发表于 2010-8-14 19:21:31 | 显示全部楼层
本帖最后由 haichang417 于 2010-8-14 19:30 编辑

2# machoe

谢谢版主!帖子全文在这里http://linux.chinaunix.net/bbs/thread-1169244-1-1.html就不粘这来了。
代码我发上来,除了usb下载和这个nand读写错误,其他的能用的功能都基本实现了。大家可以烧写到nand试一下。我的板子是TQ2440.编译器4.3.3。解压后,make lhc2440_config;make all编译。

附件太大,无法上传。我发到网盘了。下载地址:http://u.115.com/file/f1d7198e8b
 楼主| haichang417 发表于 2010-8-15 23:24:26 | 显示全部楼层
修改了一些错误。跟踪了一遍nand flash的操作函数,加了N多printf来验证,是在nand_read_skip_bad()函数这卡住的,而且很奇怪,竟然停在if判断的前面不执行了,怀疑是u-boot第2阶段栈的问题。我试着修改了CONFIG_SYS_LOAD_ADDR和TEXT_BASE的值,nand read的时候不在出错了,完美地引导了linux内核。呵呵。待会去点没用的代码,打包发上来和大家共享下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 09:54 , Processed in 1.062500 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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