linux-内核-BootLoader/Uboot/Flash/文件系统

本文介绍了嵌入式系统中的BootLoader,特别是BootLoader的启动过程和Uboot的功能及目录结构。讨论了Flash的类型如Norflash和Nandflash的差异,以及嵌入式系统中的文件系统,如ext2、vfat、jffs2等,并探讨了如何选择合适的文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BootLoader
一.什么是BootLoader
一个嵌入式系统从软件角度来看可以分为三个层次:
1.引导加载程序
包括固化在固件(firmware)中的boot程序(可选),和BootLoader两大部分
2.linux内核
特定于嵌入式平台的定制内核
3.文件系统
包括子系统命令和应用程序
bootloader是在操作系统运行之前运行的一小段程序,通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做准备。
二.为什么要做bootloader移植
每种不同的cpu体系结构都有不同的BootLoader,即使是基于同一cpu而构建的,但如果他们的硬件资源或配置不一致的话,要想在一块开发板上运行的bootloader程序也在另一块上运行,必须要修改。
三.BootLoader启动
BootLoader启动过程可以分为单阶段(single-stage)和多阶段(multi-stage)两种,大多采用2阶段
硬件设备初始化
为加载bootloader的stage2准备ram空间
拷贝bootloader的stage2到ram空间
设置好堆栈
跳转到stage2的c入口
stage2
初始化本阶段需要使用的硬件设备
将内核映像和根文件系统映像从flash上读到ram中
调用内核
ram——-随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。
Uboot
一.概述
Uboot可以用于多种嵌入式cpu(MIPS,X86,ARM,XSCAL…)的BootLoader程序
uboot不仅支持嵌入式linux系统的引导,还支持vxworks,qnx等多种嵌入式系统
二.uboot目录结构
board 和开发板相关的文件
common uboot支持的命令
cpu 与特定cpu架构相关的代码
disk 磁盘相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值