# mkimage
Usage: mkimage -l image
-l ==> list image header information
mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
mkimage [-D dtc_options] -f fit-image.its fit-image
mkimage -V ==> print version information and exit

A:CPU的体系结构

  • alpha
  • arm
  • x86 Intel x86
  • ia64
  • mips
  • mips64
  • ppc
  • s390 IBM S390
  • sh SuperH
  • sparc
  • sparc64
  • m68k MC68000

O:操作系统类型

  • openbsd
  • netbsd
  • freebsd
  • 4_4bsd
  • linux
  • svr4
  • esix
  • solaris
  • irix
  • sco
  • dell
  • ncr
  • lynxos
  • vxworks
  • psos
  • qnx
  • u-boot
  • rtems
  • artos

T:映象类型

  • standalone
  • kernel
  • ramdisk
  • multi
  • firmware
  • filesystem

C:压缩方式

  • none 不压缩
  • gzip
  • bzip2

a:映象在内存中的加载地址。映象下载到内存中时,根据这个地址来下载

e:映象运行的入口点地址。这个地址就是-a参数指定的值加上0x40(mkimage头)

n:映象名

d:制作映象的源文件

举例

# mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
Image Name: linux-2.6.14
Load Address: 0x30008000
Entry Point: 0x30008040
# tftp xxx zImage.img
# bootm xxx

bootm命令会判断bootm地址是否与-a指定的地址相同

  • 如果不同的话会从这个地址开始提取出这个0x40的头部,对其进行分析,然后把去掉头部的内核复制到-a指定的地址中去运行
  • 如果相同的话,-e指定的入口地址会推后0x40,跳过头部

mkimage命令的更多相关文章

  1. 关于 mkimage

    在嵌入式系统中,Linux内核和根文件系统一般都与bootloader一起烧写在flash芯片中,系统启动后,bootloader将Linux内核压缩到RAM中,并把压缩的根文件系统复制到RAM中,然 ...

  2. bootm命令中地址参数,内核加载地址以及内核入口地址

    bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x30008000再运行就 ...

  3. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

  4. u-boot FIT image介绍_转自“蜗窝科技”

    转自:http://www.wowotech.net/u-boot/fit_image_overview.html 1. 前言 Linux kernel在ARM架构中引入设备树device tree( ...

  5. uboot 环境变量

    从bootm 命令讲起 1 找到linux的内核入口 Bootm命令通过读取uImage的头部0×40字节的信息,将uImage定位到正确的地址,同时找到linux的内核入口地址. 这个地方就涉及到u ...

  6. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

    qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...

  7. Linux下USB烧写uImage kernel

    Linux下USB烧写uImage kernel   1.启动开发板,进入u-boot:(如果开发板中没有系统,可以通过用SD卡方式启动开发板进入)   U-Boot 2011.06 (Mar 19 ...

  8. 由zImage生成uImage

    一.手动使用mkimage命令 mkimage -A arm -O linux -T kernel -C none -a 30007fc0 -e 30007fc0 -n uImage   -d /wo ...

  9. 【linux】 Makefile之make menuconfig /uImage

      欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http: ...

随机推荐

  1. Java多线程的Callable, Future, FutureCallback

    Callable可以看成是一个增强版的Runnable, 带返回结果, 需要通过Future或者FutureTask来提交任务或运行线程, 然后通过Future/FutureTask的get方法得到返 ...

  2. Windows10纯净原版系统安装方法

    原文:https://baijiahao.baidu.com/s?id=1626696368732676440&wfr=spider&for=pc 1.先来下载一个纯净的ISO系统安装 ...

  3. Mac下 python2和python3共存

    一般是python2默认安装了,python3没有安装,这时候一般使用命令:brew install python3 进行安装 不同方法安装python的路径是不一样的,如下所示: 接下来就要看具体步 ...

  4. BIM数据格式中IFC的标准及格式

    传统工程数据往往零散且片段的储存在各个不同的地方,数据格式也有各种不同的形式互相搭配,最常见的有图形(施工图.大样图.断面图.流程图等).文字(各种说明文件).数字(各种统计.数量或价格数据),这些数 ...

  5. 【面试】c++单例模式

    1. 单例模式 #include <iostream> using namespace std; class CSingleton { private: CSingleton() {} / ...

  6. 开发日记:常用BAT批处理

    备份文件:BackupSourceCode.bat ::自动备份当前文件夹 ::by luomg, 21:15 2010-10-13 ::minguiluo@163.com @echo off tit ...

  7. Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案

    x 环境 { "Aspose.Words": {"Version":"18.x"} } 需求与难题 生成试卷的时候,如果数学题目中有特殊符号 ...

  8. tp5 Class 'gmars\rbac\Rbac' not found

    tp强调的是资源的自动加载,自动加载前提是要配置进去,不管是手工还是系统自动配置. 解决方案:查看autoload_psr4.php文件,如果没有的话,是composer的操作哪里有问题.

  9. 查看appPackage和appActivity的多种方法

    一.通过adb shell 查看 adb shell dumpsys activity | grep 包名 列如: C:\Users\admin>adb shell root@shamu:/ # ...

  10. mysql之各版本rpm包安装

    发现每次想用mysql的rpm包直接安装的时候,都会出现找不到对应的rpm包的情况,故记录一下查找过程 进入官网->downloads->community->mysql commu ...