uboot移植笔记

来源:互联网 发布:开淘宝母婴店流程 编辑:程序博客网 时间:2024/06/05 20:46

uboot的作用:1,初始化必要的硬件(如CPU,内存,flash,网卡,串口等),这一部分通常即为移植的重点。2,引导操作系统,即内核。通常在部分1中设置好以后,内核引导就可交给uboot进行。没有内核的话uboot启动将会停在某一位置。处于等待用户输入命令状态。


配置和编译uboot:

配置:1,选择CPU一致,或MPU核心架构一致的开发板配置作为参考,如囯嵌视频中的使用smdk2410开发板的配置做为mini2440开发板的配置

2,修改uboot顶层目录的makefile,添加如下内容(依葫芦画瓢),其中mini2440_config体现在后面的编译make mini2440_config,mini2440体现在/board/mini2440/文件夹和/include/configs/mini2440.h文件。arm920t对应cpu/arm920t目录,mini2440对应board/mini2440文件夹(自己拷贝创建)。s3c24x0为片上系统(soc),对应cpu/arm920t/s3c24x0/。


3,CPU核心相关的硬件修改:cpu/arm920t/start.S,包括相关寄存器的定义、中断禁止代码、修改时钟设置(不同芯片的主频不同)。

4,CPU soc相关的硬件修改:cpu/arm920t/s3c24x0/interrupts.c 和speed.c 和serial.c,

5,修改include/asm-arm/mach-types.h,这个是做什么用的?添加mini2440机器ID,要求添加的ID与内核提供的ID保持一致。

6,硬件驱动的修改,driver/rtc/s3c24x0_rtc.c

7,修改include/s3c24x0.h

8,在board目录中创建一个属于新的开发板的目录/board/mini2440/,向目录中添加文件相近开发板的配置文件,在修改。例子:对smdk2410.c重命名为mini2440.c和Makefile做修改。为了引导内核对mini2440.c中函数board_init函数进行修改。修改lowlevel_init.S

9,软硬件配置文件mini2440.h。

10,make mini2440_config 按照以上的修改配置(主要是/include/configs/mini2440.h中的配置)

11,make CROSS_COMPILE=arm-linux- 生成uboot.bin文件。

12,使用HJtag烧写到nor flash的0地址处。移植完成

1 0
原创粉丝点击