主题 : uboot + 2.6.36 移植出错 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 6871
精华: 0
发帖: 12
金钱: 80 两
威望: 48 点
综合积分: 24 分
注册时间: 2009-06-20
最后登录: 2010-12-31
楼主  发表于: 2010-11-24 14:39

 uboot + 2.6.36 移植出错

Starting kernel ...

data abort
pc : [<30008008>]          lr : [<33fa655c>]
sp : 33f3ddfc  ip : 00000000     fp : 30008000
r10: 33fc2f08  r9 : 000007cf     r8 : 33f3ffe0
r7 : 33f3ffc4  r6 : 00000000     r5 : 30000100  r4 : 00000000
r3 : 00000000  r2 : 30000100     r1 : 000007cf  r0 : 00000000
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ..
装载到内存(0x30008000)后提示此信息,接着就不停重启系统
我跟了下好像是arm_syscall中提示的data abort,有没得高人指点一下,大家互相学习啊

另推荐2本好书
<深入理解计算机系统> http://www.china-pub.com/197167
计算机体系结构:量化研究方法 http://www.china-pub.com/33097

以后如果打算走程序设计的道路必备的书,第一本告诉你计算机什么,第二本告诉你为什么
级别: 新手上路
UID: 6871
精华: 0
发帖: 12
金钱: 80 两
威望: 48 点
综合积分: 24 分
注册时间: 2009-06-20
最后登录: 2010-12-31
1楼  发表于: 2010-11-24 19:44
么得人回应?
级别: 新手上路
UID: 6871
精华: 0
发帖: 12
金钱: 80 两
威望: 48 点
综合积分: 24 分
注册时间: 2009-06-20
最后登录: 2010-12-31
2楼  发表于: 2010-11-25 14:11
问题解决了,可以启动了,重新编译一道kernel,可以引导内核了,但是,还是没得文件系统,打算移植UBI
u-boot这块总算过去了,调试u-boot引导linux时注意如下几点

我的调试经验如下:

1. kernel的启动参数设置正确与否 ? 注意mach_type,
2. kernel的entry point是否正确,比如对于ARM,可能会使用0x30008000这个地址,uImage会在zImage前加0x40字节,因此,应该将uImage下载到内存的0x30007FC0(0x30008000 - 0x40)处 ;
3. linux kernel有没有配置好,比如支持console;
4. 对于一些可以变频的MCU,如s3c2410,需要检查一下u-boot与kernel中设置的CPU频率是否一致,否则无法在u-boot启动的shell中看到kernel的启动信息;
5,一定要输出到串口“console=ttySAC0”,要不然就是booting the kernel,以为死机了呢。
6. 如果按上面做了还都不行,在确保上面都正确的情况下,直接使用zImage启动,自己在head-common.S,添加启动信息
ENTRY
处添加
mov r0,#0
mov,r1, #你的机器id,具体可以在mach-type.h,路径我忘了
lddr, r2,0x30008000,加载到内存地址

这里就算我的移植记录历程吧