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