韦衔接之uboot分析与使用(一)

本文详细介绍了U-Boot的编译过程,包括解压缩源码、打补丁、配置与编译。讲解了补丁的原理及应用,以及`make 100ask24x0_config`配置步骤。文章还探讨了U-Boot的启动流程,从启动内核的目标,到启动内核前的硬件初始化。同时,分析了U-Boot命令的实现和内核启动时参数的传递方式。
摘要由CSDN通过智能技术生成

编译初体验:打补丁编译烧写

先给出四步骤:
① 解压缩:tar xjf ***.bz2;(uboot源代码压缩文件)
② 打补丁:patch -p1 < …补丁文件;
③ 配置:make 100ask24x0_config;配置,以让这个u-boot支持不同的开发板;
(其实也是makefile中的一个目标)
④ 编译:make;

一、概念引入
Windows系统启动过程,PC上电 => 进入BIOS(引导操作系统)=> windows => 识别C,D等的硬盘 => 运行应用程序
嵌入式系统启动过程,上电 => bootloader(引导内核)=> LINUX => 挂接根文件系统 => 运行应用程序
在这里插入图片描述
uboot最终目的是启动内核!从flash读出内核,放到SDRAM,然后启动内核!
内核一定小于64M吗????

在这里插入图片描述

二、打补丁
文件夹中有两个文件:
在这里插入图片描述
第一个是未修改过的原版,下面是补丁。
源码包世界各地都可以下载,我们给别人补丁就行了,小。

怎么打补丁:
在这里插入图片描述

摘出一部分看一下补丁文件:
在这里插入图片描述
这意思是说:源代码从34行开始,总共有6行,修改后的代码是从34行开始,总共八行。
所以后面修改的部分,修改前的是53行开始的,修改后的是55行开始,多了上面加的这两行。

补丁打到哪里去?在补丁文件中有指示:
在这里插入图片描述
就是打到u-boot-1.1.6/board/100ask24x0/100ask24x0.c这个文件中。我们现在已经在u-boot-1.1.6/目录了,所以要把这一层目录忽略掉。所以加上一个参数-p1。参数 -p1 。是指忽略去第一 个“/”。
(一个补丁会修改多个文件,所以会有多个上面这三行内容,针对不同的文件。)

补充:在这里插入图片描述
怎样生成补丁文件?
在这里插入图片描述

三、make 100ask24x0_config
移动到下文编译过程中了。

四、启动uboot看一下:
在这里插入图片描述
原版UBOOT是没有这个菜单的,韦老师加入的。
貌似,q退出菜单后才能正常使用uboot的命令!
命令行输入menu 就可回到uboot菜单,这个命令也是韦老师加的。
?或者help可以看到uboot的命令。
在u-boot使用print 命令,输出的都是环境变量,修改环境变量,
要使用set命令,设置完之后要save保存,然后reset命令重启:
在这里插入图片描述

五、重申uboot要实现的目的

在这里插入图片描述
为了达到这个目的,就要求uboot得实现这些功能(读flash,初始化sdram,启动内核)。
其余的都是为了方便开发的。

uboot从flash上面读出内核,那么内核是怎么弄到flash上面呢?
(生产的时候可以用烧写工具来烧写,)
但是我们开发过程是用UBOOT通过网络或者USB弄到flash上面的,这就涉及到了写flash这个功能了。
在这里插入图片描述

首先要明确:uboot目标是从flash读出内核(nand read.jffs2 0x30007FC0 kernel;),启动它(bootm 0x30007FC0)。

注:初始化时钟,单板上电后是以12M运行的(晶振为12M)。
看UBOOT的代码,很多文件夹和文件。怎么学习这个框架呢?
要想这些文件怎么组织起来,就要看它的makefile了。

uboot的Make 100ask24x0_config过程

https://www.cnblogs.com/lifexy/p/7154657.html
http://blog.chinaunix.net/uid-20671208-id-3539867.html

100ask24x0_config是自己写在uboot的makefile中的一个目标。
在这里插入图片描述
MKCONFIG这个变量表示的一个脚本。后面的 arm ar920t等等是这个脚本的启动参数。
在这里插入图片描述
@加在一个命令前面表示不打印出命令(静默执行)。
(通常,make会把其要执行的命令行在命令执行前输出到屏幕上。)

第二步:进入mkconfig文件,这是脚本文件,用的linux_shell语法!!!!
摘取一部分看一下(虽然这个文件很短):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值