uImage与zImage的区别

linux内核Image/zImage/uImage的编译过程(十四) 一. 基础知识 1. Image uImage与zImage的区别 linux内核经过编译后会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具去制作成烧录镜像格式,经过制作加工后的烧录镜像文件就叫Image。原则上Image就可以直接被烧录到Flash上进行启动执行(类似于u-boot.bin),但是实际上并不是这么简单。linux的大佬们觉得Im 阅读详情
内核编译( make )之后会生成两个文件,一个 Image ,一个 zImage ,其中 Image 为内核映像文件,而 zImage 为内核的一种映像压缩文件, Image 大约为 4M ,而 zImage 不到 2M 。

        那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。

        如何生成uImage文件?首先在uboot的/tools目录下寻找mkimage文件,把其copy到系统/usr/local/bin目录下,这样就完成制作工具。然后在内核目录下运行makeuImage,如果成功,便可以在arch/arm/boot/目录下发现uImage文件,其大小比zImage多64个字节。

其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动去搞那些参数。

U-boot的U是“通用”的意思。

zImage是ARMLinux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置,这个以后我会介绍。


几种linux内核文件的区别:

1、vmlinux编译出来的最原始的内核文件,未压缩。

2、zImage是vmlinux经过gzip压缩后的文件。

3、bzImagebz表示“bigzImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。

4、uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。

5、vmlinuz是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。

6、initrd是“initialramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态


一般情况下都在生成vmlinux后,再对内核进行压缩成为zImage,压缩的目录是

kernel/arch/arm/boot。

下载到flash中的是压缩后的zImage文件,zImage是由压缩后的vmlinux和解压缩程序组成,如下图所示:


查看2410的datasheet,发现内存映射的基址是0x30000000 ,那么0x30008000又是如何来的呢?

在内核文档kernel/Document/arm/Booting文件中有:

Calling the kernel image

Existingboot loaders: MANDATORY
New boot loaders: MANDATORY
There aretwo options for calling the kernel zImage. If the zImage is stored inflash, and is linked correctly to be run
from flash, then it islegal for the boot loader to call the zImage in flash directly.
ThezImage may also be placed in system RAM (at any location) and calledthere. Note that the kernel uses 16K of
RAM below the image tostore page tables. The recommended placement is 32KiB into RAM.
看来在image下面用了32K(0x8000)的空间存放内核页表,

0x30008000就是2410的内核在RAM中的启动地址,这个地址就是这


          通常情况下,将U-BOOT  内核及文件系统都通过TFTP下载到SDRAM中,然后再烧写到NAND FLASH中,因为SDRAM是掉电易失的。下载地址通过数据手册查询SDRAM的起始地址,然后固化。SDRAM类似于内存,NAND FLASH相当于硬盘。烧写固化后设置U-BOOT从NAND FLASH中启动。

转载地址:http://blog.youkuaiyun.com/ilyfeng1314/article/details/7026766

uImage和zImage的区别 1. 各种文件的意义 vmlinux 编译出来的最原始的内核文件,未压缩。 zImage 是vmlinux经过gzip压缩后的文件。 bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。 uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x 阅读详情

相关推荐

Linux内核镜像文件(bzImage)

bzImage是一个编译后生成的Linux内核镜像文件,可用于配合BusyBox制作嵌入式Linux根文件系统。

uImage的制作过程详解

3、uImage和zImage的比较

weixin_42031299的博客 2973

我用 AI 做了个开源地图工具:从 OpenStreetMap 一键获取全国 AOI/POI 数据

本文介绍了一款免费开源的OSM数据查询与可视化工具,旨在解决Overpass QL语法晦涩、数据获取门槛高的问题。工具支持面数据(AOI)、点数据(POI)及路网三种查询模式,内置30+常用模板实现一键检索。具备高德与OSM双底图切换、坐标自动转换功能,支持GeoJSON、SHP、CSV多格式导出,同时保留自定义查询能力。作为纯HTML单文件应用,可零成本部署至GitHub Pages在线使用。该工具有效降低了地理数据获取难度,是替代商业地图API、高效提取全球开源地理信息的实用利器。

weixin_45812624的博客 585

Image 图片:基本使用

基本使用,参考API <template> <view class="index"> <u-image width="700rpx" height="300rpx" :src="src"></u-image> </view> </template> <script> export default { data() { return { src: 'https://cdn.uviewui.co.

sunluyi的博客 2472

从OVITO可视化到LAMMPS计算:ATOMSK堆垛层错模型的全流程避坑指南

本文提供了一份从ATOMSK建模、OVITO可视化诊断到LAMMPS计算的堆垛层错模型全流程实战指南。重点解析了构建“计算友好”模型的核心矛盾,并详细演示了如何通过添加真空层、原子包裹和能量最小化等关键步骤,规避周期性边界条件带来的非物理相互作用,确保广义层错能计算的可靠性与可复现性。

v4w5x6的博客 266

Halcon实战:5分钟搞定灰度图转热力图(附完整代码)

本文提供了一份Halcon实战指南,详细讲解如何在5分钟内将灰度图转换为直观的热力图。通过核心代码演示了利用HSV颜色模型进行色彩映射的原理与步骤,包括图像归一化、通道构建与空间转换,并附赠了深度图可视化等进阶应用技巧,帮助工程师快速提升图像分析效果。

weixin_29240343的博客 282

uImage 和 zImage区别

make Image uImage与zImage的区别 内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大

JGbooks的博客 750

【STM32 Blue Pill编程】-STM32CubeIDE开发环境搭建与点亮LED

本文为使用 STM32Cube IDE 的 STM32 Blue Pill 入门教程。 在本文中,我们将介绍如何控制 STM32 Blue Pill 的 GPIO 引脚。以及开发环境搭建。 本系列文章将重点介绍采用 ARM Cortex-M 的 BluepellSTM32F103C8 微控制器以及如何使用 STM32CubeIDE 对其进行编程。 STM32CubeIDE是STM32官网提供的IDE

视觉与物联智能 1067

zImage和uImage的区别联系

linux内核经过编译后会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具去制作成烧录镜像格式,经过制作加工成烧录镜像的文件就叫Image(这个制作烧录镜像主要目的就是缩减大小,节省磁盘)。

积跬步,以致远 1万+

Allegro如何导出和导入器件模型Signal_Model操作指导

在用Allegro做PCB设计的时候,通常需要给器件加上Signal_Model,在做等长的时候用到的非常频繁。如下图,需要把R7002的Signal_Model导入到另外一块没有给R7002加好模型的BRD中。Allegro除了可以给器件添加模型,还支持从一块加好模型的BRD导入到另外一块BRD中,如何导出和导入器件模型Signal_Model操作指导。

weixin_54787054的博客 1896

【软考高级架构】论文范文17——论软件系统架构评估及其应用(ATAM)

软件系统架构评估是保障系统质量属性满足业务目标的关键环节,架构权衡分析方法(Architecture Trade-off Analysis Method,ATAM)作为一种主流的架构评估方法,通过场景识别、敏感点与权衡点分析、风险与非风险决策识别等系统化活动,能够在架构设计早期发现潜在问题,降低后期修改成本。本文以笔者主导的某省级智慧医疗平台架构评估项目为案例,围绕ATAM方法的应用展开论述。笔者担任系统架构师,负责组织评估团队、引导场景捕获、分析架构决策、识别风险与权衡点。

qq837993702的博客 490

zImage和uImage的区别

zImage和uImage的区别

uffgfbft的博客 170

【Coppeliasim|轨迹规划(三)】机械臂逆解

文章目录一些设置导航点设置添加连接用于碰撞的设置代码实现终端输出 一些设置 导航点设置 关于如何添加设置 dummy 的细节建议参考官方手册,这里不再赘述。 添加连接用于碰撞的设置 按照序号点击(一个是机械臂,一个是所有的物体除了机械臂): 代码实现 getMatrixShiftedAlongZ=function(matrix,localZShift) local m={} for i=1,12,1 do m[i]=matrix[i] end

【人工智障 | 计算鸡视觉 | 机器孩】 1万+

vmlinux、 Image, zImage、 uImage 的区别

来自正点原子《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》 vmlinux 是 ELF 格式的文件,但是在实际中我们不会使用 vmlinux,而是使用 zImage 或 uImage 这样的 Linux 内核镜像文件。那么vmlinux、 zImage、 uImage 他们之间有什么区别呢? ①、 vmlinux 是编译出来的最原始的内核文件,是未压缩的,比如正点原子提供的 Linux 源码编译出来的 vmlinux 差不多有 16MB ②、 Image 是 Linux 内核

qlexcel的专栏 1835

手把手教你学simulink(69.3)--毫米波5G/6G 系统场景实例设计并实现基于Simulink的毫米波多用户MIMO通信系统模型

毫米波频段(30 GHz到300 GHz)因其高带宽和高速率特性,成为5G和未来6G通信系统的理想选择。然而,毫米波信号的传播特性较差,容易受到大气吸收、雨衰、建筑物遮挡等因素的影响。为了克服这些挑战并提高通信容量,多用户MIMO(MU-MIMO, Multi-User Multiple-Input Multiple-Output)技术被广泛应用。多用户MIMO技术通过在基站和多个用户之间同时传输多个数据流,充分利用空间资源,从而显著提升系统容量和频谱效率。

MHD0815的博客 493

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

uimage和zimage的区别

<br />    zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置。

wuyun2009的专栏 698

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

kernel编译生成Image zImage uImage的区别

内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内 核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。     那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区

做一个有技术追求的人 2万+

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

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

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

zImage与uImage的区别

在编译Linux内核时,通常都是生成zImage, 它是一般情况下默认的压缩内核映像文件。 而实际上,zImage是通过压缩内核文件vmlinux后,再加上一段解压启动代码得到。 而uImage是u-boot使用bootm命令引导的Linux压缩内核映像文件格式, 是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。 它是uboot专用的映像文件,它是在zI

不积跬步,无以至千里 1638
上一篇: LTIB详解(六)部署文件
下一篇: 全面解析PowerPC架构下的扁平设备树FDT
若水心境
博客等级 码龄19年 103粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值