Bootloader简介及UBOOT移植 (转)

嵌入式bootloader 、uboot移植、内核移植 最近在找实习,在一些企业岗位要求理解bootloader、uboot移植、内核移植,在此之前也学过这些,但理解不是很深,于是便找了一些资料进行整理,以此加深自己的理解。 bootloader 概念:就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,它就是所谓的加载程序(Boot Loader)。 u-boot u-boot 是bootloader的一种,也就是bootlo 阅读详情
Bootloader简介及UBOOT移植
1. 引言
嵌入式系统的应用程序一般都被烧录到FLASH或EEPROM或ROM中。在开发的过程中需要
不断地讲程序下载到目标板上运行调试。如果每次都要将程序烧录到FLASH中,一则FLASH
的烧录速度慢(擦除、编程),二则在FLASH中运行时,调试器无法下断点,达不到方便调
试的目的。三则频繁烧录降低FLASH的使用寿命。
一种较好的方法就是将应用程序下载到RAM中,可以解决上面的问题。有两种方法:
1) 通过JTAG将IMAGE下载到RAM中。使用这种方法的前提是目标板上的RAM已经被正确初
始化,否则无法下载。

2) 在目标板上先运行一个程序(程序在Flash中),通过这个程序以某种交互的方式从H
OST将IMAGE下载到RAM中。如通过串口、USB接口、网络接口等方式。这种方式就是boot
loader的方式。
2. bootloader介绍
玩过Linux的人都知道LILO或GRUB,两个非常有名的引导程序,用来引导操作系统。和这
里介绍的bootloader非常类似。所做的工作基本上就是进行一些简单的初始化工作,然
后将控制权转交给要运行的IMAGE(操作系统或应用程序).
一个较好的bootloader会提供一个比较好的交互式界面,并提供一些对于嵌入式开发相
当有用的工具。如查看、修改RAM中的内容,通过多种方式从HOST下载IMAGE到RAM中,能
够将配置信息保存到FLASH中。
为了提供这些功能,bootloader要实现相关设备的驱动。如如果支持从网络接口下载IM
AGE,它要实现网卡的驱动、IP协议、ARP协议、tftp协议等等。串口、FLASH的读写也是
如此。
常见的FREE的bootloader有armboot,用于采用ARM架构CPU的开发板,PPC-boot用于采用
PowerPC架构CPU的开发板。这两种bootloader目前都已停止开发。而将他们合而为一,
成为U-boot。目前版本是0.4.0,在sourceforge.net上可以下载源程序。
3. U-boot介绍
目前Rease版本的u-boot已经被移植到arm720t,arm920t,at91rm9200,i386,mips,m
pc5xx,mpc824x,mpc8260,mpc8xx,ppc4xx,pxa,sa1100平台上,支持的开发板更多
。其他的如支持哪些monitor命令,支持哪些文件系统等等,参看README
4. U-boot移植
说说主要的移植步骤:
1) 确定移植环境,也就是在Win(Cygwin)下,还是在Linux下,强烈建议在Linux进行
移植,在Win(Cygwin)下编译问题很多,非常耽误时间,对此深有体会。
2) 下载Tool Chain,安装,linux下移植到ARM平台,用arm-linux-xx(xx:gcc,objcop
y,as,ld等等)。
3) 下载U-boot,解压缩,看README,相当重要!!!了解一下目录结构。
4) 在board目录和cpu目录下找与你要移植的目标板最相近的,仔细研究。
5) 然后参照README中Building the Software部分进行移植,具体的就不写了
6) 编译完毕之后,就要通过Flash烧录工具讲uboot.bin烧录到板子上。在HOST上运行
超级终端,给板子上电,看看超级终端是否有uboot运行情况。然后重复这个过程进行调
试。
7) 记住首先把RAM初始化,UART的驱动改好超级终端上就应该有动静了。
8) 下面这段程序叫你如何入手,刚从README上看到的 Smile
int main (int argc, char *argv[])
{
sighandler_t no_more_time;
signal (SIGALRM, no_more_time);
alarm (PROJECT_DEADLINE - toSec (3 * WEEK));
if (available_money > available_manpower) {
pay consultant to port U-Boot;
return 0;
}
Download latest U-Boot source;
Subscribe to u-boot-users mailing list;
if (clueless) {
email ("Hi, I am new to U-Boot, how do I get started?");
}
while (learning) {
Read the README file in the top level directory;
Read http://www.denx.de/re/DPLG.html
Read the source, Luke;
}
if (available_money > toLocalCurrency ($2500)) {
Buy a BDI2000;
} else {
Add a lot of aggravation and time;
}
Create your own board support subdirectory;
Create your own board config file;
while (!running) {
do {
Add / modify source code;
} until (compiles);
Debug;
if (clueless)
email ("Hi, I am having problems...");
}
Send patch file to Wolfgang;
return 0;
}
void no_more_time (int sig)
{
hire_a_guru();
5. 结语、感想

在移植之前,首先要知道怎么可以得到Help,之前我我进行移植时,就不知道有个
uboot的maillist,一直在摸索、对照过程中进行的。

移植、调试过程是相当琐碎的,很多细节问题也不是三言两语能说清楚的。不过移
植成功一次,在做类似的工作就很顺手了。一定要坚持,特别是面对很多你不熟悉的东
西而感到挫败时,坚持。
bootloader和uboot详细分析 是我从别的网站上下的,感觉对bootloader和uboot的讲解很详细,而且还能帮助移植,很有用的文档,和大家一起分享 立即下载

相关推荐

bootloader-U-Boot详细移植过程

摘要:嵌入式系统一般没有通用的bootloader,u-boot是功能强大的bootloader开发软件,但相对也比较复杂。文中对u-boot的启动流程作了介绍,详细给出了u-boot在S3C44B0开发板上的移植方法和步骤。

嵌入式资源网站

嵌入式资源网站一 、MailList1.MailList大全网址:http://news.gmane.org/描述:可以查到绝大部分开源项目的Maillist记录,如bluez、uboot等。碰到问题可以在里面搜索一下,相当方便。二、技术论坛 1.ChinaUnix技术社区 网址:http://bbs.chinaunix.net/index.php 描述:国内比较知名的Linux/Unix

dzry2009的专栏 725

k2p官改固件合集(多个固件自行选择,含教程)

为保证完整性,固件采用rar格式提供,下载后请解压为bin文件后再刷入。 版本号命名规则:k2p_57_vxx.bin。 xx为版本号,如k2p_57_v10.bin表示v1.0版本 如果后面有d字母,则表示测试版本,比如k2p_57_v10d.bin表示v1.0的测试版本 vxx后跟数字表示补丁版本,如k2p_57_v11_1.bin表示V1.1的第一个补丁版本 如果后面有breed或opboot字样,则表示此固件自带breed或opboot 固件安装: 1、官改固件可以用WEB手动升级(1.1之后)或在线升级(1.3之后),详情参见【使用说明】 2、可以在opboot或breed中直接刷入 3、官方 V22.5.7.85版本可以在WEB“手动升级”页面直接刷入 4、如果你当前固件是K2P官方固件(22.5.13.27-V22.7.8.2以前版本),请从官方BootLoade刷入 5、如果你当前固件是K2P官方新固件(V22.7.8.2版本及之后),请先用【工具】开启telnet      然后使路由器处于联网状态,用windows telnet登录k2p,执行:     1.wget http://iytc.net/tools/k2p.sh -O /tmp/k2p.sh 2.chmod 755 /tmp/k2p.sh 3./tmp/k2p.sh 复制代码 注意:上面是三行命令,不要点“复制代码”链接,会变成一行命令导致执行出错!最后一行需回车执行! 执行后,路由器会下载固件并自动刷写,两分钟之后自动复位重启,脚本里自带md5校验,不用担心刷错,命令执行结果应该如下图所示:

uboot和BootLoader的区别和联系

1、bootLoader介绍 bootLoader是嵌入式设备中用来引导内核启动的一段代码。内核启动是需要一定条件的,当设备上电后会首先运行BootLoader,BootLoader会初始化必要的硬件,比如DDR、Flash、串口等,相关初始化完成后就会去启动内核。我的理解,BootLoader是一个概念并不是具体的代码,只要满足在设备启动初期启动内核功能的代码都可以叫做BootLoader。 2、uboot介绍 uboot(universal boot)是通用的启动代码,支持多种架构的CPU,并且是

weixin_42031299的博客 4698

告别踩坑!S32K3xx芯片上RTD-SDK的DFLASH与FEE模块配置全流程(基于S32DS)

本文详细解析了在NXP S32K3xx系列MCU上配置RTD-SDK的DFLASH与FEE模块的全流程,基于S32DS开发环境。从Cache配置、Mem_43_InFls模块设置到MemAcc模块的三种调用模式,提供了实战代码示例和常见问题排查表,帮助开发者高效完成存储管理配置,避免常见错误。

weixin_42653691的博客 269

构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent

以qBittorrent为例,说明如何在TrueNAS SCALE上使用docker来安装应用。

luoqingyong的博客 7006

Bootloader概述和Uboot

u-boot(Universal Boot Loader)是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。遵循GPL条款。从FADSROM、8xxROM 、PPCBOOT、Armboot逐步发展演化而来;当前版本号:参考Makefile。

hhltaishuai的博客 1902

FairyGUI编辑器自定义菜单扩展插件

本文涉及到的软件有:FairyGUI,VSCode代码环境涉及到了:LuaVSCode插件:EmmyLua在编写FairyGUI编辑器菜单前,了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能实现的,插件中我使用的是lua环境模板。导入编辑器的LuaAPI,文件可以在FairyGUI-Editor源码的插件目录中找到。接下来将通过功能来说明对应的API作用。

Aili_Xiao的博客 4499

Bootloader和U-Boot的区别

本文主要探讨Bootloader和U-Boot的相关概念以及他们之间的区别。

Mr_Jaychong的博客 1646

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码)

本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。

root9的博客 497

Java后端开发实战:手把手教你用e签宝API搞定电子合同签署(附完整代码)

本文详细解析了Java后端开发中如何通过e签宝API实现电子合同签署的全流程,包括环境配置、核心架构设计、Token管理、签署流程实现及回调处理等关键环节。通过完整的代码示例和最佳实践,帮助开发者高效集成电子签名服务,提升企业数字化转型效率。

weixin_42662293的博客 530

路由器基本常识

一、路由里首先需要了解的是CPU、Flash和内存(RAM),他们分别类似对应电脑的CPU、硬盘和内存。 二、Flash中存储的内容大致可以分为三部分,分别是bootloader、固件和EEPROM。 三、bootloader:类似电脑中的BIOS功能,当路由开机启动时首先运行的就是bootloader,由它分配内存地址,并将固件加载到内存中运行,bootloader有很多种,uboot和breed都属于bootloader。 四、固件:类似于电脑的系统,和电脑系统一样,固件也分许多种,openwrt

refire 3358

萤石摄像头批量下载视频后FFmepg拼接

本文描述萤石摄像头,如何批量下载视频,然后把视频片段拼接为一个完整的视频,亲测有效。有问题,可以下面留言

烤鱼哥哥的博客 1202

Linux驱动开发移植三巨头——Uboot移植

uboot是一个bootloader,作用是启动Linux或其他系统。由于Linux是运行在DDR里面的,所以uboot本质上就是初始化DDR。

qq_46526760的博客 2033

软件可靠性设计

本文系统介绍了软件可靠性设计与建模的理论框架和实施方法。首先从可靠性定义、核心思想和与建模的关系等理论基础出发,重点阐述了模块化设计、冗余容错、异常处理等六类可靠性设计方法及其技术栈。文章详细分析了可靠性设计在软件生命周期各阶段的应用,并深入探讨了设计与建模的深度结合机制,包括参数影响、验证方法和量化指标。最后提出了覆盖设计、开发、测试和运行四个阶段的落地策略,形成完整的"设计-建模-运行"流程体系。全文强调通过预防性设计和量化建模相结合的方法提升软件系统的可靠性和稳定性。

moton2017的博客 896

SAP 关于替代料物料混用问题处理方案简介

电子料很多都是需要进行替代的,并且需要考虑当A物料库存不足时,需要考虑B物料的库存来满足需求,当需求不满足的时候也需要考虑物料的价格因素,同时考虑价格低的物料进行采购。3、还遇到过比较奇葩的处理替代料的解决方案就是将SAP系统中的需求数据用接口的方式全部传输到外围系统,同时还将所有物料的库存信息都通过接口的方式传输到外围系统中,然后通过外围系统进行替代料逻辑的处理,然后在回写回SAP更改BOM中的优先级,然后在重新下单,貌似解决了替代料的问题,但是好像又没有解决。时间:2024-01-27。

我小时候很黑的博客 2352

BootLoader 介绍 与 uboot 简介

1 BootLoader 的介绍 1.1 BootLoader 的概念 BootLoader 的引入 如果它 能将噪作系统内核复制到内存中运行,无论从本地〔比如Fh)还是从远端(比如通过网络), Bootloader就是这么一小段程序,它 能将噪作系统内核复制到内存中运行,无论从本地(比如 Flash)还是从远端(比如通过网络),它在系统上电时开始执行初始化硬件设备、准各好软件环境,最后调用操作系统内核。 可以增强 Bootloader 的功能,比如增加网络功能、从上通过串口或网络下载文件、 烧写文件、将F

weixin_46640184的博客 3511

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

uboot和bootloader的区别

uboot和bootloader的区别

吻等离子的博客 6489

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux系统Uboot的移植

我们在启动一个Linux系统时,就是按照以上的顺序来依次启动。系统先运行bootload。这段bootloader程序会初始化DDR等外设(虽然I.MUX6ULL的DDR初始化是由内核的内部bootroom完成的),然后将Linux kernel的程序拷贝到内存(DDR)中执行,然后启动内核。

m0_56806782的博客 1118

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

系统移植,GNU命令,Uboot移植

把程序地址转换为文件名和行号 做·调试2、ar建立,修改,提取归档文件3、Id:GNU链接器4、as主要用来编译GNU编译器gcc输出的汇编文件,产生的目标文件由链接器Id链接 类似于gcc -c5、objcopy/arm-linux-objcopy(文件格式转换)6、objdump显示一个或者更多目标文件的信息,主要用于反编译eg:sudo dmesg -c //记录日志./a.outsudo dmesg // 查看日至信息如下。

only_write_bug的博客 1395

Linux驱动开发:uboot移植流程

基于IMX6ULL的uboot快速移植流程教学,包含uboot启动流程的总结概述!

black_sneak的博客 7419

Uboot移植流程

linux-Bootloader(Uboot)移植流程 前言 最近在做ZigBee的温室大棚项目,将自己学习的过程和经验分享给大家。本文基于linux3.4.39内核版本,s5p6818开发板实现。 1、uboot启动简介 uboot启动的过程比较复杂,这里就只贴几张图片了,重点放在后面的uboot移植。。 补充:①Bootloader的两个阶段 ②内核传参:Bootloader启动完成后...

qq_41583666的博客 4536

uboot和bootloader有啥区别

uboot和bootloader都是嵌入式设备中用来启动操作系统内核的一段程序,但是:uboot是一种通用的、可移植的、支持多种处理器架构的bootloader,bootloader是一个泛指,可以有很多不同的实现,例如Redboot、ARMboot、Blob等。uboot是bootloader的一个子集,也就是说uboot是一种特定的bootloader。uboot的核心作用就是启动操作系统内核,uboot的本质就是一段裸机程序。uboot的执行模式有两种,一种是自启动模式,另一种是交互模式。

usstmiracle的博客 2159

嵌入式linux移植篇之Uboot

芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动Linux 内核。当然了,bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核。其相当于windows中的BIOS。U-Boot、vivi、RedBoot 等等,这些都是常见的bootloader程序。

飞天鱼 982

Bootloader介绍和Uboot源码结构

本文是对《嵌入式Linux应用开发完全手册》的一个自我总结! 一. Bootloader介绍 1.Bootload引入的原因 Bootloader的作用是在系统启动的时候初始化必要的硬件设备,引导内核镜像文件,传递参数给内核,然后将控制权交给内核以结束自己的使命。总的来说就是为了引导操作系统。 Bootloader非常依赖具体的硬件,对每一个板子都有一个独一无二的Bootloa

u010919352的博客 7179

(二)uboot移植--从零开始自制linux掌上电脑(F1C200S)<嵌入式项目>

bootloader主要的工作就是启动 Linux 内核,bootloader和 Linux内核的关系就跟PC上的BIOS和 Windows的关系一样,bootloader就相当于BIOS。常见的bootloader有 U-Boot、vivi、RedBoot 等等。本文使用uboot作为系统的bootloader,它的全称是,意为"通用引导加载程序"。uboot是一种裸机程序,可以视为是一个汇集了多种裸机功能的综合示例。目前的uboot已经支持液晶显示屏、网络连接、USB等高级功能。uboot官方。

kashine的博客 8095
上一篇: UNIX/LINUX 平台可执行文件格式分析(转)
下一篇: ArmLinux BOOTLOADER全程详解(基于三星2410)
ryman
博客等级 码龄22年 77粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值