您的位置 首页 主动

U-boot1.1.6移植到TQ2440开发板(下)

这两天在移植u-boot,花了两天完全是因为卡在nandflash里了,关于nandflash下次再写吧,这次记录一下刚刚遇到的一个问题吧。。。呵呵。

这两天在移植u-boot,花了两天彻底是因为卡在nandflash里了,关于nandflash下次再写吧,这次记载一下刚刚遇到的一个问题吧。。。呵呵。

u-boot在引导linux发动,需求传递环境变量等装备

设置一些宏界说,在include/configs文件下的装备文件里增加

#define CONFIG_SETUP_MEMORY_TAGS 1
#define CONFIG_CMDLINE_TAG 1
#define CONFIG_INITRD_TAG 1

#defineCONFIG_BOOTARGS “noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0”
#defineCONFIG_BOOTCOMMAND “nand read0x32000000 0x200000 0x300000;bootm 0x32000000″

这儿阐明一下最终那个宏界说,在说之前首要声明一下,在nand分区为

0~0x40000为u-boot区,0x200000~0x500000为kernel区,剩余的为文件体系了

依据上面的分区咱们能够很简单知道那个宏界说的意思了,首要用nand read指令将内核从nandflash地址0x200000开端仿制,巨细为0x300000,仿制到sdram开端地址为0x32000000。履行完后,再履行指令bootm,发动

还有很重要一个要设置math_type和内核里设置的相同,不然无法发动

其在u-boot:include/asm-arm/mach_types.h里,在linux:arch/arm/tools的mach_types里

假如u-boot引导内核时呈现过错Bad Magic Number时,那么阐明你的linux短少64字节的头信息。能够用u-boot/tools下的mkimage给它参加头信息,详细操作如下:

将zImage.bin文件拷到tools/目录下,输入指令:
#mkimage -n linux-2.6.30 -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage.bin zImage.img

就能够生成带有头信息的zImage.img了,将其烧写就能够正常发动了
这儿解释一下参数的含义:
-A==>setarchitecturetoarch
-O==>setoperatingsystemtoos
-T==>setimage typetotype
-C==>setcompressiontypecomp
-a==>setload addresstoaddr (hex)
-e==>setentrypointtoep (hex)
-n==>setimage nametoname
-d==>useimage datafromdatafile
-x==>setXIP(executein place)

上面的办法是可行,可是却很费事吖,不或许每次编译好了内核,还要去增加一次头信息吧?所以,从linux 2.6版别开端,就能够运用make uImage指令,直接生成带有头信息的uImage了,请到arch/arm/boot下检查呵呵。

假如运用make uImage提示有过错,那就自己百度吧。。。自学,百度是必需的!

好了,就到这儿,现在的话,u-boot+linux+root都OK了,或许接下来是QT吧。。。嘿嘿,要让LCD大放异彩,必需的。

最终弥补下,详细将这些烧写到NANDFLASH里的那里呢?这和你的分区有关,前面现已说了分区了,所以,请将你的U-BOOT烧写到0地址,linux烧写到0x200000,root就到0x5000000吧

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/259110.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部