下载目录 & 烧写说明 ========================================= AD16N编译完成后,会在下载目录生成代码文件,并与资源文件整合形成烧录文件,通过CodeBlocks调用强制下载工具烧写到芯片内置FLASH中;同时我司有许多工具支持压缩转换和打包音频,将资源文件下载到内置或外挂FLASH中。 ^^^^^^^^^^^^^^^^^^^^ 下载目录介绍 ################################ AD16N下载目录位于app\post_build\uc03,一共分为三种文件: * 生产相关文件: - app.bin:编译生成的代码文件 - jl_isd.bin:FLASH烧录文件,包含代码文件和资源文件 - output_flash.fw:用于我司烧写器批量生产的FLASH烧录文件 - output_otp.fw:用于我司烧写器批量生产的OTP烧录文件(仅OTP SDK使用) * 下载工具: - download_bat.c:下载批处理文件,编译时会生成download.bat文件 - isd_config_ini.c:工程配置文件,编译时会生成isd_config.ini文件 - 下载目录工具更新.jlxproj:该工具可在线更新下载目录的exe工具 本小节着重介绍下载工具的download_bat.c以及isd_config.ini文件 AD14N / AD15N / AC104N下载目录位于app\post_build\sh5x\app_mg(工程名称),一共分为三种文件: dowload_bat.c 文件介绍 ********************************* download.bat脚本由download_bat.c文件编译生成,该脚本支持把代码和资源文件以及部分配置烧写到内置FLASH,详细的功能说明图2.1.1所示,具体参数如下: -app app.bin: 该指令会将代码文件app.bin转换成用于FLASH烧写的文件jl_isd.bin。 -otp app.bin:(仅OTP SDK使用) 该指令会将代码文件app.bin转换成用于OTP烧写的文件,需要与-output-fw以及-package-only指令一起使用,生成用于我司烧写器批量生产的OTP烧录文件。 -format all: 该指令会擦除整颗内置FLASH。 -output-fw: 该指令会生成用于我司烧写器批量生产的烧录文件。 - key \*.key: 该指令会加密烧写文件。参数*.key为申请的key文件,不同系列不可混用key文件。 - ex_flash dir_xxx:外挂flash烧写命令 该指令会根据isd_config.ini中定义的外挂flash引脚,将指定的资源文件下载到外挂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中。* .. image:: 1-1-flash-download_bat.png :alt: "FLASH工程 dowload_bat.c介绍“ :align: center .. centered:: 图1.1 FLASH工程download_bat.c文件说明 .. image:: 1-2-otp-download_bat.png :alt: "OTP工程 dowload_bat.c介绍“ :align: center .. centered:: 图1.2 OTP工程download_bat.c文件说明 .. _isd_config.ini文件介绍: isd_config.ini文件介绍 ******************************** isd_config.ini配置文件由isd_config_ini.c文件编译生成,该配置文件可以配置程序中与烧写、启动的相关参数。 EXTRA_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能支持的最小文件的形式组织;例如:* *a.当所有文件小于256K字节时,系统会以总大小为256K为标准为录音分配剩余空间;* *b.当所有文件大小等于300K时,系统会以512K为标准为录音分配剩余空间;* SYS_CFG_PARAM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - SPI:芯片内置FLASH的SPI配置,2_3_0表示使用双线模式,0_3_0表示使用单线模式,根据内置FLASH接线方式进行选择; :: ① 2_3_0:内置FLASH使用双线数据模式; ② 0_3_0:内置FLASH使用单线数据模式; - CACHE_WAY:芯片使用cache的WAY数,AD16N可选1~4,多出来的cache可以作为sram使用,该功能会影响芯片运行效率,需要修改ld文件; - UTTX:UBOOT串口打印脚选择; :: ① PA00~PA15、PB00~PB10、PC00~PC05:使用普通I/O口作为串口打印脚; ② USBDM、USBDP:使用USB引脚作为串口打印脚; - UTBD:UBOOT串口打印波特率,默认为1000000; - EX_FLASH:外挂flash烧写配置; :: ① PB00_1A_NULL:配置顺序为“CS-SPI端口-电源口”; ② 用VDDIO供电电源口参数为NULL,使用时配置CS脚I/O即可; - EX_FLASH_IO:外挂flash烧写引脚配置: :: ① 1_PB01_PB02_PB03_NULL_NULL:配置顺序为“数据宽度-CLK-DO-DI-D2-D3”; ② 双线模式时数据宽度为1;单线模式时数据宽度为0;D2、D3口为NULL; ③ 四线模式时数据宽度为4,需要配置D2、D3口; ④ 该配置在isd_config_ini.c中使用了宏拼接,修改数据宽度时需要修改拼接的第一个参数 BURNER_PASSTHROUGH_CFG ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - OTP_BOOT:芯片启动模式选择,为烧写器配置项,会影响芯片开机,该位在OTP工程SDK中由app_config.h文件中的USE_FLASH_DEBUG宏定义自动选择控制,在FLASH工程SDK中默认配置为0; :: ① OTP_BOOT = 0:芯片从FLASH启动,用于FLASH工程以及OTP工程的FLASH调试模式; ② OTP_BOOT = 1:芯片从OTP启动; BURNER_CFG ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - LVD:芯片低电复位电压默认档位选择,为烧写器配置项;该档位仅影响烧写器默认选择的档位,用户仍可自行修改烧写器上的LVD档位进行烧写;如无该配置项,则烧写器默认选择最高档位2.840v;该配置项为一次性烧写,请慎重选择! :: ① 可选档位:2.078v、2.188v、2.297v、2.406v、2.515v、2.624v、2.733v、2.840v; RESERVED_CONFIG ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - XXXX_ADR:区域起始地址 :: ① 0:VM区域起始位置; ② AUTO:由工具自动分配起始地址; - XXXX_LEN:区域大小 - XXXX_OPT:区域操作属性 :: ① 0:下载代码时擦除指定区域; ② 1:下载代码时不操作指定区域; ③ 2:下载代码时给指定区域加上保护; *注:VM区域的起始地址为0,且实际大小为系统剩余的空间,扩展录音空间可查看(一)中FLASH_SIZE配置的说明;EEPROM区域一般用于代码中的VM断电记忆存储,区域大小不少于8K,否则VM初始化会失败;用户可自行定义其他空间区域;* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 派生密钥3.0介绍 ############################### AD16N FLASH方案使用派生密钥3.0(r3key/l3key)的KEY方案。该密钥系统是为了代理商为多家客户供货而设计的。目的是代理商手握一个r3key,并以此为母本,生成出多个不同的l3key;代理商为其下游不同客户分配不同的l3key,再以l3key加密flash,从而确保芯片程序加密的安全性。 与AD14N / AD15N系列上的派生密钥2.0相比,用户在使用派生密钥3.0的变化在于: - **1) r3key不是完整的密匙,不能直接用于加密,其派生出的l3key才是可用于加密的完整密钥。** - **2) 空片可以烧录成r3key;已经烧录过r3key的芯片可以进一步烧录该r3key派生出来的l3key;空片也可以直接烧录成l3key,以上行为均不可逆!** - **3) AD14N / AD15N系列使用的是派生密钥2.0,与派生密钥3.0不能混用!** 派生密钥3.0的使用可参考download_bat.c中isd_download.exe命令”-key”说明,用户加密程序时,在download_bat.c批处理中,添加申请到的l3key文件名,并将l3key文件置于isd_download.exe同一目录下,重新编译程序即可加密程序。 .. image:: 2-1-l3key.png :alt: "L3key添加到工程进行加密“ :align: center .. centered:: 图2.1 L3key添加到工程进行加密 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _二级密钥V2.0介绍: 二级密钥V2.0简单介绍 ############################### AD16N FLASH方案V1.3.0以及之后版本的SDK支持二级密钥V2.0系统,该系统不兼容旧版本二级密钥; **使用该功能前请咨询杰理助理;** (一)使用场景 1. 公司A出售芯片给公司B。 2. 公司A在杰理SDK基础开发一个SDK提供给公司B做二次开发 (二)双向保护机制 1. 公司A在自己的核心库里面配置好密钥后,可保护公司A的SDK不外泄。在没有获得授权的情况下SDK无法正常运行,可避免公司B从其他渠道购买芯片运行公司A所开发的SDK。 2. 公司A没有公司B的key1文件,公司A拿到fw文件之后也无法生产,从而保护了公司B二次开发之后新SDK的权益。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 多算法授权简单介绍 ############################### **使用该功能前请咨询杰理助理;** 多算法授权,指的是:在一个SDK中,使用了算法提供商的库函数,而算法提供商可以控制芯片的烧录次数。 (一)使用场景 1. 算法提供商想要控制生产商使用算法库的次数(即:算法提供商按生产的样机收取费用)。 | 具体详细说明可以点击下方链接: | `多算法授权使用说明 `_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 烧写注意事项 ############################### FLASH工程批量烧写时需注意一下事项: 1) 开发使用的样片,必须使用我司一拖二烧写器进行校准(烧写器需要对芯片内部时钟LRC和DAC电压做校准,这两项在芯片出厂阶段不做校准); 2) SOP和QSOP使用一拖二烧写器时,需要使用转接小板。左板与右板的连接线最好使用焊接固定,避免因机台动作导致接触不良; * 使用加粗的连接线,建议至少焊接2根以上地线,保证共地良好。 * 使用机台转接小板烧写SOP和QSOP封装时,请注意必须关闭1t2烧写器配置的REF TRIM选项,手工烧写时需要勾选REF TRIM; * 其他机械手烧写QFN或LQFP封装时,需要勾选REF TRIM; .. image:: 3-1-burn-1.png :alt: "机台转接小板连接示意图“ :align: center .. centered:: 图3.1 机台转接小板连接示意图 3) LVD电压配置必须大于FLASH最低工作电压,OTP方案LVD电压配置必须大于2.3V; .. image:: 3-1-burn-2.png :alt: "烧写器REF_TRIM选项和LVD选项“ :align: center .. centered:: 图3.2 烧写器REF_TRIM选项和LVD选项 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FLASH工程烧写补充说明 ############################### AD16N空片无法使用USB升级!FLASH方案的封装片在二次开发前,必须使用我司一拖二工具烧写底层驱动文件,才能正常使用USB强制升级工具进行程序升级。 .. image:: 4-1-usb-update-1.png :alt: "FLASH工程使用USB强制升级工具download_bat.c说明“ :align: center .. centered:: 图4.1 FLASH工程使用USB强制升级工具download_bat.c说明 .. image:: 4-1-usb-update-2.png :alt: "FLASH工程使用USB强制升级工具驱动文件“ :align: center .. centered:: 图4.2 FLASH工程使用USB强制升级工具驱动文件 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OTP工程烧写补充说明 ############################### OTP方案适合最追求极致性价比的产品,属于一次性烧写存储方式,烧写后不可再次升级,样机测试必须严谨细致。量产时,建议选择使用内置FLASH型号试产,待试产稳定后再切换为OTP方案,降低生产风险。 OTP方案在工程开发阶段,需要使用FLASH多次下载代码进行开发和调试;在最终生产时,将相同的工程代码烧写到OTP中。OTP只能通过烧写器烧写。 FLASH调试模式与OTP模式区别 ******************************************************************** OTP工程SDK中通过app_config.h文件中的USE_FLASH_DEBUG宏定义,控制代码下载方式。 由于OTP空间只有32K字节,相较于FLASH调试模式,OTP模式的区别在于: - 关掉了所有log打印 - 没有使能异常模块,没有异常打印 - 不会记录唤醒源和复位源(可自行开启) FLASH调试模式与OTP模式的烧写 ******************************************************************** FLASH调试模式 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 将app_config.h文件中的USE_FLASH_DEBUG宏定义置为1 - 开发板连接USB强制下载工具,进入下载模式 - 编译工程,生成jl_isd.bin直接下载到开发板的FLASH中 - 编译工程还会生成output_flash.fw用于烧写器下载 .. image:: 5-1-flash-debug-1.png :alt: "FLASH调试模式下载目录文件说明“ :align: center .. centered:: 图5.1 FLASH调试模式下载目录文件说明 OTP模式 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 将app_config.h文件中的USE_FLASH_DEBUG宏定义置为0 - 编译工程,生成output_otp.fw文件用于烧写器烧写 .. image:: 5-1-otp-debug-2.png :alt: "FLASH调试模式下载目录文件说明“ :align: center .. centered:: 图5.2 OTP模式下载目录文件说明 开发工具介绍 ############################### AD14N / AD15N / AC104N支持的开发工具如下: - 资源打包工具:能将多个文件打包成一个文件; - 音频文件转换工具:能将音频文件转换为系统能支持的格式; - MIDI转换工具:能将midi文件转换为系统能支持的格式以及制作midi音色库; - MIO工具:能制作波形随音频律动的MIO文件; - SYD系统制作工具:能格式化SD卡/U盘并挂载我司SYD文件系统的工具; 以上工具可在AD16N_gitee开源网站上或询问我司深圳办人员获取,部分工具内含说明文档,本节将介绍文件打包工具和音频转换工具; 资源打包工具 ******************************** 下载到FLASH的资源文件需要经过资源打包工具处理之后才能使用,打包工具包括:new_packres.bat、packres.exe和pRFiles.exe;其中new_packres.bat支持的命令详情请看同目录下的readme.md文件。 少量文件直接打包 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、将需要打包的文件放在工具根目录下,打开new_packres.bat文件,指定需要打包的文件以及输出的文件夹名; .. image:: 6-1-new_packres.bat-1.png :alt: "new_packres.bat资源打包批处理说明“ :align: center .. centered:: 图6.1 new_packres.bat资源打包批处理说明 2、保存new_packres.bat文件,并双击该批处理,工具根目录下生成打包文件夹表示打包成功; .. image:: 6-2-new_packres.bat-2.png :alt: "new_packres.bat运行结果图“ :align: center .. centered:: 图6.2 new_packres.bat运行结果图 大量文件通过pRFiles.exe批量打包 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例; .. image:: 6-3-pRFiles.exe-1.png :alt: "pRFiles.exe打包工具操作图“ :align: center .. centered:: 图6.3 pRFiles.exe打包工具操作图 2、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例; .. image:: 6-4-new_packres.bat-3.png :alt: "new_packres.bat资源打包批处理说明“ :align: center .. centered:: 图6.4 new_packres.bat资源打包批处理说明 3、保存new_packres.bat文件,把资源文件全部放到工具根目录下,并双击该批处理,工具根目录下生成打包文件夹表示打包成功; .. image:: 6-5-new_packres.bat-4.png :alt: "new_packres.bat运行结果图“ :align: center .. centered:: 图6.5 new_packres.bat运行结果图 音频转换工具 ******************************** 音频文件转换工具_1.2.17.exe是我司用于压缩转换WAV、MP3和WMA音频的工具,可将音频转换成我司的A(B、E)格式、F1A(F1B、F1C)格式、F1X格式以及UMP3格式; 音频转换步骤 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、添加需要转换的音频文件; 2、选择输出音频的保存目录; 3、选择需要转换的格式、采样率、码率以及其他选项; 4、点击开始转换; .. image:: 6-6-file-step.png :alt: "音频文件转换步骤“ :align: center .. centered:: 图6.6 音频文件转换步骤 目标格式选择 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 转换工具可生成三种类型文件,第一类*.a、*.b、*.e;第二类*.f1a、*.f1b、*f1c;第三类*.ump3。每种类型都有采样率或码率供自由选择,一般采样率高了对应选择的码率也会高些,采样率跟码率都影响音质。 类型格式选择:选哪个格式,一般考虑音质、设备资源以及系统运行速度。例如需要音质高而flash大小够用,系统资源够跑,就选用高压缩比的类型。一般要低码率的话,可以先选f1a/f1b/f1c,然后系统需要速度快,就选 a。如果f1a/f1c没法满足要求,如压音乐之类的,可以选ump3。如需要重复播报的音频段或者音频间无缝衔接的,可以选择f1x。 1、a、b、e格式: 该格式转换压缩比比较低,速度快,资源小。可用于人声或者背景音乐。该格式特点是音质较差,但占用内存小。 .. image:: 6-7-a.b.e-format.png :alt: "a、b、e格式配置图“ :align: center .. centered:: 图6.7 a、b、e格式配置图 2、f1a、f1b、f1c、f1x格式: 该格式转换压缩比比较高,比较适用人声和音乐,音质一般,其中f1a、f1b、f1c可用于无缝衔接,f1x格式可用于音频拼接。 .. image:: 6-8-f1a-format.png :alt: "f1a、f1b、f1c、f1x格式格式配置图“ :align: center .. centered:: 图6.8 f1a、f1b、f1c、f1x格式格式配置图 3、ump3格式: 该格式有较多的采样率和码率可以选择,可以按情况来压缩音乐或者人声,该格式特点是占用内存大,音质较好。 .. image:: 6-9-ump3-format.png :alt: "ump3格式格式配置图“ :align: center .. centered:: 图6.9 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.即砍掉接近完全静音的部分,值越大能量剪切越多。鼠标悬停在能量阀值输入框无任何操作两秒以上会显示阀值范围。