①:u-boot分析之编译体验

第001课_U-boot分析与使用,第001节_u-boot分析之编译体验


u-boot分析之编译体验


小笔记

一、

一上电:

PC → BIOS → 引导操作系统 → 识别C盘、D盘 → 运行应用程序,QQ、MSN

嵌入式系统 → bootloader(u-boot)→ linux内核 → 挂接根文件系统 → 应用程序


二、

bootloader,最终目的是启动内核。


三、

① 解压缩:tar xjf ***.bz2;(uboot源代码压缩文件)

② 打补丁:patch -p1 < ..补丁文件;

③ 配置:make 100ask24x0_config;

④ 编译:make;


四、

最终目的:

从Flash读出内核,放到SDRAM;

然后启动内核。


五、

U-Boot要实现的功能:

① 能够读Flash+写Flash;(为开发方便:①写Flash  ②网卡  ③USB)

②初始化SDRAM,初始化时钟,初始化串口;

③启动内核;


总结:

U-Boot:单片机程序。

(硬件相关初始化)

关看门狗,      

初始化时钟,

初始化SDRAM,       

从Flash读出内核,

启动内核。


开发功能:

烧写Flash

网卡

USB

串口





U-Boot配置过程

单片机程序 UBoot


补丁文件中修改过的代码表示:

“---”表示原来代码。

“+++”表示修改后的代码。


打开补丁文件(u-boot-1.1.6_jz2440.patch):

@@-0,0+1,566@@

“-”表示没有修改过的代码;“+”表示修改后的代码

原来代码的从34开始,往下共6行。修改之后的代码也是从34行开始,但是修改后是往下8行。


原来的6行是“1,2,3,6,7,8”行。中间“4,5”两行前面有“+”表示增加的内容。


补丁打到哪里去?


显示是补丁打到:u-boot-1.1.6/board/100ask24x0/100ask24x0.c 这个源代码去。打补丁时一般已经是进入到u-boot-1.1.6这个目录。

因为已经在u-boot-1.1.6这个目录下,所以写path时忽略去目录“u-boot-1.1.6”。用到参数“-p1”,是指忽略去第一个“/”前的路径。

所以在u-boot-1.1.6这个目录下,键入命令:patch -p1 < ../u-boot-1.1.6-jz2440.patch,即可打补丁。


u-boot命令:

print:打印出环境变量


set bootdelay 10:设置“倒数计时”为10秒。加save命令保存,reset命令重启后可以看到“倒数计时”。




总结:

一、UBoot目标是启动内核:从flash上读出内核到SDRAM中去。启动内核。

二、硬件相关的初始化:关‘看门狗’、‘初始化时钟’、‘初始化SDRAM’、‘从Flash上读出内核’、‘启动内核’。

三、增强功能:烧写Flash(从网卡或从USB)。串口(通过串口写指令)。

1、读flash;

2、初始化SDRAM;

初始化时钟,单板上电后是以12M运行的(晶振为12M)。

初始化串口。为开发板方便要写flash功能(通过网络或USB烧镜像到单板上)。


阅读更多

扫码向博主提问

mymainn

非学,无以致疑;非问,无以广识
去开通我的Chat快问
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页