U-boot

U-boot

1:U-Boot主要功能
系统引导、基本辅助功能(强大的操作系统接口功能,可以灵活设置传递多个关键参数给操作系统)、设备驱动、上电自检功能、特殊功能(内核引导)。
2:U-Boot源码导读
a:board:和一些已有开发板相关的文件,比如Makefile和U-Boot.lds等都与具体开发板的硬件和地址分配有关。
b:common:与体系结构无关的文件,实现各种命令的C文件。
c:cpu:其中子目录都是以U-Boot所支持的CPU化名,每个特定的子目录都包含cpu.c和interrupt.c以及start.S文件;cpu.c初始化CPU设置指令和数据,Interrupt.c设置系统的各种中断和异常,start.S是U-Boot启动时执行的第一个文件,主要设置系统堆栈和工作方式。
d:disk:disk驱动的分区代理代码。
e:doc:文档。
f:drivers:通用设备驱动程序(网卡,Flash,串口,USB总线)
g:fs:支持文件系统的文件
h:include:头文件,还有对各种平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。
i:net:与网络有关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。
j:lib_arm:与ARM体系结构相关的代码。
k:tools:创建S-Record格式文件和U-Boot images的工具。
3:U-Boot重要代码
a:start.S U-Boot的起始位置。文件设置了处理器的状态、初始化中断和内存时序等,从Flash中跳转到定位好的内存位置执行。
b:interrup.c 这个文件是处理中断的。
c:cpu.c 这个文件是对处理器进行操作。
d:memsetup.S 这个文件是用于配置开发板参数的。
3:U-Boot移植主要步骤
a:配置主板
:阅读Makefile文件,在Makefile文件中添加两行,如下:
s3c2410_config:unconfig @./mkconfig $ (@:_config=) arm arm920t s3c2410
其中ARM是CPU种类,arm920t是ARM CPU对应的代码目录,s3c2410是自己主板对应的目录。
:在board目录中建立s3c2410目录,并复制smdk2410目录中的内容到s3c2410目录下。
–在include/configs/目录下复制smdk2410.h(cp smdk2410.h s3c2410.h)
–修改ARM编译器的目录名以及前缀
–修改完成之后,可以测试配置
#make s3c2410_config
#make
:修改程序连接地址
在board/s3c2410中有一个config.mk文件,他是用于设置程序连接的起始地址,因为会在U-Boot中增加功能,所以留下6MB的空间,并修改33F80000为33A00000。
为了以后能用U-Boot的GO命令执行修改过的用loadb或tftp下载的U-Boot:在board/s3c2410的memsetup.S中标记符“0:“上加上5句:
mov r3,pc
ldr r4,=0x3FFF0000
and r3,r3,r4 //以上3句得到实际启动的内存地址
aad r0,r0,r3 //用GO命令调试u-boot时,启动地址在RAM
add r2,r2,r3 //把初始化内存信息的地址,加上实际启动地址
b:设置FLASH和SDRAM时序
在include/configs/s3c2410中加入一下几句:
#define CONFIG_DRIVER_DM9000 1
#define DM9000_BASE 0X08000000
#define DM9000_BUS16 1
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR 192.168.2.120
#define CONFIG_SERVERIP 192.168.2.122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值