+ -
当前位置:首页 → 问答吧 → 内核启动问题

内核启动问题

时间:2010-07-21

来源:互联网

编译了一个内核,在TQ2440板子上的,uboot是原装的,没有改过
开发板有一个选项可以直接测试内核,能够正常运行(就是直接复制到内存里)

但是把内核下载到NAND,再启动就不行了,
错误如下:
Start Linux ...                                                                 
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Ker.
data abort                                                                     
pc : [<30008f78>]    lr : [<30008f9c>]                                          
sp : 3020ec40  ip : 3020ec50  fp : 3020ec4c                                    
r10: 40000000  r9 : 30000000  r8 : 30008000                                    
r7 : f048b7c4  r6 : 189e2830  r5 : 00000000  r4 : 3020dc2c                     
r3 : 00003f00  r2 : 4c007fd7  r1 : 11a1400d  r0 : 3021ec90                     
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32                                    
Resetting CPU ...                                    

我用板子自带的镜像用同样的方法下到NAND里是可以正常启动的,所以uboot应该是没有问题的

我怀疑是不是我的内核太大了,我看开发板自带的都是2M 以下的,而我编译好的内核zImage有2M多一点,而Image达到4.1M ,不知道和这个有没有关系

作者: oneyoung1988   发布时间: 2010-07-21

回去看了log,发现真的是内核太大的原因:
下面是uboot的输出:
NAND write: device 0 offset 0x200000, size 0x200000                             
                                                                                
Writing data at 0x3ff800 -- 100% complete.                                      
2097152 bytes written: OK   

---最下面的那个文件大小刚好是2*1024*1024,也就是2M

以下是dnw的:
Target usb device found!
Filename : zImage-2.6.33.5
Filesize : 2120812 bytes
Writing data ...
100%     2120822 bytes     Done!

而我的在zImage大小是大于2M的,uboot就把多余的部分截掉了 -.-!!

作者: oneyoung1988   发布时间: 2010-07-21