嵌入式linux开发中一些有用的shell脚本收集整理

应用场景:有的时候,我们想获取某个文件中的一部分,比如我们想从一个完整的flash image文件中只抽取kernel,或者file system。
特点:参数支持16进制,这对嵌入式开发很重要。
  1. #! /bin/sh

  2. #get a piece of content from a file.
  3. #$1:file name.
  4. #$2:offset of the file.[in hexdecimal]
  5. #$3:length of the piece of file you want to get.[in hexdecimal]
  6. #$4:the output piece of file name.

  7. #example:./get_piece_of_file.sh xxx_2M_FLASH.bin 0x1f0000 0x10000 config.bin

  8. OFFSET=`echo $(($2))`
  9. LEN=`echo $(($3))`

  10. dd if=$1 of=$4 bs=1 skip=$OFFSET count=$LEN

用dd命令扩展某个文件到指定的长度,然后用cat命令把两个文件连起来。
应用场景:把bootloader,kernel,file system连起来生成一个最终的image文件。
弱点:dd命令扩展某个文件的时候貌似不可以指定填充的内容。
示例:
  1. dd if=$BOOTLOADER_FILE_NAME of=bootloader_extend bs=$FS_OFFSET_DEC count=1 conv=sync
  2. cat bootloader_extend $FS_FILE_NAME >bootloader_fs


xxd命令的使用:
应用场景:有的时候,你需要通过某种bus加载一个image文件到系统的DSP或者某种控制器里面,image本身可以放在文件系统里面,但有的时候,你可以直接把image编进代码里。xxd可以帮你把image文件转成一个数组,并且还会定义一个与image length有关的变量。
示例代码:
  1. echo "you need load me to xxx chip by xxx bus and i will run in xxx chip" >xxx_chip_firmware.bin
  2. xxd -i xxx_chip_firmware.bin xxx_chip_firmware.bin.h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值