EQ调节工具 保存配置问题

在 music_sink 的例程上,想重新分配一下音量。使用了eq调节工具,能够读取到版本和各个Level的音量,设置之后也成功分配了音量。之后发现重启之后还是会丢失数据,翻看文档说要保存到设备上需要点环境设置页面的“退出EQ调节模式“,但是点击之后蓝牙会断开,并且串口没有任何打印了,重新获取EQ固件版本也会报错,上电重启数据也没有保存上。请问这是保存失败了吗,还有其他方法保存到设备上吗


图1:正常获取到EQ版本

图2:退出eq后获取失败

是保存在内存里的, 看看drv_audprc.c里这两个宏,要改成系统可以保存的路径,而且要有文件系统才行。修改后,看看保存的文件在不在,但是这个只是调试用的,保存不了曲线,只能保存eq,方便不用每次重启后都写入。

#define EQ_DEBUG_FILE_PATH “/dyn/eq_debug.bin”
#define EQ_SYSTEM_FILE_PATH “/eq.bin”

曲线的保存只能是保存数据,保存到PC上的,上电后要重新写入数据才行

工程里可能配置了RT_USING_DFS但是又没有mount文件系统,或没有下面路径所在目录,

有文件系统的话吗,创建/dyn目录。

#define EQ_DEBUG_FILE_PATH “/dyn/eq_debug.bin”
#define EQ_SYSTEM_FILE_PATH “/eq.bin”

或者修改drv_audproc.c 这里加个#undef RT_USING_DFS

这样不要保存eq文件到本地的功能,就是每次重启要用eq工具写入pc上保存的数据

++++#undef RT_USING_DFS

#if RT_USING_DFS
#include “dfs_file.h”
#include “dfs_posix.h”
#endif

看了下,这个工程里的main.c文件这样写的,只有NAND才会mount文件系统,开机后ls看看有文件系统吗?应没有。

#if defined(BSP_USING_SPI_NAND) && defined(RT_USING_DFS) && !defined(ZBT)
#include “dfs_file.h”

如果想用文件系统保存eq数据,参考music_source里main.c这样定义文件系统

/** Mount file system if using NAND, as BT NVDS is save in file*/
#if defined(RT_USING_DFS) && !defined(ZBT)
#include “dfs_file.h”
#include “dfs_posix.h”
#include “drv_flash.h”
#define NAND_MTD_NAME “root”

#ifdef RT_USING_MTD_NOR
#define ADDR_MASK 0xFF000000
#define register_fs_device(flash_base, offset, size, name) register_nor_device(flash_base, offset, size, name)
#elif defined(RT_USING_MTD_NAND)
#define ADDR_MASK 0xFC000000
#define register_fs_device(flash_base, offset, size, name) register_nand_device(flash_base, offset, size, name)
#else
#define ADDR_MASK 0xFC000000
#define register_fs_device(flash_base, offset, size, name)
#endif

同时开机后命令行创建/dyn目录

使用命令行创建了个/dyn目录,保存成功了,谢谢 :grinning_face:

msh />Directory /:
dyn                 <DIR>                    
msh />Directory dyn:
eq_debug.bin        460                      
msh />