Hi3861在特定地址烧录音频文件工具

系统教程10个月前发布 19595
2 0 0

Hi3861在特定地址烧录音频文件工具

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

1、背景

(1)在openharmony的I2S例子中,有播放特定地址的音频文件的代码,但是没有说明HiBurn怎么操作来向特定的地址烧录内容。查了一些资料,也没有头绪。

(2)因为业务的需要,也需要在特定的地址存放大量数据。如果使用HiBurn烧录,也比繁琐。

所以,为了更加方便打包程序和烧录固件,想做一个小工具来解决这个问题。不知道是不是重复造轮子。

2、规划

想要在固件中存放数据,目前看有几种方法:

(1)在程序编译的之前添加上。比如在代码中创建一个大的数组等。但是据说在openharmony这么做有bug,会导致莫名其妙的运行问题。于是放弃,没有尝试。

(2)在程序编译数据后,打包数据之前,添加数据。浏览了一下python的源代码,基本的流程了解,但是没敢这么做,担心因为自己的理解不到位,修改错误出bug,导致生成的原生allinone固件都有问题。另外资料有限,自己的能力也有限,不知道工作量有多大。所以,放弃该方案。

(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、成果

Hi3861在特定地址烧录音频文件工具

代码通过VS编写,运行需要.net4.7的库。

(1)打开按键,为选择allinone的固件。

(2)参数配置,为选择需要写入的开始地址和结束地址。超出地址范围报错。

(3)添加文件,此处可以添加需要烧录的文件。如音频文件等。

(4)执行生成,执行完成之后,会根据设定的文件名进行存储,跟allinone同目录。

5、总结

不知道该工具,是否会有小伙伴需要。

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

Hi3861在特定地址烧录音频文件工具

© 版权声明

相关文章