更多内容请访问:1.背景介绍(1)在openharmony的I2S例子中,有一段播放特定地址的音频文件的代码,但是没有说明HiBurn是如何操作将内容烧录到特定地址的。查了一些资料,没有头绪。(2)由于业务需要,也需要在特定地址存储大量数据。如果用HiBurn刻录,比较麻烦。所以,为了方便打包程序和烧写固件,想做一个小工具来解决这个问题。不知道是不是在重新发明轮子。2.规划在固件中存储数据,目前有以下几种方法:(1)在编译程序前添加。比如在代码中创建一个大数组等等。但是据说openharmony有一个bug,会导致莫名其妙的运行问题。所以放弃了,没有尝试。(2)在程序编译数据之后,打包数据之前添加数据。浏览了python的源码,了解了基本流程,但是不敢动手。担心因为自己的理解不到位,修改的时候会出现bug,导致生成的nativeallinone固件出现问题。另外,资料有限,本人能力也有限,不知道工作量有多大。所以,放弃那个选项。(3)在生成的最终固件(allinone)中添加需要的文件,该方案可以保证allinone固件不受影响。这个方案应该是比较笨的方案,但却是最稳妥的方案。确定方案后,开始造轮子。3、思路的首选,我们需要回顾一下之前整理的allinone.bin固件格式。原文如下:https://ost.51cto.com/posts/10816。基本方案是:(1)解析bin文件,将数据拆分成数据头,三个文件(Hi3861_loader_signed.bin、Hi3861_wifiiot_app_burn.bin、Hi3861_boot_signed_B.bin)。(2)在第二个文件(Hi3861_wifiiot_app_burn.bin)后面的具体地址(程序配置界面设置的起始地址)添加需要烧录的文件数据。(3)按规则合成文件。修改数据长度、CRC等信息。4、result的代码是VS写的,运行需要.net4.7的库。(1)打开按钮选择allinone的固件。(2)参数配置是选择要写入的起始地址和结束地址。超出地址范围时会报错。(3)添加文件,这里可以添加需要烧录的文件。如音频文件等。(4)执行生成。执行完成后,会按照设置的文件名进行存储,与allinone存储在同一个目录下。5.总结不知道会有朋友需要这个工具。更多资讯请浏览:?????????????????????????????????????????????????????????
