U-boot mkimage指定Linux内核地址时的两种方式

[Linux外设驱动详解]U-Boot mkimage 工具分析 U-Boot mkimage工具分析摘要 mkimage是U-Boot提供的镜像打包工具,主要作用是为裸机二进制文件添加标准化的头部信息。该工具支持Legacy和FIT两种格式,其中Legacy格式采用64字节固定头部结构,包含镜像魔数、CRC校验、加载地址、入口点等关键信息。在RK3588平台上,mkimage还实现了Rockchip V2格式的特殊启动头,适配芯片特定的启动流程。通过添加这些头部信息,mkimage确保了镜像能被Boot ROM正确识别和加载,同时提供完整性校验和多镜像支持能力。 阅读详情

uImage的制作是使用的u-boot工具mkimage,build完u-boot后也会将mkimage build出來到/tools目录下,可以直接拿來用,它的作用就是在zImage的前面加上64个字节的头,让u-boot能够识别要加载内核的类型、加载地址等。

基本格式:mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image

-A 指定CPU的体系结构:(u-boot支持多种的架构,这里应该是arm)
取值        表示的体系结构
alpha       Alpha
arm          A RM
x86          Intel x86
ia64         IA64
mips         MIPS
mips64     MIPS 64 Bit
ppc          PowerPC
s390        IBM S390
sh            SuperH
sparc       SPARC
sparc64   SPARC 64 Bit
m68k       MC68000


-O 指定操作系统类型,可以取以下值:(u-boot支持多种的OS,这里应该是linux)
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos


-T 指定映象类型,可以取以下值:(u-boot可以加载不同的映像,这里应该是kernel)
standalone、kernel、ramdisk、multi、firmware、script、filesystem


-C 指定映象压缩方式,可以取以下值:(除了zImage本身是压缩格式外,u-boot还可以对其再压缩,这里应该是none)
none 不压缩
gzip 用gzip的压缩方式
bzip2 用bzip2的压缩方式


-a 指定映象在内存中的加载地址,可以于实际加载(如tftp加载)时的地址不相同,也可以相同,详见后面的解释。


-e 指定映像运行的入口地址,可以等于加载地址,也可以是加载地址偏移64字节(+0x40)后的地址,详见后面的解释。


-n 指定映像名称


-d 指定【源文件】和生成的【目标文件名】


调整的最多的参数是-a, -e,这两个参数需要与实际加载到内存时的动作保持一致。


1、如果加载时的地址与-a参数指定的不相同,则-e必须等于-a。u-boot会把kernel image去掉不包括64字节的信息头后搬移到-e处,直接启动。要注意两个image的存储空间不要重叠,两者之间至少要留image size的空间。

编译环境:

mkimage -A arm -O linux -T kernel -C none -a 0x70008000 -e 0x70008000 -n 'Linux' -d zImage uImage
        cp uImage /tftpboot/       

目标板环境:

tftp   0x72200000  uImage;   bootm   0x72200000;


2、如果加载时的地址与-a参数指定相同,则-e必须是-a + 0x40的地址。这时u-boot不需要再执行搬移的动作,根据-e的地址直接启动。 

        编译环境:

        mkimage -A arm -O linux -T kernel -C none -a 0x0x70008000 -e 0x70008040 -n 'Linux‘ -d zImage uImage

        cp uImage /tftpboot/           

        目标板环境:

        tftp   0x70008000  uImage;    bootm  0x70008000;
UE4 GamePlay框架深度解析:从蓝图到C++构建多人游戏核心 在游戏开发与实时交互应用领域,一套清晰、可扩展的底层框架是项目成功的关键。GamePlay框架作为虚幻引擎(UE4/UE5)的核心架构,定义了游戏世界中对象交互、状态管理与网络同步的基本原理。它通过职责分离的设计模式,将游戏规则(GameMode)、全局状态(GameState)、玩家状态(PlayerState)、可操控实体(Pawn/Character)及其控制器(Controller)等核心类有机组织起来,确保了逻辑的清晰性与多人游戏数据的一致性。其技术价值在于为开发者提供了一套经过验证的最佳实践,大 阅读详情

相关推荐

IEC61850实战:从ICD文件解析到模型构建

本文深入解析IEC61850标准中的ICD文件结构,从Header、IED到DataTypeTemplates部分,详细介绍了如何构建电力自动化设备的数据模型。通过实战案例展示ICD文件的创建过程,并分享常见问题的调试技巧,帮助工程师快速掌握IEC61850建模方法,提升电力系统自动化项目的实施效率。

weixin_26841743的博客 496

mkimage使用与解包

在最初学习阶段,我们经常使用mkimage来制作uImage和ramdisk,实质是在被处理的文件前面加上64字节的头部。 mkimage 制作 uImage mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n linux-3.0 -d zImage uImage mkimage 制作 ramdisk.i...

漫不经心 1万+

从零理解域随机化:通过Isaac Lab的events.py掌握Sim-to-Real关键技术

本文深入解析域随机化技术如何通过Isaac Lab的events.py实现Sim-to-Real迁移,提升机器人策略在真实世界的鲁棒性。从刚体属性到环境条件的系统级随机化,详细介绍了工程实践中的关键参数配置与调试技巧,帮助开发者有效缩小仿真与现实的差距。

weixin_29062613的博客 260

arm64 linux 镜像 及 加载

文章目录镜像uImageImageFIT image镜像的加载uImage的加载Image的加载FIT image的加载 镜像 uImage uImage mkimage -n 'Kernel Image' -A arm64 -O linux -C none -T kernel -a 0x8000 -e 0x8000 -d Image uImage Image Image 内核编译生成 FIT image FIT image mkimage -f image.its image.itb 镜像的加

u011011827的博客 1528

VLM,VLA,VLN的区别与联系

VLM 提供了理解世界的“眼睛和大脑”,VLN 赋予了这个智能体在空间中“移动的双腿”,而 VLA 则进一步赋予了它“灵巧的双手”来改变世界。三者共同构成了一个完整具身智能体的核心能力模块。

l0409044222的博客 1311

保姆级教程:在RV1126开发板上跑通YOLOv5口罩检测(从数据集到摄像头实时识别)

本文提供了一份详细的RV1126开发板部署YOLOv5口罩检测系统的全流程指南,涵盖数据集准备、模型训练优化、边缘部署及实时摄像头识别等关键步骤。重点解析了RV1126开发板的性能特征、YOLOv5模型训练调优技巧、RKNN模型转换量化策略,以及部署过程中的性能优化方案,帮助开发者高效实现边缘端目标检测应用。

weixin_27310985的博客 108

根文件制作:ramdisk.image.gz和uramdisk.image.gz文件转换,修改文件系统内容

根文件系统制作:ramdisk.image.gz和uramdisk.image.gz文件转换,修改文件系统内容uramdisk.image.gz-> ramdisk.image.gz将文件uramdisk.image.gz拷贝至共享文件夹下;cd /mnt/hgfs/vmwaremkdir tmp_mntsudo dd if=./uramdisk.image.gz of=./ramdisk....

sinat_35706094的博客 3435

Grey Hack v0.7.3618 保姆级教程:手把手教你用metaxploit.so写一个自动提权脚本

本文详细介绍了如何在Grey Hack v0.7.3618中使用metaxploit.so库编写自动化提权脚本。从环境准备到核心功能解析,再到漏洞利用链构建和权限提升的智能处理,手把手教你掌握游戏中的高级黑客技巧。通过多库联合利用和错误处理优化,提升脚本的效率和成功率。

weixin_42537919的博客 394

zynq rootfs制作ramdisk及启动失败问题

1.使用rootfs压缩包制作ramdisk (1) 建立空文件 dd if=/dev/zero of=./ramdisk.Image bs=10M count=10 (2) 将普通文件与设备节点绑定 losetup /dev/loop0 ./ramdisk.image (3) 格式化/dev/loop0 mkfs.extt2 /dev/loop0 (4) 挂在/dev/loop0设...

flyzhao的专栏 4322

F460 CLK配置功能模块说明

F460CLK配置功能模块说明 目录 F460CLK配置功能模块说明 CLK配置: 1. DDL_ICG——初始化配置 2. DDL_UTILITY——基础功能函数 3.DDL_PRINT-待细化 4.DDL_ADC 5.DDL_AES——AES 加解密算法处理器 6.DDL_CAN 7. DDL_CLK 8. DDL_CMP——电压比较器 9. DDL_CRC 10. DDL_DCU——数据计算单元 11. DDL_DMAC——DMA 控制器 ...

childboy的博客 2457

学Simulink——基于直流电机的建模与控制场景实例:他励直流电机的起动与制动过程仿真

直流电机在工业控制、电动车辆、自动化设备中广泛应用。其中,他励直流电机(Separately Excited DC Motor)因其励磁绕组与电枢绕组分别供电,具有良好的调速性能和启动特性,常用于需要平稳启动和精确控制的场合。在实际应用中,电机的启动过程和制动过程对电网、机械系统以及电机本身都具有重要影响。因此,仿真分析他励直流电机的启动与制动特性,是电机控制设计的重要环节。本文将详细介绍如何使用构建一个他励直流电机的启动与制动过程仿真模型,并通过仿真分析其动态响应。本文详细介绍了如何使用构建一个。

xiaoheshang_123的博客 227

制作Linux映像和Kernel的启动

进入bootm命令分析之前,先来看看README里面的几段话,简单翻译之 制作Linux映像 ============ 使用uboot时,内核通常生成的文件"zImage"或"bzImage"是没用的。较新一些的内核原码会 生成"uImage", 这个可以为uboot使用。 "uImage"全用了一个工具"tools/mkimage"来封装压缩后的映像文件,在其头部添加一 些信

evenness的专栏 3320

华为OD机试真题 新系统 2026-05-13 Python&JS语言 实现【查找能被整除的最大整数】

给定一个字符串和一个正整数,字符串由大小写字母和数字组成,要求从字符串中找出最大且能被给定正整数整除的数。

MISAYAONE的博客 224

u-boot中mkimage工具的具体使用

通常,u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk在RAM中的地址。Kernel也必须为U-boot提供必要的信息,如通过mkimage这个工具(在u-boot代码的tools目录中)可以给zImage添加一个header,也就是使得通常编译的内核zImage添加一个数据头,把添加头后的image通常叫uImage,uImage是可以被U-boot直接引导的内核

李亚锋老师 1万+

Devexpress16.2.6破解工具

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 简单记录一下Linux gadget serial的工作
下一篇: Atmel AT91SAM9x5系列ARM9
EmbededSwordman
博客等级 码龄17年 17粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值