8

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

 3 years ago
source link: https://os.51cto.com/article/706294.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Hi3861在特定地址烧录音频文件工具-51CTO.COM
Hi3861在特定地址烧录音频文件工具
作者:再见南丫岛 2022-04-12 11:07:11
为了更加方便打包程序和烧录固件,想做一个小工具来解决这个问题。不知道是不是重复造轮子。

617d5d3994af49fefe5755a69c6ab136d164c5.png

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

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

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

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

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

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

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

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

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

(3)在生成的最终固件(allinone)中添加需要的文件,该方案可以保证不影响allinone固件。该方案应该是比较笨的方案,但是是最稳妥的方案。确定了方案之后,开始造轮子。

首选,我们需要温习一下之前整理的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等信息。

4209ac70222cf7623444295a3e9f4a1bb0394d.png

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

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

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

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

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

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

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

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

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

71eea7105a1cf9982d2996c42d853b97bd50ef.jpg


Recommend

  • 27

    本人是刚接触 HarmonyOS 开发,纯小白一位,希望将最近所经历的各种问题和经验和大家一起分享,帖子中难免有遗漏和错误之处,还请大家帮忙指出,先在此感谢大家的帮忙。同时也希望和大家一起学习和进步,争取为社区贡献自己的一份微薄之力。

  • 7

    她的爱已经烧录进了电路板 “求求你不要扔掉我。”少女走在他的背后。 “我可以端茶倒水,为你暖身子,我可以在白天给你打扫房间,到夜里把自己折进床底下……只要每两周充一次电就好,电费我会去煎职赚钱交给你,...

  • 13
    • www.taterli.com 4 years ago
    • Cache

    TinyML的Hello World烧录到STM32F746NG

    TinyML的Hello World烧录到STM32F746NG 注意:如果没有一个硬件板子,谈何学习TinyML,当然,实验中不烧录到F746NG也是可以跑的,图形驱动不兼容而已. 默认的工程有点问题,需要稍微修改,文件地址:tensorf...

  • 4
    • muyunyun.cn 3 years ago
    • Cache

    树莓派简介&烧录系统

    树莓派可以做什么对于开源极客爱好者,可以把树莓派改造成,家庭影院、服务器、无线路由器、BT 下载服...

  • 11

    如何把一个Linux ISO 文件烧录到 17 个 USB 启动盘?-51CTO.COM 如何把一个Linux ISO 文件烧录到 17 个 USB 启动盘? 作者:runningwater 译 2015-03-13 11:13:19 精通代码的人会写一个 bash 脚本...

  • 7

    Hi3861实现HTTP的Response数据解析-51CTO.COM​​想了解更多内容,请访问:​​​​51CTO和华为官方合作共建的鸿蒙技术社区​​​

  • 3

    用Hi3861联网科大讯飞实现TTS功能-51CTO.COM 用Hi3861联网科大讯飞实现TTS功能 作者:再见南丫岛 2022-03-04 15:51:43 因为业务需要,需要实现TTS功能。现讲开发过程和实现方式整理成文档,供有...

  • 2
    • os.51cto.com 3 years ago
    • Cache

    Hi3516全系统类型烧录教程

    Hi3516全系统类型烧录教程-51CTO.COM Hi3516全系统类型烧录教程 作者:连志安 2022-04-15 14:45:49 USB烧写不需要连网线,也不需要插上电源线(带开关按钮的),只需要将一端有typeC口插上3516开...

  • 6

    想了解更多关于开源的内容,请访问:51CTO 开源基础软件社区​​https://ost.51cto.com​

  • 6

    音频数字信号处理 Audio DSP (Digital Signal Processing) 是一个复杂又专业的话题,本文介绍的是如何从音频中实时分析和识别出特定频率信号的一种方法,对应的代码为可运行在浏览器中的html5网页版(可移植);可用于识别环境中特定频率的声音、或噪声、乐器弹奏的...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK