本文适用范围
21.3~
问题/功能描述
如何给耳机添加文件存取功能,可以实现小文件的读写访问?
实现方案
自21.3及以后版本ADK已经集成了一套简单的文件系统,就是RAFS(Accessing the Random Access Partition)模块。默认设计此分区有两种模式,一是有分区名vmdl专门用于语音助理功能保存热点词语音模型;二是无分区名用于普通使用。
源代码目录 adk\src\services\voice_ui\rafs
测试代码 adk\src\common\adk_test\rafs
通过代码查看,有分区名的更适合正常使用。它允许预置文件烧录软件时一并更新到耳机中,也可以实时新建删除文件。以下也是以此类为做介绍。
1. 添加新的工程文件x2p
2. 为rafs模块添加新分区,在项目使用的flash_config文件合理划分空间ra_partition
3. 打开测试接口INCLUDE_RAFS_TESTS,若有具体应用使用可以关闭此宏
4. 简单写文件功能调用流程
- appTestRafsInit初始化分区
- appTestRafsMount挂载分区文件系统
- appTestRafsOpenWrite写模式打开文件,不存在则新建文件
5. appTestRafsWrite写数据到文件
- appTestRafsClose关闭文件
- appTestRafsFormat卸载文件系统
限于篇幅不一一列举函数功能,详细可直接参看代码。
扩展应用
配合手机app可以对耳机一些配置进行部分参数升级,诸如蓝牙名称地址,音频校准参数等。或者配合产品定制差异化存储功能。
常见问题FAQ
1.必须使用vmdl吗
vmdl分区名字是语音助理专用的,可修改为其它名字做定制使用。
2.文件系统使用中有没有限制
文件系统受性能限制,有很多使用限制,文件数量,路径长度,操作文件数等都是有限的。使用时要注意。
3.使用中有没有需要注意的细节
操作要一一对应,有打开就要有关闭,不然后续操作会提示失败
4.文件系统实现哪些功能
基本文件系统功能都是完善的,文件创建删除,读写,复制,文件夹创建删除都已经实现。
5.方案支持哪些芯片方案
517x/307x及后面芯片都可支持
评论