请各位linux高手给予些指点!

发布于 2022-09-26 12:55:17 字数 7386 浏览 20 评论 0

我使用的linux内核为linux.26.20.3的版本,使用u-boot引导,ram 64M cpu s3c2410 nand flash 64M cs9800.
系统通过u-boot引导,bootargs为 console=ttySAC0,115200, mem64M  (仅是作测试之用,文件系统还没有挂上)
u-boot中相关引导参数传递相关的宏,都已经设置。
u-boot锁定频率为200MHz

似乎该注意到的都已经注意到了,但是linux内核还是没有被成功引导起来。
引导信息如下:

U-Boot 1.2.0 (Oct 31 2007 - 11:42:11)               
                                                     
U-Boot code: 33F80000 -> 33F981CC  BSS: -> 33F9CA84
RAM Configuration:
Bank #0: 30000000 64 MB
IN board init
NAND:    64 MB
In:    serial
Out:   serial
Err:   serial
make sure define CONFIG_DRIVER_CS8900
net id is 0x630e
eth_initialize, file: board.c, line = 400
FCLK is 200000000                                                               
eth_initialize function                                                         
Hit any key to stop autoboot:  0                                                
                                                                                
NAND read: device 0 offset 262144, size 2097152 ...                             
2097152 bytes read: OK                                                         
## Booting image at 30008000 ...                                                
   Image Name:   linux-2.6.20                                                   
   Created:      2007-10-28   8:34:56 UTC                                       
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    1179948 Bytes =  1.1 MB                                       
   Load Address: 30008000                                                      
   Entry Point:  30008040                                                      
   Verifying Checksum ... OK                                                   
   XIP Kernel Image ... OK                                                      
bootargs = console=ttySAC0,115200 mem64M                                       
arg[0] = bootm                                                                  
arg[1] = 0x30008000                                                            
                                                                                
Starting kernel ...                                                            
                                                                                
Uncompressing Linux.............................................................

首先,为了确认是否为u-boot的问题,我将linux2.4的内核传入0x30008000,并且用u-boot的bootm引导(当然修改console=ttyS0,115200)成功引导,并且也显示接受到了 bootargs的信息。由此应该可以排除u-boot的问题。(是否有疑问?请指出)

为了跟踪2.6.20内核是否运行正常,发现了个奇怪的问题。
在汇编跟踪阶段采用了printascii和点led并行跟踪的方式,最后跟踪到b start_kernel处(该句之前,除了mmu on后内存地址空间发生变化led不可用,之后只能用printascii跟踪,所有的调试信息都能正常出现)。
当跟踪到main.c中的start_kernel后,所有的调试方式都失去了效果,终端没有任何信息。
我是在start_kernel函数的入口处继续使用printascii函数进行打印。

有谁遭遇到这怪事呢?给我些指点吧!谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文