|
socfpga的Starting kernel ...问题的解决
[复制链接]
本帖最后由 石玉 于 2017-12-29 17:42 编辑
做了大半年了,还在做那个数据采集的项目,上半年仿照lark boar做了第一版核心板,出现了几个小毛病,最后搞的只有一块完整好用的板,靠这块板完成了基本功能,感觉只有一块板太危险了,于是在第一版的基上又做了第二版,这版出现了一个问题,搞了2天终于找到问题了。
相信有很多做ARM开发的人都遇到过这个问题,串口打印到Starting kernel ...就没有了,什么都没有了
在网上搜了下,大多是说串口的配置有问题,或者是内存有问题,出现这种问题原因确实很多,光靠这个不能找出是什么问题
首先我们要打印出足够的调试信息,在网上找了下,有2种方法
1.开启kernel的early_printk
1.开启Kernel hacking--->Kernel low-level debugging functions
2.开启Kernel hacking--->Early printk
3.在uboot启动项上加上earlyprintk
此时再启动就可以看到内核启动到那一步挂了
2.直接读取缓存
1.在kernel中找到system.map文件
2.打开文件找到 __log_buf,获得 __log_buf的地址,比如64584:c0770be8 b __log_buf
3.启动内核,内核此时卡在Starting kernel …位置
4.重新启动系统,复位重启,不要断电,进入UBoot命令行界面
5.输入md 0xc0770be8,就可以看到debug信息,按回车看打印停在了那里
最终发现内核停在了altera_gpio_probe这一句,正常的打印接下来要初始化PCIE了,看来是PCIE的问题了,于是我在DTS中去掉了PCIE节点,然后就可以正常启动了,仔细检查了下PCIE的硬件发现是晶振没起振 换了一个晶振就好了,搞了两天完全没头绪,居然是这个问题
|
|