SPV1x SDK 版本迭代记录
SPV1x-012-release-v1.4.5
警告
SDK v1.4.5所属MIDI播放器必须与音频转换工具 v1.7.2配套使用,以获得最新的功能。
在 1.4.5 版本发生变更:
vfs文件系统增加同时打开多个文件功能。
所有使用vfs的demo工程适配vfs修改。
优化启动阶段efuse reload操作,减少代码体积。
更新在线下载工具至v.1.5.0,匹配新量产烧录策略下的加密固件生成机制。
优化s1a解码器在纯音乐下的效果。
优化s1a解码器在循环播放(loop_en = 1)状态下的音频衔接效果。
Bugfix: DMA API所属dma_get_transfer_residual()实现。
音频转换工具升级至 v1.7.2版本,提供MIDI文件单一乐器映射功能,当前支持映射至八音盒和钢琴。
MIDI解码库提高对某些用户自行裁切产生的非标准MIDI文件的兼容性。
1.3.6-rc-07032024
在 1.3.6-rc 版本加入:
外设 ONOFF多功能单元 : API
onoff_deinit(), 用于清除ONOFF控制寄存器配置。外设 定时检测单元 (ALARM) : API
alarm_deinit(), 用于清除ALARM控制寄存器配置。场景库 广义数学计算 。
场景库 录音机 : 额外提供24KHz采样率录音编码选择。
SPV1x专用EQ在线调试工具 eqtool,需要配合指定demo工程使用。
irkey演示工程。
场景库 GIF解码器。
在 1.3.6-rc 版本发生变更:
MP3单通道播放器库: 修复切歌时有可能产生的咔哒声。
场景库 midi文件播放器播放器 : 优化midi文件打包和解析流程,优化资源文件尺寸。
音频转换工具更新至 v1.6.8 版本,配合场景库 midi文件播放器播放器 的改动。
音频转换工具中,s1a编码“12KHz”选项标识发生更改:重命名为与其对应的原生解码采样率“11025Hz”,用户如果使用EQ工具对这个档位的s1a进行调试时,请在EQ工具的采样率一栏选择11025Hz。
优化s1a解码器库在11.025Khz配置下的解码流程。
自 1.3.6-rc 版本弃用:
场景库 广义数学计算 : kss_crc32() 被通用性更好的
kss_crc32_aligned()代替。场景库 广义数学计算 : kss_crc16() 被通用性更好的
kss_crc16_aligned()代替。
警告
SDK v1.3.6版本提供的midi播放器静态库,必须配合音频转换工具 v1.6.5(及以上版本)使用,反之亦然。
EQ在线调试工具,需要与SDK v1.3.6提供的demo工程配合使用(存在对数学库的依赖,旧版本SDK不支持)。
1.3.5-rc-06042024
在 1.3.5 版本发生变更:
对s1a解码器组件进行迭代,修复低码率(<8kbps)条件下的播放效果,提供各个码率下回放音量的一致性。
音频转换工具更新至 v1.6.0 版本,重新开放5-16kbps的码率选项。
1.3.2-rc-05222024
在 1.3.2 版本发生变更:
优化s1a解码器库的效果。
demo工程针对SDK的适配和逻辑改动。
1.3.1-rc-05082024
在 1.3.1 版本发生变更:
MP3编码录音库 mp3_mpeg2_enc 录音机,减少部分静态表消耗。
1.3.0-rc-04182024
警告
使用B版spv1x芯片的新用户,请选择 SDK v1.3.0 作为工程基础。
B版芯片上电默认LVD/LVR修改为2.2v, LVD/LVD控制寄存器的相关位域发生变化,详情请阅读 低电检测单元 (LVD) 章节的寄存器定义部分。
如果您已经通过过往SDK在A版芯片上完成了全部功能的开发,切换到B版芯片使用只需要在 ./kss/kernel/event_kernel.c 下属函数 system_init() 注入如下代码:
if((DEV_CHIP->ID & 0xfful) == 0x81ul) { DEV_PMU->LVD_CTL_f.LVD_VOLT = 2; }
在 1.3.0 版本加入:
MP3单声道MPEG2播放器:支持16/24KHz输出采样率的mp3解码,主要用于MP3录音回放以及离线语音识别配套播报音演出。
MP3单声道全功能播放器:支持MP3标准下全部格式(MPEG-1/2/2.5)播放的解码器,需配合vfs使用。
VORBIS单声道播放器:主要用于平均码率12kbps以上音乐内容的播放。
MP3/s1a/Vorbis/Silk播放器的vfs版本,用于支持外挂spi接口数据flash和(或)tf卡的应用:
mp3_mpeg2_vfs
s1a_vfs
vorbis_vfs
silk_vfs
VFS流程介绍和使用方法请参考 基于虚拟文件系统(VFS)的应用开发 。
BROM预设行为控制
SoC复位
GPIO预设功能控制
看门狗控制
在 1.3.0 版本发生变更:
lowlevel静态库 API:
adc_sys_init()ADC初始化:追加了用于控制gpadc功能是否开启的传参。
s1a播放器库:显著优化了8kbps和10kbps码率下的播放效果。
DMA外设驱动:
dma_init_parameter_tDMA初始化配置结构体:追加新传参。
LVD驱动库:
lvd_init()正确区分SoC A/B版型并施加正确的LVD电压设置。
优化Efuse驱动库。
优化Flash操作库(擦除/写入)。
优化SPI驱动库。
在线烧录器上位机 ODT 升级至 1.4.2 版本:
外部flash读写工具支持操作16MB以上容量flash。
音频转换工具 ACT 升级至 1.5.1 版本:
MP3 MPEG2编码器固定使用abr编码(Average Bitrate)策略,以获得相同码率下的最佳效果。
s1a 编码器cbr编码策略调整,以提高固定码率下的编码效果。
vorbis 编码器固定使用abr编码策略。
将用户工程初始化代码运行期间的CPU/NOR频率分别提升至49MHz/24.5MHz(前值24.5MHz/3MHz),提高初始化速度。
调整用户配置文件 board.h 的配置逻辑,提高易用性。
自 1.3.0 版本弃用:
MP3录音库recorder_enc。
MP3单通道16KHz/32KHz播放器库。
1.2.4-rc-01252024
警告
基于SDK v1.2.3的用户工程升级,需要完成以下适配
将app_init()中通过vmic_iovcc_adjust()对iovcc/vmic进行设置的流程删除。
在app_init()中调用sys_set_iovcc()对iovcc电压进行静态设置。
如果使用audio adc和(或)gpadc,需要在app_init()中调用adc_sys_init()对adc进行初始化。如果只使用gpadc,adc_sys_init()的“采样率”和“增益”参数设置无影响。
删除其余流程中可能存在的vmic_iovcc_adjust()调用,例如存在于tick_handler_100ms()中的iovcc/vmic动态调整逻辑。
在 1.2.4 版本加入:
lowlevel静态库 API:
adc_sys_init() ADC初始化(同时设置vmic电压);
sys_set_iovcc() 调整iovcc电压;
sys_set_vmic() 调整vmic电压;
sys_get_vcc() 读取vcc电压。
sop8封装spv100a4对应的链接器脚本。
sop16封装spv1x1a4对应的链接器脚本。
gpio API: gpio_set_mfp() 配置io口mfp功能。
soc API: soc_watchdog_start/stop/clear() 控制看门狗定时器, soc_set_brom_flag() 配置brom预设功能标志位。
16KHz MP3播放器库 API: player_mp3_16khz_set_loop(), 用于设置正在播放的音乐的单曲循环标志。
在 1.2.4 版本发生变更:
16KHz MP3播放器库:调整内部DRC参数,优化音量体验。
s1a播放器库:调整内部DRC参数,优化音量体验。
全部封装的链接器脚本(.ld): 进一步修正flash_op_init()调用在链接阶段可能触发的relocation报错问题。
start.S为Header Section追加新信息,便于后续项目开展。
音频转换和打包工具升级到v1.2.0,优化s1a编码器效果,为mp3编码器提供平均码率(abr)选项。
自 1.2.4 版本弃用:
lowlevel静态库:
根据vcc电压对iovcc和vmic电压进行动态调整的机制作废,用户需要根据方案实际的供电情况,手动设置固定的iovcc和vmic电压。
删除API: vmic_iovcc_adjust()。
ssop24封装spv1x2a8链接器脚本作废。
1.2.3-rc-12152023
在 1.2.3 版本发生变更:
修复flash_op_init()在链接阶段可能触发的relocation错误。
调整lpm_hibernate_enter()的实现。
优化demos/spv120a4_asr模版工程的iovcc电压策略。
1.2.2-rc-12082023
在 1.2.2 版本加入:
链接器脚本(.ld)追加ADPCM播放所需的overlay结构
ODT工具升级至 v1.3.0 版本,提供对外挂SPI NOR Flash数据介质的烧录功能。
提供Force Hibernate API: lpm_hibernate_enter(),确保Hiberate模式的稳定进入。
SDK现开始提供demos文件夹,包含特定SPV1x封装的典型使用场景演示。
在 1.2.2 版本发生变更:
修复templates/edpm工程下的Keypad Matrix API逻辑问题。
修改IOVCC和VMIC电压的初始化策略:初始电压固定为 IOVCC = 3.2v, VMIC = 3.0v。
自 1.2.2 版本弃用:
OSC CORE时钟设定现在仅支持 80/100 MHz 档位, 60/70/90/110 MHz 档位的API枚举定义已删除。
1.2.1-rc-11162023
在 1.2.1 版本加入:
音效 增加参量均衡器(EQ)功能。
静态库 lowlevel 提供适配外接Flash所需的Delay Chain调节功能。
1.2.0-rc-11102023
在 1.2.0 版本发生变更:
优化量产烧录流程的特定改动。
用户程序初始化阶段, system_init() 将复位特定PMU寄存器组合,确保多个ONOFF按键唤醒场景和唤醒后ONOFF键值检测逻辑的正确执行。
SDK/cpu文件夹下现针对SPV1x SoC不同封装提供对应的链接器脚本(.ld),体现内部/外接NOR Flash单元的正确配置:容量/核心参数(如高速模式下Dummy Cycle),直接影响该封装下程序的启动和执行,请根据实际情况选择,方法如下:
在 Project Explorer 下当前工程名点击鼠标右键,在弹出菜单中选择 Properties。
如下图所示,, 双击当前条目,选择符合实际情况的ld文件。
注:原有默认.ld文件现更名为generic_flash.ld,适用于EVB/Demo Board等官方提供的开发套件。
静态库 lowlevel 和启动代码 start.S 跟随上述改动做必要修改。
静态库: 录音机 接入双二阶高通滤波器改善低频体验,API层面无变化。
优化链接器脚本架构,提供更多可用SRAM空间。
在 1.2.0 版本加入:
发布固件烧录程序ODT v1.2.0版本,与SDK v1.2.0配套使用。
1.1.0-rc-11032023
在 1.1.0 版本加入:
静态库:音效(Audio Effect),参见 音效。
执行JTAG调试所需的调试器驱动程序、openocd配置文件等。
驱动半双工模式外置Flash所需的代码(需配套固件烧录程序ODT v1.1.0版本使用)。
1.0.3-rc-10262023
在 1.0.3 版本加入:
向SDK/templates下属模版工程“edpm”添加了按键API相关源文件,参见 按键 (Keys)。
1.0.2-rc-10242023
在 1.0.2 版本加入:
基于SPV1x EVB的Demo工程: 宠物训练发声器,参见 SPV1x Evaluation Board (EVB) 说明。
1.0.1-rc-10162023
在 1.0.1 版本发生变更:
修复 播放器场景库 中“手动暂停播放后,恢复播放时失败” 的问题。本次改动仅影响kss/sys文件夹内容。
1.0.0-rc-10112023-hotfix
在 1.0.0-rc-hotfix 版本发生变更:
调整 uart_init() 函数中串口时钟分频系数配置规则,提高高波特率通讯环境下数据稳定性。
uint32_t div = (((DEV_CLK_FREQ <<7) / baud + 64) >> 7) - 1;
1.0.0-rc-09262023
在 1.0.0-rc 版本加入:
首次公开发布。