下载目录&工具使用环境介绍 ========================================= 本章节主要介绍下载目录和工具使用环境。AD14N / AD15N / AC104N / AD17N编译完成后,会在下载目录生成代码文件,并与资源文件整合形成烧录文件,通过CodeBlocks调用下载工具烧写到芯片内置FLASH中;同时我司有许多工具支持压缩转换和打包音频,将资源文件下载到内置或外挂FLASH中。 dowload_bat.c 文件介绍: - `指定app大小 -app`_ - `添加资源文件 -res`_ - `擦除flash部分区域或所有区域 -format`_ - `添加key文件 -key`_ - `外挂资源flash下载`_ isd_config.ini文件介绍: - `系统flash SPI配置 -SPI`_ - `Cache空间配置 -CACHE_WAY`_ - `UBOOT启动烧key配置 -BOOT_TYPE`_ - `程序偏移配置 -EOFFSET & EOFFSET2UP`_ - `LRC时钟源校准配置 -LRC`_ - `外挂资源flash下载引脚配置 -EX_FLASH & EX_FLASH_IO`_ - `开辟自定义空间配置`_ 外挂资源flash下载介绍: - `外挂资源flash下载`_ - `外挂资源flash下载引脚配置 -EX_FLASH & EX_FLASH_IO`_ ^^^^^^^^^^^^^^^^^^^^ 下载目录介绍 ################################ AD14N / AD15N / AC104N / AD17N / AD18N下载目录位于app\\post_build\\sh5x\\voice_toy(工程名称),一共分为三种文件: **(一)生产相关文件** - app.bin:编译生成的代码文件 - jl_isd.bin:FLASH烧录文件,包含代码文件和资源文件 - jl_isd.fw:用于我司一拖二/八工具批量生产的FLASH烧录文件 **(二)资源文件** - dir文件:通过打包工具生成的打包文件,通常用于存放音频资源 **(三)下载工具** - download_bat.c:下载批处理文件,可指定内置和外挂FLASH烧写内容 - isd_config.ini:工程配置文件 - 下载目录工具更新.jlxproj:该工具可在线更新下载目录的exe工具 本小节着重介绍下载工具的download_bat.c以及isd_config.ini文件; dowload_bat.c 文件介绍 ********************************* download_bat.c文件支持把代码和资源文件以及部分配置烧写到系统FLASH,也支持将指定资源文件烧写到外挂FLASH,详细的功能说明图《dowload_bat.c介绍》所示,具体参数如下: .. _指定app大小 -app: - -app app.bin 0x20000: 该指令指定了烧写代码文件app.bin,并且指定了代码存放的系统FLASH区域大小固定为0x20000,即无论app.bin大小为多少,代码区域都会暂用指定的大小,预留出空间,方便后续代码修改后升级使用;用户也可以去掉0x20000,不指定代码存放区域的大小,系统会根据app.bin大小自动分配,但代码改动可能导致资源位置变化,需要重新下载所有资源。 .. _添加资源文件 -res: - -res xxx: 该指令会把指定的资源文件烧写进入系统FLASH,不同资源文件以空格隔开。 .. _擦除flash部分区域或所有区域 -format: - -format vm: 该指令会擦除isd_config.ini文件中指定的“VM”区域。 注:需要注意区分"VM"区域以及VM掉电存储功能。前者为isd_config_ini文件中指定的一块名为“VM”的FLASH空间区域,一般用于存放AD14N内置FLASH的录音数据;后者为代码中的VM断电保存功能,其实际存放在isd_config.ini文件中指定的一块名为“EEPROM”的FLASH空间区域中! - -format all: 该指令会擦除整颗系统FLASH数据。 .. _添加key文件 -key: - -key \*.key: 该指令会加密烧写文件。参数*.key为申请的key文件,不同系列不可混用key文件。 .. image:: download_bat.png :alt: "dowload_bat.c介绍“ :align: center .. centered:: dowload_bat.c介绍 .. _外挂资源flash下载: 外挂资源flash下载 ^^^^^^^^^^^^^^^^^^^^ download_bat.c支持将资源文件下载到外挂资源flash中,不同芯片配置参数不同,其中: **一、AD14N / AD15N / AC104N下载外挂Flash命令** - -wflash dir_xxx 0 [PA05_1B_NULL]: 1. dir_xxx:要烧写的文件名(文件需在download_bat.c所在的目录下); 2. 0 :文件烧录到外挂资源flash的起始地址; 3. [PA05] :外挂资源flash的CS片选引脚(注意,不能选USBDP、USBDM); 4. [1B] :选择芯片的spi1,B端口引脚,端口只能选择B/C; 5. [NULL] :选择“NULL”时为双线,DO、DI分开连接,选择“NUL0”时为单线,DO&DI短接; **二、AD17N / AD18N下载外挂Flash命令** - -ex_flash dir_song_ext: 该指令会根据isd_config.ini中定义的外挂flash引脚(详情请看EX_FLASH与EX_FLASH_IO说明),将指定的资源文件下载到外挂flash中,外挂flash引脚配置将于后文isd_config.ini文件介绍中说明。 *注意:准备下载到外挂flash的dir文件,需要经过packres.exe指定下载地址再次打包生成新的dir文件,才可使用-ex_flash命令。 例如将dir_song文件下载到外挂flash,需要通过packres脚本添加“packres.exe -n res -o dir_song_ext dir_song 0 -normal”命令, 指定0地址将dir_song文件打包成dir_song_ext文件,在download_bat.c中添加-ex_flash dir_song_ext指令即可将dir_song文件完整烧写至外挂flash中。* .. _isd_config.ini文件介绍: isd_config.ini文件介绍 ******************************** isd_config.ini是一个工程配置文件,通过它可以配置程序中与烧写、启动的相关参数。 **(一)EXTRG_CFG_PARAM** - PID: 工程标识,不可超过16个字节; - VID: 工程版本号,用于升级判断; - NEED_RESERVED_4K: 4K保留区配置,详情请看《RESERVED_AREA区域说明》; NEED_RESERVED_4K = YES:保留4K配置区; NEED_RESERVED_4K = NO:不保留4K配置区; - SPECIAL_OPT:选择是否实时根据FLASH支持的对齐方式组织文件; SPECIAL_OPT = 0:根据下载时所连样机FLASH的对齐方式组织文件,只生成1份4K或者256对齐的烧录文件; SPECIAL_OPT 不存在:生成多份不同对齐方式的烧录文件; 注:烧录文件在组织过程中支持按4K或者256字节对齐;若用256字节对齐的烧录文件,去生产最小擦除单位为4K字节的芯片内置FLASH,会出现开不了机的问题!!!注释该配置会关闭该功能,默认生成多份不同对齐方式的文件,由烧写器判断烧写哪一份。 - FORCE_4K_ALIGN:选择是否强制只生成1份4K字节对齐的FLASH烧录文件 注:如果方案需要在线升级,建议使用强制4K对齐,SDK默认只生成1份4K对齐的烧录文件! - FLASH_SIZE:指定FLASH大小,用于生成指定大小的烧录文件 ① 0x800000:按照8M字节的FLASH的空间生成烧录文件,如果在线下载时发现实际的FLASH与指定的大小不匹配,则会报错; 注:在没有直接指定FLASH大小的情况下,最后生成的下载文件会以市面FLASH能支持的最小文件的形式组织;例如: 1、当所有文件小于256K字节时,系统会以总大小为256K为标准为录音分配剩余空间; 2、当所有文件大小等于300K时,系统会以512K为标准为录音分配剩余空间; **(二)SYS_CFG_PARAM** .. _系统flash SPI配置 -SPI: - SPI:芯片内置FLASH的SPI配置,配置说明如下图所示; *注意:对于主频速度要求高的方案,尽量使用两线模式,有利于系统稳定性和功耗控制。* ① 2_3_0:内置FLASH使用双线数据模式; ② 0_3_0:内置FLASH使用单线数据模式; ================= ================ ====== ======== ======== 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ====== ======== ======== 是否支持该功能 支持 支持 支持 支持 ================= ================ ====== ======== ======== .. image:: ini_spi_config.png :alt: "SPI配置参数说明“ :align: center .. centered:: SPI配置参数说明 .. image:: sysflash_run_1&2bit.png :alt: "系统flash 1线/2线接法“ :align: center .. centered:: 系统flash 2线/1线接法 .. _Cache空间配置 -CACHE_WAY: - CACHE_WAY:芯片使用cache的WAY数(1 WAY = 4K字节);多出来的cache可以作为普通ram使用; *注意:Cache会优先使用地址靠前的空间;例如AC104N有4条WAY共16K字节,若CACHE_WAY配置为2,系统会占用16K字节的前8K用于cache缓存,后8K字节可用作普通RAM,具体请参考AC104N SDK的ld文件;* ================= ================ ============== ================== ================== 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ============== ================== ================== 是否支持该功能 支持,可选1~4 支持,可选1~2 **不支持** **不支持** ================= ================ ============== ================== ================== .. _UBOOT启动烧key配置 -BOOT_TYPE: - BOOT_TYPE:AD14N / AD15N在2021年5月18日之后发布的SDK已经使用了新的工具生成芯片密钥。新的密钥系统支持芯片用户派生密钥(leaf key)为空的芯片;原厂密钥(root key)加上客户派生密钥(leaf key)组成完整的芯片密钥,方便客户备货; ① BOOT_TYPE = 0:芯片启动时发现KEY不一致,不启动工程; ② BOOT_TYPE = 非零:芯片启动时发现KEY不一致,新系统启动烧写芯片密钥的功能,之再尝试启动系统;如果芯片已有的KEY和现有的要烧进去的KEY冲突,有烧坏芯片密钥的可能!!! ================= ================ ====== ================ ================ 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ====== ================ ================ 是否支持该功能 支持 支持 **不支持** **不支持** ================= ================ ====== ================ ================ .. _程序偏移配置 -EOFFSET & EOFFSET2UP: - EOFFSET & EOFFSET2UP:代码偏移配置,部分芯片FLASH需要配置偏移参数; ================= ================ ====== ============= ============= 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ====== ============= ============= 是否支持该功能 支持 支持 **不支持** **不支持** ================= ================ ====== ============= ============= .. _LRC时钟源校准配置 -LRC: - LRC:LRC=-1时,烧写器烧写时校准芯片LRC时钟,默认开启; ================= ================ ====== ======== ======== 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ====== ======== ======== 是否支持该功能 支持 支持 支持 支持 ================= ================ ====== ======== ======== .. _外挂资源flash下载引脚配置 -EX_FLASH & EX_FLASH_IO: - EX_FLASH:外挂flash烧写配置 ① PA05_1A_NULL:配置顺序为“CS-SPI端口-电源口”; ② 用VDDIO供电电源口参数为NULL,使用时配置CS脚I/O即可; ================= ================ ============== ======== ======== 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ============== ======== ======== 是否支持该功能 **不支持** **不支持** 支持 支持 ================= ================ ============== ======== ======== - EX_FLASH_IO:外挂flash烧写引脚配置 ① 2_PA01_PA02_PA03_NULL_NULL:配置顺序为“数据宽度-CLK-DO-DI-D2-D3”; ② 双线模式时数据宽度为2,D2、D3口为NULL,即2_PA01_PA02_PA03_NULL_NULL; ③ 单线模式时数据宽度为0,D2、D3口为NULL,即0_PA01_PA02_PA03_NULL_NULL; ④ 四线模式时数据宽度为4,需要配置D2、D3口; ================= ================ ============ ======== ======== 芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ============ ======== ======== 是否支持该功能 **不支持** **不支持** 支持 支持 ================= ================ ============ ======== ======== .. _开辟自定义空间配置: **(三)RESERVED_CONFIG** SDK默认开辟了以下区域: - VM区域:用于AD14N内置flash录音 - EEPROM区域:用于VM掉电存储功能 *需要分清楚VM区域与VM掉电存储功能!VM区域是flash一片空间的名称,VM掉电存储是一种功能* - XXXX_ADR:区域起始地址 ① 0:VM区域起始位置; ② AUTO:由工具自动分配起始地址; - XXXX_LEN:区域大小 - XXXX_OPT:区域操作属性 ① 0:下载代码时擦除指定区域; ② 1:下载代码时不操作指定区域; ③ 2:下载代码时给指定区域加上保护; 注:VM区域的起始地址为0,且实际大小为系统剩余的空间,扩展录音空间可查看(一)中FLASH_SIZE配置的说明;EEPROM区域一般用于代码中的VM断电记忆存储,区域大小不少于8K,否则VM初始化会失败;用户可自行定义其他空间区域; ^^^^^^^^^^^^^^^^^^^^ 开发工具介绍 ############################### AD14N / AD15N / AC104N支持的开发工具如下: 资源打包工具:能将多个文件打包成一个文件; 音频文件转换工具:能将音频文件转换为系统能支持的格式; MIDI转换工具:能将midi文件转换为系统能支持的格式以及制作midi音色库; MIO工具:能制作波形随音频律动的MIO文件; SYD系统制作工具:能格式化SD卡/U盘并挂载我司SYD文件系统的工具; 以上工具可在AD14N_AD15N_gitee开源网站上或询问我司深圳办人员获取,部分工具内含说明文档,本节将介绍文件打包工具和音频转换工具; 资源打包工具 ********************************* 下载到FLASH的资源文件需要经过资源打包工具处理之后才能使用,打包工具包括:new_packres.bat、packres.exe和pRFiles.exe;其中new_packres.bat支持的命令详情请看同目录下的readme.md文件。 **(一)少量文件直接打包** 1、将需要打包的文件放在工具根目录下,打开new_packres.bat文件,指定需要打包的文件以及输出的文件夹名; .. image:: new_packres.bat.png :alt: "new_packres.bat资源打包批处理说明“ :align: center .. centered:: new_packres.bat资源打包批处理说明 2、保存new_packres.bat文件,并双击该批处理,工具根目录下生成打包文件夹表示打包成功; .. image:: new_packres.png :alt: "new_packres.bat运行结果图“ :align: center .. centered:: new_packres.bat运行结果图 **(二)大量文件通过pRFiles.exe批量打包** 1、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例; .. image:: pRFiles.png :alt: "pRFiles.exe打包工具操作图“ :align: center .. centered:: pRFiles.exe打包工具操作图 2、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例; .. image:: packing.png :alt: "new_packres.bat资源打包批处理说明“ :align: center .. centered:: new_packres.bat资源打包批处理说明 3、保存new_packres.bat文件,把资源文件全部放到工具根目录下,并双击该批处理,工具根目录下生成打包文件夹表示打包成功; .. image:: new_packres_running.png :alt: "new_packres.bat运行结果图“ :align: center .. centered:: new_packres.bat运行结果图 音频转换工具 ********************************* 音频文件转换工具_1.2.17.exe是我司用于压缩转换WAV、MP3和WMA音频的工具,可将音频转换成我司的A(B、E)格式、F1A(F1B、F1C)格式、F1X格式以及UMP3格式; **(一)音频转换步骤** 1、添加需要转换的音频文件; 2、选择输出音频的保存目录; 3、选择需要转换的格式、采样率、码率以及其他选项; 4、点击开始转换; .. image:: transform.png :alt: "音频文件转换步骤“ :align: center .. centered:: 音频文件转换步骤 **(二)目标格式选择** 转换工具可生成三种类型文件,第一类*.a、*.b、*.e;第二类*.f1a、*.f1b、*f1c;第三类*.ump3。每种类型都有采样率或码率供自由选择,一般采样率高了对应选择的码率也会高些,采样率跟码率都影响音质。 类型格式选择:选哪个格式,一般考虑音质、设备资源以及系统运行速度。例如需要音质高而flash大小够用,系统资源够跑,就选用高压缩比的类型。一般要低码率的话,可以先选f1a/f1b/f1c,然后系统需要速度快,就选 a。如果f1a/f1c没法满足要求,如压音乐之类的,可以选ump3。如需要重复播报的音频段或者音频间无缝衔接的,可以选择f1x。 - a、b、e格式: 该格式转换压缩比比较低,速度快,资源小。可用于人声或者背景音乐。该格式特点是音质较差,但占用内存小。 .. image:: abe_config.png :alt: "a、b、e 格式配置图“ :align: center .. centered:: a、b、e 格式配置图 - f1a、f1b、f1c、f1x格式: 该格式转换压缩比比较高,比较适用人声和音乐,音质一般,其中f1a、f1b、f1c可用于无缝衔接,f1x格式可用于音频拼接。 .. image:: f1abcx_config.png :alt: "f1a、f1b、f1c、f1x 格式配置图“ :align: center .. centered:: f1a、f1b、f1c、f1x 格式配置图 - ump3格式: 该格式有较多的采样率和码率可以选择,可以按情况来压缩音乐或者人声,该格式特点是占用内存大,音质较好。 .. image:: ump3_config.png :alt: "ump3 格式配置图“ :align: center .. centered:: ump3 格式配置图 **(三)其他参数说明** 1、f1a / f1b / f1c无缝衔接转换和提高小文件压缩比 如果勾选是否无缝循环,则可以首尾无缝对接循环重复播放同一个音频。其能量转换阈值范围0到65536,代表0到1,默认参数配成10,即砍掉接近完全静音的部分。运算过程中的音频也是归一化到0到1来计算的。所以实际应用中,调整的阈值范围一般是选取0到0.1,约0到6000.。可以设成2048。 试下循环效果。 如果勾选循环附加预处理,会对f1a/f1b/f1c文件再做多一次处理,分析计算文件前后的帧叠位置,计算前后的砍帧个数,然后对文件前后做一次前后自适应砍帧的动作。 如果勾选提高小文件压缩比,会使压缩后的目标文件码率较为接近目标码率。f1a是cbr的编码。需要长时间来平均来达到接近目标码率。如果文件都很小的时候,压出来的目标文件码率可能会距离目标码率差距较大。勾上提高小文件压缩比,会接近些。 注:建议无缝循环的时候,只勾选是否无缝循环选项,听得出卡顿的文件,再勾选循环附加预处理,因为这个步骤的砍帧可能会出现有些文件前后会被砍比较多的情况! 2、f1x制作说明 制作f1x音频时,需要选择音频头字节数和头尾去除帧数。 音频头字节数用于文件寻址,与原始转换文件大小有关。头字节数为3时,生成的f1x文件超过16M字节会报错,文件较多时可节约空间;头字节数为4时,则无限制。 头尾去除帧数用于选择去除的f1x内各个音频文件头尾的音频数据包数,可以调整衔接效果。但不可完全依赖该功能,对于衔接效果不理想的音频,需要从音源文件去改善。 3、ump3的能量阈值 ump3格式有能量阀值选项,勾选开关便可以设置阀值,音频前后端会根据这个值砍掉一些低能量的音频,使播放开始和结束时更柔和。阀值范围:0-2147483648,默认参数配成65535.即砍掉接近完全静音的部分,值越大能量剪切越多。鼠标悬停在能量阀值输入框无任何操作两秒以上会显示阀值范围。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 多算法授权简单介绍 ############################### **使用该功能前请咨询杰理助理;** 多算法授权,指的是:在一个SDK中,使用了算法提供商的库函数,而算法提供商可以控制芯片的烧录次数。 (一)使用场景 1. 算法提供商想要控制生产商使用算法库的次数(即:算法提供商按生产的样机收取费用)。 | 具体详细说明可以点击下方链接: | `多算法授权使用说明 `_