uboot——之初体验
官方下载地址:ftp://ftp.denx.de/pub/u-boot/
uboot的终极奥义就是启动内核。
但是,现在,我们先做最基本的,去官网下载一个支持自己板子的uboot,然后解压缩,打补丁。
官网的uboot肯定不能对应所有的板子,所有需要根据自己特定的板子打补丁,以满足自己特定cpu的需求。
看看uboot中的某处Makefile代码:


艾特符表示的是目标文件。
现在,我们说一下打补丁的操作。
天下的uboot都是一样的,都在官网下载,不同的用户,对uboot有不同的配置需求,如果每次都从uboot本身的源码去更改,那么工作量也太大了,也不利于维护,补丁文件则解决了这个问题,通过打不同的补丁,可以达到不直接更改uboot源码的目的,通过补丁文件可以看出自己的板级支持包和官网uboot源码的异同,补丁也是现在推荐的方式。
打补丁通过linux的patch命令,先解压缩uboot源码,

然后准备好韦老师的补丁文件。由于补丁是要打在我们解压缩的uboot目录里面去的,所以要先进入这个uboot解压缩好的目录,因为补丁文件依赖于uboot的某些文件或路径,这也是为韦老师要给我们说一下 -p 选项,patch -p1 < 补丁文件目录,-p1表示忽略补丁文件的第一级目录,-p2表示忽略二级,-p3表示忽略三级,-p4表示忽略4级,以此类推。我们需要先cd到解压缩的uboot目录下执行patch命令,由于已经位于当前uboot目录下,所以需要忽略第一级目录,故应该加上-p1选项,也就是 patch -p1 < ../ubootxxx_jz2440.patch.

打好补丁之后,执行make 100askconfig,再make,就可以编译处uboot.bin文件了。
打好补丁之后,要了解uboot最好的方式就是先看Makefile,先执行make 100ask24x0_config配置,然后make编译,可以得到最后的uboot.bin文件,这样就可以烧写进单板了。
为什么需要先make 100ask24x0_config配置,可以参见uboot文件夹中的README文件,里面有介绍。

上面是打好补丁之后的uboot文件中的makefile中的一部分。源码该部分如下:

韦老师自己加入了100ask的配置。
这里说明一下smdk2440和s3c2440的区别:
smdk:Samsung MCU Development Kit 三星开发板
s3c2440是芯片的型号。
初学的时候,可以先不用管补丁文件,先直接使用厂商提供的。熟悉之后,你就可以为所欲为了。
uboot——之初体验的更多相关文章
- BSP中uboot初体验
一. uboot源码获取 1.1. 从板级厂家获取开发板BSP级uboot(就是由开发板厂家提供的) 1.2. 从SOC厂家获取相同SOC的BSP级uboot 1.3. 从uboot官方下载 1.4. ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- 百度EChart3初体验
由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...
随机推荐
- ML之监督学习算法之分类算法一 ———— k-近邻算法(最邻近算法)
一.概述 最近邻规则分类(K-Nearest Neighbor)KNN算法 由Cover 和Hart在1968年提出了最初的邻近算法, 这是一个分类(classification)算法 输入基于实例的 ...
- 【JavaScript】浅析JavaScript中arguments对象的使用
arguments对象不能显式创建,arguments对象只有函数开始时才可用.函数的 arguments 对象并不是一个数组,访问单个参数的方式与访问数组元素的方式相同.索引 n 实际上是 argu ...
- block(九)Block 和 Delegate 的使用比较
Block 和 Delegate中的方法都可以理解成回调函数,当某件事情发生的时候取执行一段代码片段 Block(代码块) 优点:是一种轻量级的回调,能够直接访问上下文,使用块的地方和块的实现地方在同 ...
- golang学习 ----获取URL
package main import ( "fmt" "io/ioutil" "net/http" "os" ) fu ...
- MySQL -- 全文检索(查询扩展检索)
通常用在查询的关键词太短,用户需要隐含知识进行扩展.例如,查单词database时,用户可能还希望不仅仅包含database的文档,可能还指包含mysql.oracle.db2等单词.这时就需要查询扩 ...
- 【转】C# 的 IDisposable 接口
C# 的 IDisposable 接口 我在微软的团队快被微软 C# 里面的各种 IDisposable 对象给折腾疯了…… 故事比较长,先来科普一下.如果你没有用过 C#,IDisposable 是 ...
- #优化:Nginx防御DDOS和CC攻击
加载HTTP段 ## # 基础配置 ## keepalive_timeout 10; server_tokens off; types_hash_max_size 2048; ## # 主要配置 ## ...
- Oracle 客户端连接时报ORA-01019错误总结
在.net+oracle开发中,发布web程序的时候,有是会遇到该错误 ora-01019 ORA-01019 unable to allocate memory in the user sideCa ...
- Ubuntu 13.04开机亮度调节
终于把我的T430换成Ubuntu,本来还打算等几天13.10,想想反正能升级,趁着101长假就抓紧换了吧~` 总体来说遇到的问题不是很多,可能是Thinkpad在Linux或者ubuntu的方面做的 ...
- Jmeter录制HTTPS
Jmeter有录制功能,录制HTTPs需要增加一个证书配置,录制步骤如下: 1.打开jmeter,添加线程组.线程组右键,逻辑控制器>录制控制器 工作台 右键 非测试元件 >HTTP代理服 ...