xucvai · 2022年01月02日

全志XR806芯片 XR806如何添加本地音频到flash?

请问全志XR806芯片 XR806如何添加本地音频到flash?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2022年01月05日
本回答来源全志XR806芯片 XR806如何添加本地音频到flash?

打包音频文件
新建一个文件夹,如data(名称随意),并把目标音频文件存放仅该目录下,值得注意的是因为audio_demo中默认播放的的是music文件夹下的音频文件,所以音频文件也必须放在music文件夹下。

.
├── data
│   └── music
│       └── 1.mp3
└── mklittlefs

打包该文件夹使用如下命令

./mklittlefs -c data/ -d 0 -b 4096 -p 256 -s 524288 lfs.bin
-c后接目标路径。
-d后接debug等级,默认为0,不用修改。
-b后接block的大小,littlefs默认为4096,一般情况下不用修改。
-p后接page大小,默认为256,不用修改。
-s后接littlefs镜像大小,和在make menuconfig中的配置必须一致。
lfs.bin是生成的镜像文件名。名称随意,但一般是.bin后缀。

make menuconfig配置
进入图形化界面配置,并选中filesystem support后选项配置如下。推荐勾选上flash filesystem image pack support,编译代码后会自动把lfs.bin打包到镜像,否则只能在phoenixMC的调试界面中擦除flash地址1572864(0x18000)后的内容,并手动把lfs.bin写进flash。其中步骤1所说的镜像大小524288就是由2048*1024-1572864而来。

--- filesystem support
[*]   flash filesystem image pack support
FileSystem Type Select (LittleFS)  --->
(1572864) little filesystem start address
(4096) little filesystem block size
(128) little filesystem block count

修改工程cfg文件配置
把前面打包好的lfs.bin复制到project/demo/audio_demo/image/xr806目录下,并修改目录下的image.cfg。

{
    "magic" : "AWIH",
    "version" : "0.5",
    "image" : {"max_size": "1532K"},
    "section" :[
        {"id": "0xa5ff5a00", "bin" :"boot_40M.bin",    "cert": "null",    "flash_offs": "0K",    "sram_offs": "0x00230000", "ep": "0x00230101", "attr":"0x1"},
        {"id": "0xa5fe5a01", "bin" :"app.bin",    "cert": "null",    "flash_offs": "71K",    "sram_offs": "0x00201000", "ep": "0x00201101", "attr":"0x1"},
        {"id": "0xa5fd5a02", "bin" :"app_xip.bin",    "cert": "null",    "flash_offs": "104K",    "sram_offs": "0xffffffff", "ep": "0xffffffff", "attr":"0x2"},
        {"id": "0xa5fa5a05", "bin" :"wlan_bl.bin",    "cert": "null",    "flash_offs": "1075K",    "sram_offs": "0xffffffff", "ep": "0xffffffff", "attr":"0x1"},
        {"id": "0xa5f95a06", "bin" :"wlan_fw.bin",    "cert": "null",    "flash_offs": "1078K",    "sram_offs": "0xffffffff", "ep": "0xffffffff", "attr":"0x1"},
        {"id": "0xa5f85a07", "bin" :"sys_sdd_40M.bin",    "cert": "null",    "flash_offs": "1103K",    "sram_offs": "0xffffffff", "ep": "0xffffffff", "attr":"0x1"},
        {}
    ],
    "raw_bin" :[
        {"bin" :"lfs.bin",    "flash_offs": "1536K"},
        {}
    ]
}

编译完成后编译烧录即可。

你的回答
关注数
1
收藏数
0
浏览数
2976
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息