- 论坛徽章:
- 0
|
小弟初学嵌入式,一窍不通,还请各位前辈多多指教。能够提点一二,小弟亦感激不尽
------------------------------------------------
硬件:arm9 mini2440
-------------------------------------------------
这样是可以正常启动的:
uboot.bin装在norflash的0x00位置,linux的uimage(就是包含0x40的头的那个)装在nandflash的0x60000位置。文件系统装在0x560000位置。
其中,uboot的某个环境变量是bootargs=noinitrd root=/dev/mtdblock3 rw rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc mem=64M
------------------------------------------------
我将该环境变量更改为
setenv bootargs 'noinitrd root=/dev/mtdblock3 rw rootfstype=yaffs2 console=fb0,115200 init=/linuxrc mem=64M'(为了将串口让作它用)
不saveenv,可以正常启动linux启动。
但是如果saveenv,uboot就会提示
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x6000000000002 -- 0% complete.-----------------------问题1
Writing to Nand... done
这里似乎是把环境变量存在nandflash里了。
接着启动内核,uboot提示
NAND read: device 0 offset 0x60000, size 0x267000
2519040 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
如此,似乎是找不到内核了。
---------------------------------------------
问题1:
uboot的环境变量保存在哪了?nandflash总共256mb(0x1000000个字节),哪来的存在0x6000000000002那个位置
--------------------------------------------
问题2:
从何处得知uboot的环境变量的保存位置,我翻看了不少书本,都没有找到。还请高手提点一下,大概是在什么目录下的文件有此设置
--------------------------------------------
问题3:
不少书籍上都写着flash分为四段,分别是bootloader,参数区,内核映像,文件系统。请问这个参数区是不是uboot保存环境变量的地方?抑或是uimage那个0x40字节的头? |
|