SPV1x SDK 版本迭代记录

重要

SDK v1.2.0以上 开始为量产版本,针对大批量基台量产烧录优化,请及时更新。

点此浏览和下载过往版本SDK

SPV1x-012-release-v1.4.5

警告

  • SDK v1.4.5所属MIDI播放器必须与音频转换工具 v1.7.2配套使用,以获得最新的功能。

在 1.4.5 版本发生变更:

  1. vfs文件系统增加同时打开多个文件功能。

  2. 所有使用vfs的demo工程适配vfs修改。

  3. 优化启动阶段efuse reload操作,减少代码体积。

  4. 更新在线下载工具至v.1.5.0,匹配新量产烧录策略下的加密固件生成机制。

  5. 优化s1a解码器在纯音乐下的效果。

  6. 优化s1a解码器在循环播放(loop_en = 1)状态下的音频衔接效果。

  7. Bugfix: DMA API所属dma_get_transfer_residual()实现。

  8. 音频转换工具升级至 v1.7.2版本,提供MIDI文件单一乐器映射功能,当前支持映射至八音盒和钢琴。

  9. MIDI解码库提高对某些用户自行裁切产生的非标准MIDI文件的兼容性。

1.3.6-rc-07032024

在 1.3.6-rc 版本加入:

  1. 外设 ONOFF多功能单元 : API onoff_deinit(), 用于清除ONOFF控制寄存器配置。

  2. 外设 定时检测单元 (ALARM) : API alarm_deinit(), 用于清除ALARM控制寄存器配置。

  3. 场景库 广义数学计算

  4. 场景库 录音机 : 额外提供24KHz采样率录音编码选择。

  5. SPV1x专用EQ在线调试工具 eqtool,需要配合指定demo工程使用。

  6. irkey演示工程。

  7. 场景库 GIF解码器

在 1.3.6-rc 版本发生变更:

  1. MP3单通道播放器库: 修复切歌时有可能产生的咔哒声。

  2. 场景库 midi文件播放器播放器 : 优化midi文件打包和解析流程,优化资源文件尺寸。

  3. 音频转换工具更新至 v1.6.8 版本,配合场景库 midi文件播放器播放器 的改动。

  4. 音频转换工具中,s1a编码“12KHz”选项标识发生更改:重命名为与其对应的原生解码采样率“11025Hz”,用户如果使用EQ工具对这个档位的s1a进行调试时,请在EQ工具的采样率一栏选择11025Hz。

  5. 优化s1a解码器库在11.025Khz配置下的解码流程。

自 1.3.6-rc 版本弃用:

警告

  • SDK v1.3.6版本提供的midi播放器静态库,必须配合音频转换工具 v1.6.5(及以上版本)使用,反之亦然。

  • EQ在线调试工具,需要与SDK v1.3.6提供的demo工程配合使用(存在对数学库的依赖,旧版本SDK不支持)。

1.3.5-rc-06042024

在 1.3.5 版本发生变更:

  1. 对s1a解码器组件进行迭代,修复低码率(<8kbps)条件下的播放效果,提供各个码率下回放音量的一致性。

  2. 音频转换工具更新至 v1.6.0 版本,重新开放5-16kbps的码率选项。

1.3.2-rc-05222024

在 1.3.2 版本发生变更:

  1. 优化s1a解码器库的效果。

  2. demo工程针对SDK的适配和逻辑改动。

1.3.1-rc-05082024

在 1.3.1 版本加入:

  1. lowlevel库,追加差分和单端接法麦克风的初始化和去初始化API,需要在使用录音功能前调用。详细说明请阅读 录音机

在 1.3.1 版本发生变更:

  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 版本加入:

  1. sdcard虚拟文件系统

  2. MP3单声道MPEG2播放器:支持16/24KHz输出采样率的mp3解码,主要用于MP3录音回放以及离线语音识别配套播报音演出。

  3. MP3单声道全功能播放器:支持MP3标准下全部格式(MPEG-1/2/2.5)播放的解码器,需配合vfs使用。

  4. VORBIS单声道播放器:主要用于平均码率12kbps以上音乐内容的播放。

  5. MP3/s1a/Vorbis/Silk播放器的vfs版本,用于支持外挂spi接口数据flash和(或)tf卡的应用:

  • mp3_mpeg2_vfs

  • s1a_vfs

  • vorbis_vfs

  • silk_vfs

VFS流程介绍和使用方法请参考 基于虚拟文件系统(VFS)的应用开发

  1. 16KHz采样率MP3编码录音库 mp3_mpeg2_enc,详情参考 录音机

  2. 外设驱动库 SoC 提供以下功能:

  • BROM预设行为控制

  • SoC复位

  • GPIO预设功能控制

  • 看门狗控制

在 1.3.0 版本发生变更:

  1. lowlevel静态库 API:

  • adc_sys_init() ADC初始化:追加了用于控制gpadc功能是否开启的传参。

  1. s1a播放器库:显著优化了8kbps和10kbps码率下的播放效果。

  2. DMA外设驱动:

  1. LVD驱动库:

  • lvd_init() 正确区分SoC A/B版型并施加正确的LVD电压设置。

  1. 优化Efuse驱动库。

  2. 优化Flash操作库(擦除/写入)。

  3. 优化SPI驱动库。

  4. 在线烧录器上位机 ODT 升级至 1.4.2 版本:

  • 外部flash读写工具支持操作16MB以上容量flash。

  1. 音频转换工具 ACT 升级至 1.5.1 版本:

  • MP3 MPEG2编码器固定使用abr编码(Average Bitrate)策略,以获得相同码率下的最佳效果。

  • s1a 编码器cbr编码策略调整,以提高固定码率下的编码效果。

  • vorbis 编码器固定使用abr编码策略。

  1. 将用户工程初始化代码运行期间的CPU/NOR频率分别提升至49MHz/24.5MHz(前值24.5MHz/3MHz),提高初始化速度。

  2. 调整用户配置文件 board.h 的配置逻辑,提高易用性。

自 1.3.0 版本弃用:

  1. MP3录音库recorder_enc。

  2. MP3单通道16KHz/32KHz播放器库。

1.2.4-rc-01252024

警告

基于SDK v1.2.3的用户工程升级,需要完成以下适配

  1. 将app_init()中通过vmic_iovcc_adjust()对iovcc/vmic进行设置的流程删除。

  2. 在app_init()中调用sys_set_iovcc()对iovcc电压进行静态设置。

  3. 如果使用audio adc和(或)gpadc,需要在app_init()中调用adc_sys_init()对adc进行初始化。如果只使用gpadc,adc_sys_init()的“采样率”和“增益”参数设置无影响。

  4. 删除其余流程中可能存在的vmic_iovcc_adjust()调用,例如存在于tick_handler_100ms()中的iovcc/vmic动态调整逻辑。

在 1.2.4 版本加入:

  1. lowlevel静态库 API:

  • adc_sys_init() ADC初始化(同时设置vmic电压);

  • sys_set_iovcc() 调整iovcc电压;

  • sys_set_vmic() 调整vmic电压;

  • sys_get_vcc() 读取vcc电压。

  1. sop8封装spv100a4对应的链接器脚本。

  2. sop16封装spv1x1a4对应的链接器脚本。

  3. gpio API: gpio_set_mfp() 配置io口mfp功能。

  4. soc API: soc_watchdog_start/stop/clear() 控制看门狗定时器, soc_set_brom_flag() 配置brom预设功能标志位。

  5. 16KHz MP3播放器库 API: player_mp3_16khz_set_loop(), 用于设置正在播放的音乐的单曲循环标志。

在 1.2.4 版本发生变更:

  1. 16KHz MP3播放器库:调整内部DRC参数,优化音量体验。

  2. s1a播放器库:调整内部DRC参数,优化音量体验。

  3. 全部封装的链接器脚本(.ld): 进一步修正flash_op_init()调用在链接阶段可能触发的relocation报错问题。

  4. start.S为Header Section追加新信息,便于后续项目开展。

  5. 音频转换和打包工具升级到v1.2.0,优化s1a编码器效果,为mp3编码器提供平均码率(abr)选项。

自 1.2.4 版本弃用:

  1. lowlevel静态库:

  • 根据vcc电压对iovcc和vmic电压进行动态调整的机制作废,用户需要根据方案实际的供电情况,手动设置固定的iovcc和vmic电压。

  • 删除API: vmic_iovcc_adjust()。

  1. ssop24封装spv1x2a8链接器脚本作废。

1.2.3-rc-12152023

在 1.2.3 版本发生变更:

  1. 修复flash_op_init()在链接阶段可能触发的relocation错误。

  2. 调整lpm_hibernate_enter()的实现。

  3. 优化demos/spv120a4_asr模版工程的iovcc电压策略。

1.2.2-rc-12082023

在 1.2.2 版本加入:

  1. 链接器脚本(.ld)追加ADPCM播放所需的overlay结构

  2. ODT工具升级至 v1.3.0 版本,提供对外挂SPI NOR Flash数据介质的烧录功能。

  3. 提供Force Hibernate API: lpm_hibernate_enter(),确保Hiberate模式的稳定进入。

  4. SDK现开始提供demos文件夹,包含特定SPV1x封装的典型使用场景演示。

在 1.2.2 版本发生变更:

  1. 修复templates/edpm工程下的Keypad Matrix API逻辑问题。

  2. 修改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 版本加入:

  1. 音效 增加参量均衡器(EQ)功能。

  2. 静态库 lowlevel 提供适配外接Flash所需的Delay Chain调节功能。

1.2.0-rc-11102023

在 1.2.0 版本发生变更:

  1. 优化量产烧录流程的特定改动。

  2. 用户程序初始化阶段, system_init() 将复位特定PMU寄存器组合,确保多个ONOFF按键唤醒场景和唤醒后ONOFF键值检测逻辑的正确执行。

  3. SDK/cpu文件夹下现针对SPV1x SoC不同封装提供对应的链接器脚本(.ld),体现内部/外接NOR Flash单元的正确配置:容量/核心参数(如高速模式下Dummy Cycle),直接影响该封装下程序的启动和执行,请根据实际情况选择,方法如下:

    • Project Explorer 下当前工程名点击鼠标右键,在弹出菜单中选择 Properties

    • 如下图所示,C/C++ Build ‣ Settings ‣ GNU RISC-V Cross C Linker ‣ General ‣ Script Files, 双击当前条目,选择符合实际情况的ld文件。

    _images/kiwi-lds-config.png

    注:原有默认.ld文件现更名为generic_flash.ld,适用于EVB/Demo Board等官方提供的开发套件。

  4. 静态库 lowlevel 和启动代码 start.S 跟随上述改动做必要修改。

  5. 静态库: 录音机 接入双二阶高通滤波器改善低频体验,API层面无变化。

  6. 优化链接器脚本架构,提供更多可用SRAM空间。

在 1.2.0 版本加入:

  1. 发布固件烧录程序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.1.0 版本发生变更:

  • 固件烧录程序 ODT:升级至v1.1.0版本,提供对半双工Flash的烧录支持,详情参见 用户程序烧录

  • 静态库: 录音机 在16KHz采样率下提供可选的编码码率:16、24、32、64kbps。

  • 静态库:flash_api,对半双工模式Flash进行适配, API层面无需适配。

  • 静态库:lowlevel,对半双工模式Flash进行适配, API层面无需适配。

1.0.3-rc-10262023

在 1.0.3 版本加入:

  • 向SDK/templates下属模版工程“edpm”添加了按键API相关源文件,参见 按键 (Keys)

1.0.2-rc-10242023

在 1.0.2 版本加入:

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 版本加入:

  • 首次公开发布。