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

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

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

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

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

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

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

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

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

5、总结

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

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

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

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

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2020-11-06 10:15:16

HiBurn

2020-10-14 09:37:03

HiBurn鸿蒙.bin文件

2021-03-10 09:32:21

鸿蒙HarmonyOS应用开发

2020-10-16 09:50:37

Hi3861WiFi热点

2022-09-20 14:27:23

设备开发鸿蒙

2023-05-26 16:07:14

Hi3861Wifi模块

2022-03-15 15:00:59

Hi3861Pin接口鸿蒙

2020-10-14 09:41:02

Hi3861GPIO点灯

2020-10-19 10:31:44

HiSpark Wi-烧录固件

2020-11-02 11:27:09

鸿蒙LiteOS

2022-03-07 15:05:58

HTTPHi3861数据解析

2022-05-11 15:24:56

鸿蒙智联token烧录

2021-11-30 10:00:45

鸿蒙HarmonyOS应用

2020-10-28 10:00:09

海思Hi3861CentOS鸿蒙LiteOS

2022-05-30 15:21:27

Hi3861TCP通信

2020-11-02 12:07:11

鸿蒙 GPIO

2020-10-12 09:36:04

鸿蒙

2020-10-28 10:03:43

Hi3861 GPIO点灯按键

2021-09-09 10:06:09

鸿蒙HarmonyOS应用

2022-03-04 15:51:43

TTS功能Hi3861科大讯飞
点赞
收藏

51CTO技术栈公众号