Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 

一 基本概念

   bin文件合并是嵌入式中常用的,这里给一个实例。

 

二  实例分析

 

复制代码
import os
import argparse
import hashlib

offset1 = 0x00100000

def bin_file_merge(bin_file1,bin_file2,bin_merge):
    f1 = open(bin_file1,"rb")
    f2 = open(bin_file2,"rb")
    fmerge = open(bin_merge,"ab")

    bin2_size = os.path.getsize(bin_file2)

    data = f1.read()
    fmerge.write(data)
    offset = fmerge.tell()
    data = f2.read()
    #fmerge.seek(offset1)
    fmerge.write(data)
    fmerge.close()




def get_parser():
    parser = argparse.ArgumentParser(description='change extension of files in a working directory')
    parser.add_argument('bin_file1', metavar='BIN_FILE1', type=str, nargs=1,
                        help='bin file one ')
    parser.add_argument('bin_file2', metavar='BIN_FILE2', type=str, nargs=1,
                        help='bin file two')
    parser.add_argument('bin_merge', metavar='BIN_MERGE', type=str, nargs=1,
                        help='bin file merge')
    return parser
复制代码

  

github网址路径:

https://github.com/DyLanCao/python_cabin.git

 

三 总结展望

 

该代码只是基本的架构,具体的实现要根据需求来更改的,实际环境中只需要更改一下偏移地址即可。

 

posted on   虚生  阅读(2630)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2020-04-15 Linux int型转换为char*型几种方法总结
点击右上角即可分享
微信分享提示