不知道ID:learndkid
31126次访问,排名3681好友1人,关注者2
learndkid的文章
原创 3 篇
翻译 0 篇
转载 33 篇
评论 8 篇
最近评论
mldstk:wow gold,
mldstk:wow gold,
dasdf:dfsdffg
liubaosen:configure 时要加-qvfb 选项
运行时:
qt-embedded/examples/hello -qws -display QVFb:0
liubaosen:Not bad!
文章分类
收藏
    相册
    Delphi
    Embeded
    VC
    单片机/arm
    其他
    驱动开发
    图象处理
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 简单说说U-boot的修改 收藏

    新一篇: AT91RM9200处理器的内部启动机制 | 旧一篇: 让arm-linux支持普通USB摄像头

    uboot是一个通用的免费开放源码的boot程序,支持很多的处理器。
    以下是现在网上下载一个u-boot-1.1.1版本,用于at91rm9200系统的修改的例子。最后在redhat8.0上,用gcc2.95编译通过。

    在网上下载了uboot-1.1.1版本。要用于自己的at91rm9200的系统,这个系统的情况是:
    SDRAM: 32Mbytes NCS1
    FLASH: 8Mbytes NCS0

    涉及到的文件有四个:
    common.h
    flash.c
    flash.h
    ”./board/at91rm9200dk/config.mk”
    以下简单的说说。

    一、首先读读uboot自带的readme文件,了解了一个大概。

    二、看看common.h,这个文件定义了一些基本的东西,并包含了一些必要的头文件。再看看flash.h,这个文件里面定义了flash_info_t为一个struct。包含了flash的一些属性定义。并且定义了所有的flash的属性,其中,AMD的有:AMD_ID_LV320B,定义为“#define AMD_ID_LV320B 0x22F922F9”。

    三、对于“./borad/at91rm9200dk/flash.c”的修改,有以下的方面:
    “void flash_identification(flash_info_t *info)”这个函数的目的是确认flash的型号。注意的是,这个函数里面有一些宏定义,直接读写了flash。并获得ID号。

    四、修改:”./board/at91rm9200dk/config.mk”为
    TEXT_BASE=0x21f80000 为TEXT_BASE=0x21f00000 (当然,你应该根据自己的板子来修改,和一级boot的定义的一致即可)。

    五、再修改”./include/configs/at91rm9200dk.h”为
    修改flash和SDRAM的大小。

    六、另外一个要修改的文件是:
    ./borad/at91rm9200dk/flash.c。这个文件修改的部分比较的多。
    1.   首先是OrgDef的定义,加上目前的flash。
    2.   接下来,修改”#define FLASH_BANK_SIZE 0x200000”为自己flash的容量
    3.   在修改函数flash_identification(flash_info_t * info)里面的打印信息,这部分将在u-boot启动的时候显示。
    4.   然后修改函数flash_init(void)里面对一些变量的赋值。
    5.   最后修改的是函数flash_print_info(flash_info_t * info)里面实际打印的函数信息。
    6.   还有一个函数需要修改,就是:“flash_erase”,这个函数要检测先前知道的flash类型是否匹配,否则,直接就返回了。把这里给注释掉。


    七、接下来看看SDRAM的修改。
    这个里面对于“SIZE”的定义都是基于字节计算的。
    只要修改”./include/configs/at91rm9200dk.h”里面的
    “#define PHYS_SDRAM_SIZE 0X200000”就可以了。注意,SIZE是以字节为单位的。

    八、还有一个地方要注意
    就是按照目前的设定,一级boot把u_boot加载到了SDRAM的空间为:21F00000 -> 21F16B10,这恰好是SDRAM的高端部分。另外,BSS为21F1AE34。


    九、编译后,可以写入flash了。
    1.   压缩这个u-boot.bin
    “gzip –c u-boot.bin > u-boot.gz”
    压缩后的文件大小为:
    43Kbytes
    2.   接着把boot.bin和u-boot.gz烧到flash里面去。
    Boot.bin大约11kBytes,在flash的0x1000 0000 ~ 0x1000 3fff

     

     

    发表于 @ 2006年07月27日 17:51:00|评论(loading...)|编辑

    新一篇: AT91RM9200处理器的内部启动机制 | 旧一篇: 让arm-linux支持普通USB摄像头

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © learndkid