eMMC是什么东西?Buildroot中生成的emmc.img 和 zImage两个文件有何区别?

hisi3520dv400,hitool工具或tftp工具镜像烧录方法,nandflash,norflash,emmc烧镜像命令和启动配置 我的板卡,是按hisi的推荐,设计的启动方式,接的是spi接口的norflash,作为启动介质(不需要初始化),nand(需要初始化)作为烧录镜像文件(uboot,kernel,fs),以及存储文件的硬盘。第一次烧录时,只能选串口烧录,烧录很慢,先只勾选uboot,按下面填好fastboot,kernel,fs,的地址,大小,点击烧录,重新断电上电,烧录成功。网络不行的话,选择串口也行,只是慢,十几分,选择串口的时候,我老是失败,后面一个一个烧,不是三个一起烧录,后面多试几次,就成功了。 阅读详情

eMMC是什么东西?

eMMC(embedded MultiMediaCard,嵌入式多媒体卡)是一种嵌入式存储设备,广泛应用于嵌入式系统中,特别是消费电子产品,如智能手机、平板电脑、单板计算机和其他嵌入式设备。它将NAND 闪存芯片和一个 闪存管理控制器集成在一个小型封装中,为系统提供非易失性存储。


eMMC 的组成和工作原理

  1. NAND 闪存芯片:

  2. 控制器:

    • 内部的控制器负责管理 NAND 闪存,包括坏块管理(Bad Block Management)、磨损均衡(Wear Leveling)、垃圾回收(Garbage Collection)和错误校正(ECC)。
    • 控制器对外提供标准的接口(如 eMMC 规范接口),使得主机系统无需直接操作 NAND 闪存。
  3. 接口:

    • eMMC 使用标准的 MMC 协议(MultiMediaCard),通过标准接口与主机通信,支持高速数据传输。

eMMC 的特点

  • 易用性:
    eMMC 的控制器隐藏了 NAND 闪存复杂的管理逻辑,对主机呈现为一个简单的块设备(类似 SD 卡或硬盘)。

  • 性能稳定:
    由于控制器管理磨损均衡和错误校正等工作,eMMC 的性能和寿命相对稳定。

  • 小型化:
    eMMC 集成度高,占用空间小,特别适合嵌入式设备和移动设备。

  • 性价比高:
    与其他存储解决方案(如 SSD)相比,eMMC 更经济实惠,特别适合中低端设备。

  • 容量范围:
    一般从 4GB 到 512GB 不等,适合存储需求较低的嵌入式场景。


eMMC 的用途

eMMC 主要应用于以下领域:

  1. 消费电子:
    • 智能手机、平板电脑、智能手表等。
  2. 嵌入式系统:
    • 单板计算机(如树莓派)、开发板(如 iMX6ULL)。
  3. 汽车电子:
    • 用于存储导航数据、娱乐系统内容和固件。
  4. 工业设备:
    • 工控机、医疗设备等嵌入式应用。

eMMC 的优势和局限性

优势:

  1. 即插即用:
    eMMC 的控制器对主机隐藏了底层操作,主机只需当作一个普通块设备来使用。
  2. 高可靠性:
    内置的坏块管理和错误校正机制增强了数据可靠性。
  3. 成本低:
    与 SSD 或 NVMe 相比,eMMC 性价比更高。
  4. 功耗低:
    适合电池供电的移动设备。

局限性:

  1. 性能有限:
    eMMC 的性能不如 SSD 或 NVMe,特别是在高端存储场景中。
  2. 不可更换:
    eMMC 通常直接焊接在电路板上,损坏后无法简单更换。
  3. 容量限制:
    相较于 SSD 的容量范围,eMMC 的最大容量有限(目前多为 64GB 到 256GB 范围)。
  4. 寿命受限:
    使用 NAND 闪存,其写入寿命有限。

eMMC 与其他存储技术的比较

特性eMMCSSDSD 卡
接口MMC 协议SATA/PCIe/NVMeSD 协议
性能中等高速低到中等
容量4GB ~ 512GB128GB ~ 数 TB4GB ~ 512GB
封装方式焊接在电路板上独立硬盘可插拔
用途嵌入式设备高性能存储设备移动设备和嵌入式应用
成本较低较高中等

总结

eMMC 是一种针对嵌入式设备设计的高集成度存储方案,它以经济实惠、小型化和易用性著称。它非常适合需要中等性能和可靠性的场景,但在高性能和大容量需求上可能不如 SSD 等其他存储解决方案。

emmc.img 和 zImage两个文件有何区别

在Buildroot中,下面的命令:

cd /home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x 
make clean 
make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig 
make all -j4

执行完成后,在目录 /Buildroot_2020.02.x/output/Images 有下面两个文件的生成:
emmc.img和zImage
请问这两个文件有何区别?

在 Buildroot 中生成的 emmc.img 和 zImage 是两种不同类型的文件,它们的用途和内容完全不同,分别对应系统启动流程的不同部分。


1. zImage

定义:

  • zImage 是 Linux 内核的压缩镜像文件。
  • 它是内核源码编译后的产物,包含了启动操作系统所需的核心功能,比如硬件驱动、任务调度、内存管理等。

特点:

  • zImage 是一种压缩格式,它会在加载时自解压缩到内存中运行。
  • 比较小巧,适合嵌入式设备的存储需求。

用途:

  • 由引导加载程序(如 U-Boot)加载到内存,并引导系统运行。
  • 是启动 Linux 操作系统的关键文件。

如何使用:

  • 通常由引导加载程序配置来加载这个文件。例如,在 U-Boot 中,可以通过类似以下命令加载 zImage:
    bootm <kernel_addr>
    
    这里 <kernel_addr> 是 zImage 文件在内存中的地址。

2. emmc.img

定义:

  • emmc.img 是一个完整的存储镜像文件,通常包含引导加载程序、内核镜像、设备树文件和根文件系统等。
  • 这是用来写入目标设备存储器(如 eMMC、SD 卡或 NAND Flash)的文件,表示整个嵌入式 Linux 系统的布局。

特点:

  • 这是一个多合一的系统镜像文件。
  • 根据系统分区,可能包含以下内容:
    1. 引导加载程序(如 U-Boot);
    2. 内核镜像(如 zImage 或 uImage);
    3. 设备树文件(如 imx6ull.dtb);
    4. 根文件系统(如 ext4 或 cpio 格式)。

用途:

  • 用于烧录到嵌入式设备的存储器中。
  • 包含整个系统启动所需的所有部分,方便设备上电后直接运行。

如何使用:

  • 通常使用烧录工具(如 dd 命令、专用烧录器或开发板厂商提供的工具)将该镜像文件写入设备存储。
    sudo dd if=emmc.img of=/dev/sdX bs=4M
    
    其中 /dev/sdX 是目标存储设备。

3. 两者的区别

特性zImageemmc.img
内容仅包含 Linux 内核包含整个系统的所有部分
用途用于引导加载程序加载并启动内核用于烧录到设备,提供完整系统
大小较小,只有内核代码和数据较大,包含内核、文件系统等完整内容
加载方式加载到内存,由引导加载程序启动写入设备存储,启动时由 ROM 加载
依赖关系需要引导加载程序的支持自带引导加载程序,独立使用

4. 总结

  • zImage 是系统启动过程中不可或缺的内核文件,由引导加载程序加载并运行。
  • emmc.img 是一个包含完整系统(引导加载程序、内核、文件系统等)的镜像文件,用于烧录到目标存储设备中。

在典型的嵌入式开发流程中,emmc.img 是你烧录到设备存储中的文件,而 zImage 是引导加载程序用来启动 Linux 内核的文件。这两者共同作用,构成了嵌入式设备从上电到运行 Linux 系统的完整流程。

嵌入式Linux系统构建指南:Buildroot核心原理与实战优化 在嵌入式系统开发中,构建一个精简、可控的Linux系统是核心需求。其关键在于理解系统构建的底层原理:通过交叉编译工具链,将Linux内核、Bootloader和根文件系统(Rootfs)集成,生成可直接烧录的定制化镜像。这种构建时(Build-time)定制的技术方案,相比运行时管理的发行版(如Ubuntu),能实现极致的系统一致性、安全性和小巧体积,尤其适合资源受限、功能固定的量产设备,如IoT传感器和工业控制器。本文聚焦于Buildroot这一自动化构建框架,它通过Makefile和Kconfig驱动, 阅读详情

相关推荐

rk3128 通过自带buildroot打包开发板根文件系统,重做自己的img镜像

对rk3128要生成自己的qt镜像文件 据说这样才方便大批量的烧录 打包分析 根据九鼎里面带有的编译脚本,把自定义的uboot,kernel,rootfs进行替换,用他的脚本就能打包了 他自己也是这样做的,我们只要qt,就把庞大的andriod去掉 因为kernel 和 uboot 已经做好了,那么自定义的就是 rootfs文件系统 找到roofs文件系统所在 编译roofs 根据下面的判断,把解压之前的文件进行修改就行了 那么出来的文件就是这个 重新做自己的rootfs镜像 准备 博主在桌面建立了

weixin_43898067的博客 2255

玩客云内置EMMC存储刷入Armbian

玩客云内置EMMC存储刷入Armbian

日常爱喝茶,闲时聊科技 4万+

Yocto:NXP s32g emmc镜像生成过程分析

nxp s32g平台生成emmc和sdcard烧录镜像

3046

嵌入式Linux之RK3399:内核buildroot的emmc-img编译原理(一)

一、脚本分析 在sdk的根目录下有自动化脚本build.sh,build.sh里面定义了emmc-img的功能函数。 function build_emmcimg() { local IMG= local ROOTFS= #如果OSNAME未定义,则定义为buildroot if [ -z ${OS_NAME} ]; then OS_NAME=buildro...

wws的博客 2597

Buildroot根文件系统之psplash加载logo和进度条

Buildroot根文件系统之psplash加载logo和进度条。

seekerzjy的博客 1624

buildroot进行个性化rootfs.img

在buildroot/package目录下建立helloworld,并在该目录下建立Config.in 和 helloworld.mk 两个文件。在external 下创建helloworld文件夹,并在该文件夹下创建.c源码工程文件和Makefile文件。helloworld.mk里的宏,除了BR2开头的,其余宏都要以HELLOWORLD_ 开头。编译完成并进行挂载后可以看到home下有app/app.txt 目录结构。在package/下找到Config.in文件,在最后添加自己的软件。

weixin_44929464的博客 718

IMX6ULL移植篇-EMMC与文件读写命令

EMMC与文件读写命令

wojiaxiaohuang2014的博客 1668

树莓派CM3+系统镜像img文件的制作

树莓派的raspberry computer module cm3+自带emmc和ddr。在项目开发好了之后,再再次制作镜像的话,一般是采用网上通用的方法,使用磁盘工具映像工具将emmc中的数据读出来做成img镜像 然后再下载到新的CM板子上面。但是这会有一个问题,比如说如果是emmc 16G的话,不管是读取制作img镜像文件还是将制作好的镜像文件烧写到新的CM板子上,都会需要很长的时间,以16G的emmc为例,不管是烧写还是制作镜像所消耗的时间都在40多分钟以上。所以如果想缩短镜像的制作和烧写时间,必须

仗劍走天涯 1665

RISC-V嵌入式NAS开发踩坑记:从启动链路到异步运行时

嵌入式Linux开发中,系统启动链路和运行时设计是决定稳定性的关键。从固件引导到操作系统调度,每个环节的微小配置失误都可能导致设备无法工作。设备树作为硬件描述规范,将硬件资源与内核驱动解耦,但其错误配置常引发隐蔽故障。同时,异步运行时通过事件循环与线程池优化IO处理,在资源受限环境下显著提升系统吞吐。这些技术广泛应用于网络存储、边缘计算等场景。当需要构建专有NAS系统时,基于RISC-V架构从零搭建可大幅精简资源占用,但需要深入理解OpenSBI、U-Boot、内核裁剪及C++异步编程的协同。本文基于实际项

weixin_34115824的博客 344

黑猫带你学eMMC协议第30篇:eMMC的boot mode和boot operation详解

boot operation是干嘛的?boot operation期间,将boot区域的数据全部吐出来。如果emmc用在手机里面,吐出来的这些数据用于启动手机,也就是说boot区域已经提前放置了安卓系统等信息。boot operation也可以从uda吐数据,但是emmc的init过程很长,所以放在boot area就可以很快速将这些数据给出来。这也就是为什么手机电源键一按,屏幕等设备就会快速工作起来。流程框图如图所示,按照蓝紫色箭头标注出来的流程就是boot operation的流程。

黑猫奥利奥的博客 2398

05 - 固件烧写方法与工具链

本文详解RK3506开发板固件烧写全流程,涵盖四种启动方式(USB、SD卡、TFTP、串口)的适用场景与操作原理。重点对比rkdeveloptool与upgrade_tool工具差异,解析parameter.txt分区表格式及偏移计算方法,并实操指导SD卡与TFTP网络启动配置。强调“USB烧写覆盖存储,其他方式保留原有系统”的核心区别,助力开发者高效完成从编译到上板的完整流程。

内核笔记 202

Linux第61步_“buildroot”构建根文件系统第3步_烧写根文件系统到EMMC中_并完善开发板配置

学习Linux第61步,就是烧写根文件系统到EMMC中,并完善开发板配置,至此根文件系统学习完了,后面要学习linux驱动开发。

weixin_42550185的博客 1794

arm-linux emmc镜像备份 和 rootfs镜像备份

lubuncat RK3588S

荒野 819

做一个img镜像,先把这个镜像设置分区表,然后把这个镜像挂载之后写入自己的文件,再读取img镜像中的文件

第一部分的内容是用dd创建一个64M的空镜像emmc.img,并用parted给emmc.img设置分区表并创建两个分区,然后用kpartx挂载分区,将自己需要写入emmc.img的内容拷贝到两个分区里。用./read_img.sh执行脚本,脚本执行到把emmc.img挂载完后会暂停等待用户输入任意字符,这时可以查看./emmc_part1和./emmc_part2两个文件夹里的内容,查看完了之后让脚本继续完成清理步骤。首先,我们需要创建一个空的镜像文件。使用 parted 创建分区表和分区。

weixin_43145989的博客 1349

Mstar晨星RT809H备份提取所有分区工具,能从晨星和MTK的RT809H备份出来的文件里提取出来所有分区img文件,方便制作刷机包

Mstar晨星RT809H备份提取所有分区工具,能从晨星和MTK的RT809H备份出来的文件里提取出来所有分区img文件,方便制作刷机包。

STM32G4实战:用CubeMX+Keil五分钟搞定FreeRTOS多任务LED控制(避坑指南)

本文详细介绍了如何在STM32G4系列芯片上使用CubeMX和Keil快速配置FreeRTOS实现多任务LED控制,包括环境准备、时钟配置、任务创建及常见问题解决方案。重点解决了时钟源冲突等高频问题,并提供了优化建议和进阶应用示例,帮助开发者高效完成嵌入式开发任务。

joy55的博客 214

制作imx6ull Linux系统的img镜像

制作imx6ull Linux系统的img镜像 参考链接:https://blog.csdn.net/qingtian11112/article/details/99825257 相信玩过树莓派或者香橙派的人都知道,我们利用SD卡启动Linux系统的时候,是将官网提供的img镜像通过Win32 Disk Imager软件将img镜像烧写到SD卡,然后启动系统的。imx6ull我们常用的就是通过USB刷机,也就是通过mfgtools工具将uboot kernel dtb rootfs这些文件烧写到emmc n

mzy2364的博客 3323

贝叶斯神经网络(Bayesian Neural Network)

最近在研究贝叶斯神经网络,一些概念一直搞不清楚,这里整理一下相关内容,方便以后查阅。

梁小憨憨的博客 3646

使用buildroot编译完整系统【IMX6ULLPRO】

100ask-imx6ull-pro- 512d-systemv-v1.img重命名为。机器性能不同,编译时间不同。性能差的电脑,有可能需要等待。配置文 件为例,在 ubuntu。目录里,就可以使用工具烧写到。编译成功后文件输出路径为。

weixin_49001476的博客 1296

三极管开关电路在脉冲应用中的性能瓶颈分析

深入探讨三极管开关电路在高频脉冲场景下的响应延迟与功耗问题,揭示其性能限制的关键因素。结合实际应用,分析开关速度与信号完整性之间的矛盾,为优化三极管开关电路设计提供实用参考。

weixin_42602368的博客 580

Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果

前言 TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果,例如:字体流光,外发光颜色扰动,字体贴图等等。那我们就需要去扩展TextMeshPRo的shader功能了。如下图所示 本文,我就带大家一起来扩展一下:如何扩展TextMeshProUGUI TextMesh原始面板 扩展功能后的面板 扩展TextMeshPro

TxNet 9661

Jetson Nano的U盘启动烧录镜像eMMC与安装依赖组件(Jetbotmini)

Jetson Nano板子的烧录过程

深度学习领域优质创作者,CSDN博客专家 6680

安卓15_ROM修改定制化_____修改rom的前提条件 去除各种验证 安卓设备通用

通过博文了解💝💝💝 1-------💝💝💝了解安卓设备的启动流程与核心验证机制 2-------💝💝💝了解安卓设备修改rom中的各种验证机制以及对应的去除方法 3-------💝💝💝了解avb验证与dm验证的本质区别与对应的操作方式 4-------💝💝💝修改rom前的循序步骤 避免验证机制导致的不开机

小马哥的专栏 499
上一篇: 为什么在编程中cast有强制类型转换的意思?“XXX without a cast”的警告该怎么处理?
下一篇: NAND Flash 和 NOR Flash的名字来历、实现原理、概要介绍和应用上的区别
昊虹AI笔记
博客等级 码龄11年 4439粉丝 981原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊虹AI笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值