博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式:使用dd命令制作烧写文件
阅读量:5908 次
发布时间:2019-06-19

本文共 1858 字,大约阅读时间需要 6 分钟。

1. 使用dd命令制作烧写文件

环境:

      bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:512K(boot),3M(kernel),2560K(rootfs),10M

MTD partitions :

0x000000000000-0x000000080000 : "boot"
0x000000080000-0x000000380000 : "kernel"
0x000000380000-0x000000600000 : "rootfs"
0x000000600000-0x000001000000 : "app"

 

材料:uboot.bin, kernel,rootfs.jffs2, app.img

  kernel是zImage(没有头部)而不是uImage.

  : http://www.cnblogs.com/mylinux/p/3994455.html

  由uImage生成zImage:  dd if=uImage of=zImage bs=64 skip=1

 

工具脚本:makeprogrammingflashimg

脚本的写法应该和mtd分区保持一致。

#! /bin/shrm -rf PROGRAMMING.bindd if=$1 of=PROGRAMMING.bin bs=1k conv=syncdd if=$2 of=PROGRAMMING.bin bs=1k seek=512dd if=$3 of=PROGRAMMING.bin bs=1k seek=3584 conv=syncdd if=$4 of=PROGRAMMING.bin bs=1k seek=6144 conv=sync#0.5  3   2.5 10 echo ''echo 'flash.bin address map'echo '0x00000000 : u-boot'echo '0x00100000 : Linux Kernel'echo '0x00200000 : JFFS2'echo '0x00600000 : APP '

 

操作方法: ./makeprogrammingflashimg uboot.bin kernel rootfs.jffs2 app.img

 

如果不想使用app分区,直接在脚本里注释掉$4,使用脚本的时候不传入app.img即可。

 

2.  

使用方式: dd [option]

如果你想要在线看 manual, 可以试试:

dd --help 或是 info dd

如果你想要看看这个版本如何:

dd --version

输入或输出

dd if=[STDIN] of=[STDOUT]

强迫输入或输出的Size为多少Bytes

bs: dd -ibs=[BYTE] -obs=[SIZE]

强迫一次只做多少个 Bytes

cbs=BYTES

跳过一段以后才输出

seek=BLOCKS

跳过一段以后才输入

skip=BLOCKS

 

if =输入文件(或设备名称)。 

of =输出文件(或设备名称)。 
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 
obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。 
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。 
cbs = byte 一次转换bytes字节。 
count=blocks 只拷贝输入的blocks块。 
conv = ASCII 把EBCDIC码转换为ASCIl码。 
conv = ebcdic 把ASCIl码转换为EBCDIC码。 
conv = ibm 把ASCIl码转换为alternate EBCDIC码。 
conv = block 把变动位转换成固定字符。 
conv = ublock 把固定位转换成变动位。 
conv = ucase 把字母由小写转换为大写。 
conv = lcase 把字母由大写转换为小写。 
conv = notrunc 不截短输出文件。 
conv = swab 交换每一对输入字节。 
conv = noerror 出错时不停止处理。 
conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。 

 

你可能感兴趣的文章
chrome离线包出现的小问题
查看>>
[离散时间信号处理学习笔记] 15. 模拟信号的数字处理
查看>>
php rsa加密解密实例
查看>>
.Net Core和.Net Standard直观理解
查看>>
设计模式之六大原则
查看>>
SSL/TLS协议运行机制的概述
查看>>
顶部BANNER
查看>>
使用IDEA部署项目到远程服务器
查看>>
Python3求英文文档中每个单词出现的次数并排序
查看>>
【VS】使用vs2017自带的诊断工具(Diagnostic Tools)诊断程序的内存问题
查看>>
转: 关于linux用户时间与系统时间的说明
查看>>
CentOS7切换到root用户和退回普通用户
查看>>
常用的几个vagrant命令
查看>>
HDU1398 Square Coins(生成函数)
查看>>
Excel导出文件流下载
查看>>
linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports
查看>>
Vue.js 2.x:组件的定义和注册(详细的图文教程)
查看>>
定位多线程内存越界问题实践总结【转】
查看>>
堆排序
查看>>
Redis 如何分布式,来看京东金融的设计与实践
查看>>