今天在调试android系统时,先烧写uboot和文件系统,然后用NFS下载Linux内核,进行调试。
但是无论如何从uboot向linux内核传递参数时会出现问题。
后来才发现,是混用了go和bootm命令。下载完linux内核后,应该用bootm指令跳转至0x50008000
go和bootm差异就是 go只是改写pc值,而bootm传递r0,r1,r2还有bootargs
bootm先后完成了2部分工作。大家可以分析bootm源码
1.set bootargs 传递参数
2.set pc=0x0800_8000 ,r0=0 ,r1=0xA0
3.对比zImage 分析
go命令本质就是改变当前pc值,即pc=go 0x08008000
阅读(814) | 评论(0) | 转发(0) |