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

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析

本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。

weixin_30505225的博客 511

国内用户稳定开通ChatGPT Plus会员的完整实操指南

ChatGPT作为当前最先进的AI对话模型,其技术原理基于Transformer架构和大规模语言预训练。通过深度学习技术,ChatGPT能够理解自然语言并生成高质量回复,在代码生成、文档分析等场景具有重要技术价值。对于需要高频使用的开发者而言,ChatGPT Plus会员提供了优先访问权和GPT-4模型支持等核心功能。在实际应用场景中,国内用户常面临支付限制和区域封锁等挑战。本文针对这些痛点,重点解析如何通过可靠的支付渠道和账号安全策略,实现稳定的会员开通方案,帮助用户突破技术使用壁垒,充分发挥AI助手在开

weixin_29042035的博客 954

Bootloader概述和Uboot

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

hhltaishuai的博客 1902

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5826

Bootloader和U-Boot的区别

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

Mr_Jaychong的博客 1646

【编译原理】龙书第三章作业答案

【编译原理】龙书第三章作业答案 练习3.1.1:根据3.1.2节中的讨论,将下面的C++程序划分成正确的词素序列。哪些词素应该有相关联的词法值?应该具有什么值? 答案: 左列为词素,右列为值,划分如下: < float> 值为它本身 <id,limitedSquare> 值为*limitedSquare指针 <(> 标点符号无值 ...

作业报告杂物间 2万+

Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包

联网情况下在命令终端CMD中输入“pip install numpy”即可自动安装,pandas和matplotlib同理一样方法进行自动安装。 工作的电脑不能上外网,所以不能通过直接输入pip命令来安装。 环境:电脑上已经安装了Python(没有安装的请参考其他教程)。 Python离线断网情况下安装numpy、pandas和matplotlib等常用第三方包的步骤如下: ...

dayou7738的博客 4942

路由器基本常识

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

refire 3358

基于C#的跨平台上位机开发:一次编写,多平台运行

摘要: 本文探讨了如何利用C#进行跨平台上位机开发,以适配Windows、Linux、macOS等多平台需求。通过分析传统单平台开发的局限性(如API差异、硬件接口兼容性),提出基于.NET 5/6/7的解决方案,重点推荐Avalonia(类WPF的跨平台UI框架)和GtkSharp(基于GTK+)实现图形界面。同时,针对硬件通信需求,介绍了System.IO.Ports串口通信和LibUsbDotNet的跨平台支持,并强调多平台调试(VS Code、Docker)的重要性,最终实现一次编码、多端部署的高效

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1409

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

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

qq_46526760的博客 2033

Claude Code设置中文输出指南

Claude Code 的语言配置其实并不复杂,只要做好全局的默认设置,再加上一些小的提醒技巧,就能完全避免突然切换英文的问题,让你全程用中文流畅地和 AI 助手协作,不用再被语言问题打断工作节奏,真正提升开发效率。

篮球界最会写bug的人;程序猿中打球最菜的人。 2232

Agisoft Metashape 基于RTK技术的无人机航测免像控技术流程

利用无人机进行航空摄影测量,其使用方便、快速获得成果,已经是测绘行业外业生产的主要方式。RTK定位系统的出现,其厘米级的定位系统,使得航测无人机在作业时,能够准确获取拍照时的GPS位置,能够大量减少像控点,即使不使用像控点也能满足规范对精度的要求。可以有效解决特殊地形(如山川、峡谷、河流、沼泽、水库等)外业人员很难布设像控点的情况。

penglu366366的博客 2188

BootLoader 介绍 与 uboot 简介

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

weixin_46640184的博客 3511

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

uboot和bootloader的区别

uboot和bootloader的区别

吻等离子的博客 6489

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Linux系统Uboot的移植

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

m0_56806782的博客 1118

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

系统移植,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、付费专栏及课程。

余额充值