uboot引导kernel之后可以通过在内核代码里面加gpio拉高拉低证明内核确实跑进去了,bootargs里面配置了ttyS2,因为内核对控制台进行重定向之前内核打印的初始化在uncompress.h里面的,有两个话:putstr("Uncompressing Linux…");putstr(" done, booting the kernel.\n");这两句话是重定向之前打印的,可以在串口中看到,还有网上有人说可能是机器码不对,我也用gpio印证了machine_is_davinci_da850_evm()这个宏是真的。
这个问题已经困扰我两天了,这是我移植的第二块omapl138的板子,之前一块用的是nand作为存储,LCD控制器作为显示,调试串口为ttyS0,这一块用的是SPI FLASH做存储,emifa作为显示接口,调试端口为ttyS2上个礼拜把最小系统移植到第二块板子上,而且串口打印全部都有,这周一只是修改了显示的底层接口,编译出来就没有任何打印了,只怪自己上周最小系统的内核版本没有备份,搞得现在这么被动。
今天把第一块nand板子的内核代码拿出来,把bootargs中串口改为ttyS2,而且把重定向之前的串口初始化也改为ttyS2,可以看到putstr("Uncompressing Linux…");putstr(" done, booting the kernel.\n");这两句打印。
有没有人能给我点指导性的意见,bootargs和bootcmd这些已经核对了很多次了,而且都是之前成功的参数,机器码也核对了是正确的,通过拉gpio也确实跑进了内核,毫无头绪了!!!
Denny%20Yang99373:
建议在系统挂了之后通过CCS连上ARM,看PC指针
对比.map文件分析一下PC在哪个函数里,就知道卡在什么地方了
bingliang chen:
回复 Denny%20Yang99373:
跑linux的时候片子是跑在spi flash启动模式的,挂了之后不重启可以连接上芯片嘛?而且可以看到寄存器的值?有可以跟我说说怎么操作吗?