当前位置: 首页 > news >正文

uImage的制作过程详解

1、uImage镜像介绍

参考博客:《vmlinuz/vmlinux、Image、zImage与uImage的区别》;

2、uImage镜像的制作

2.1、mkimage工具介绍

参考博客:《uImage的制作工具mkimage详解(源码编译、使用方法、添加的头解析、uImage的制作)》;

2.2、内核源码中编译uImage

//下面是摘抄的内核编译uImage的打印
······
/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -n Linux-2.6.35.7 -d arch/arm/boot/zImage arch/arm/boot/uImage
Image Name:   Linux-2.6.35.7
Created:      Sun Dec  4 20:31:24 2022
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3722092 Bytes = 3634.86 kB = 3.55 MB
Load Address: 30008000
Entry Point:  30008000
  Image arch/arm/boot/uImage is ready

(1)mkimage可以使用uboot下的工具,有的编译链有自带了mkimage工具,两者都是可以的;
(2)内核源码中能够编译uImage,执行编译指令:make uImage;
(3)编译uImage的脚步是kernel/scripts/mkuboot.sh,会被主Makefile调用;

3、uImage和zImage的比较

在这里插入图片描述

(1)uImage比zImage多64字节的头,这是mkimage工具添加上去的,上面的64字节的头信息需要结合image_header_t结构体和生成uImage时调用mkimage的参数进行解读(调用mkimage的参数请看2.2节中摘抄的打印);
(2)1-4字节:0x27051956是mkimage添加64字节头的魔数,是固定不变的;
(3)17-20字节:0x30008000是内核镜像的内存加载地址;
(4)21-24字节:0x30008000是内核镜像的入口地址;
(5)33-64字节:是镜像的名字,在上面的内核镜像是"Linux-2.6.35.7",表示内核的版本;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 预售网站开发/网站搜索排名优化怎么做
  • 企业注册百家号可以做网站吗/收录优美图片
  • 代做毕业设计找哪个网站/windows优化大师怎么卸载
  • 口碑好的网站开发/天津百度爱采购
  • 电商线上培训/武威网站seo
  • 松山湖网站建设/营销策略范文
  • OkHttp搞定Http请求
  • 分片集群中的分片集合
  • vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
  • 接口幂-全面详解(学习总结---从入门到深化)
  • 第6部分 单区域OSPF
  • 智能优化算法期末复习(更新ing)
  • 【无锁队列】无锁CAS_无锁队列
  • 数据结构 树练习题
  • C++11闭包函数的几种实现方法
  • 计算机毕业论文java毕业设计选题源代码
  • ECMAScript新特性
  • Springboot垃圾识别工具箱0g1f8计算机毕业设计-课程设计-期末作业-毕设程序代做