MC3302_SDK_V1.1.9_202507281.../media/tools/post_build/cut.sh
2025-11-11 12:08:31 +08:00

33 lines
933 B
Bash
Executable File

#!/bin/bash
# 指定输入的bin文件名
input_bin="image_zip.bin"
# 指定输出的bin文件名和路径
output_bin="header.bin"
# 查找输入的bin文件并计算大小
bin_files=$(find . -type f -name "$input_bin")
# 检查是否找到bin文件
if [ -z "$bin_files" ]; then
echo "未找到指定的bin文件"
exit 1
fi
# 获取第一个匹配到的bin文件的大小
filesize=$(stat -c %s "$input_bin")
printf "aaa%08x\r\n" $filesize
# 将文件大小作为二进制数据写入输出bin文件的第52个字节位置
printf "%08x" ${filesize} > ${filesize_cal}.tmp
xxd -r -p -l 4 ${filesize_cal}.tmp ${filesize_cal}.bin.tmp
objcopy -I binary --reverse-bytes=4 "${filesize_cal}".bin.tmp "${filesize_cal}".bin.rev
dd conv=notrunc bs=1 seek=52 count=4 \
if="${filesize_cal}".bin.rev of="$output_bin" > /dev/null 2>&1;
cat header.bin image_zip.bin > header_image_zip.bin
echo "计算结果已存储到 $output_bin"