2. AW30N 下载目录 & 烧写说明

AW30N编译完成后,会在下载目录生成代码文件,并与资源文件整合形成烧录文件,通过CodeBlocks调用强制下载工具烧写到芯片系统FLASH中;
同时我司有许多工具支持压缩转换和打包音频,将资源文件下载到系统或外挂FLASH中。

下载目录指的是:app/app/post_build路径下的文件夹。

dowload_bat.c 文件介绍:
  1. 指定app大小 -app

  2. 添加资源文件 -res

  3. 擦除flash部分区域或所有区域 -format

  4. 添加key文件 -key

  5. 外挂资源flash下载

isd_config.ini文件介绍:
  1. 系统flash SPI配置 -SPI

  2. 外挂资源flash下载引脚配置 -EX_FLASH & EX_FLASH_IO

  3. 开辟自定义空间配置

外挂资源flash下载介绍:
  1. 外挂资源flash下载

  2. 外挂资源flash下载引脚配置 -EX_FLASH & EX_FLASH_IO


2.1. 工具文档链接


2.2. 下载目录介绍

AW30N下载目录位于apppost_buildaw30,一共分为三种文件:

  • 生产相关文件:

    • app.bin:编译生成的代码文件

    • jl_isd.bin:FLASH烧录文件,包含代码文件和资源文件

    • jl_isd.fw:用于我司烧写器批量生产的FLASH烧录文件

  • 下载工具:

    • download_bat.c:下载批处理文件,编译时会生成download.bat文件

    • isd_config_ini.c:工程配置文件,编译时会生成isd_config.ini文件

    • 下载目录工具更新.jlxproj:该工具可在线更新下载目录的exe工具

本小节着重介绍下载工具的download_bat.c以及isd_config.ini文件

2.2.1. dowload_bat.c 文件介绍

download.bat脚本由download_bat.c文件编译生成,该脚本支持把代码和资源文件以及部分配置烧写到系统FLASH,详细的功能说明图2.1.1所示,具体参数如下:

  • -app app.bin:

    该指令会将代码文件app.bin转换成用于FLASH烧写的文件jl_isd.bin。

  • -app app.bin 0x20000:

    该指令在app.bin后写上数值后,就指定app.bin占用的最小字节大小,如果app.bin的体积小于此数值,那么也会占用此数值的大小。
    用户可根据实际需求,修改或者删除掉这个数值大小。
  • -res xxx:

    该指令会把 -res 后面指定的资源文件烧写进入系统FLASH,不同资源文件以空格隔开。

  • -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文件。

"dowload_bat.c介绍“

download_bat.c文件说明

2.2.1.1. 外挂资源flash下载

download_bat.c支持将资源文件下载到外挂资源flash中,不同芯片配置参数不同,其中:

一、AW30N下载外挂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中。

详细流程可见 通过二次打包将文件下载至外挂flash流程


2.2.2. isd_config.ini文件介绍

isd_config.ini配置文件由isd_config_ini.c文件编译生成,该配置文件可以配置程序中与烧写、启动的相关参数。

2.2.2.1. EXTRA_CFG_PARAM

  • PID:工程标识,不可超过16字节;

  • VID:工程版本号,用于升级判断;

  • NEED_RESERVED_4K:4K保留区配置,详情请看《第十九章RESERVED_AREA区域说明》;

    1:NEED_RESERVED_4K = YES:保留4K配置区;
    2:NEED_RESERVED_4K = NO:不保留4K配置区;
    
  • SPECIAL_OPT:选择是否实时根据FLASH支持的对齐方式组织文件

    1:SPECIAL_OPT = 0:根据下载时所连样机FLASH的对齐方式组织文件,只生成1份4K或者256对齐的烧录文件;
    2:SPECIAL_OPT 不存在:生成多份不同对齐方式的烧录文件;
    

备注

烧录文件在组织过程中支持按4K或者256字节对齐;若用256字节对齐的烧录文件,去生产最小擦除单位为4K字节的芯片系统FLASH,会出现开不了机的问题!!!
注释该配置会关闭该功能,默认生成多份不同对齐方式的文件,由烧写器判断烧写哪一份。

  • FORCE_4K_ALIGN:选择是否强制只生成1份4K字节对齐的FLASH烧录文件

    注:如果方案需要在线升级,建议使用强制4K对齐,SDK默认只生成1份4K对齐的烧录文件!
    
  • FLASH_SIZE:指定FLASH大小,用于生成指定大小的烧录文件

    1:0x800000:按照8M字节的FLASH的空间生成烧录文件,如果在线下载时发现实际的FLASH与指定的大小不匹配,则会报错;
    

备注

在没有直接指定FLASH大小的情况下,最后生成的下载文件会以市面FLASH能支持的最小文件的形式组织; 例如::

1:当所有文件小于256K字节时,系统会以总大小为256K为标准为录音分配剩余空间;
2:当所有文件大小等于300K时,系统会以512K为标准为录音分配剩余空间;

2.2.2.2. SYS_CFG_PARAM

  • SPI:芯片系统FLASH的SPI配置,默认为2_3_0_0 (data_clk_mode_port):

    *注意:对于主频速度要求高的方案,尽量使用两线/四线模式,有利于系统稳定性和功耗控制。*
    
    0:0_3_0_0:系统FLASH使用单线数据模式;
    2:2_3_0_0:系统FLASH使用双线数据模式;
    4:4_3_0_0:系统FLASH使用四线数据模式;
    
"系统flash SPI配置说明“

系统flash SPI配置说明

"系统flash 2线/1线原理图“

系统flash 2线/1线原理图

  • EX_FLASH:外挂flash烧写配置;

    EX_FLASH=PB00_1A_NULL;
    1:PB00_1A_NULL:配置顺序为“CS-SPI端口-电源口”;
    2:用VDDIO供电电源口参数为NULL,使用时配置CS脚I/O即可;
    
  • EX_FLASH_IO:外挂flash烧写引脚配置:

    EX_FLASH_IO=2_PB01_PB02_PB03_NULL_NULL;
    配置顺序为“数据宽度-CLK-DO-DI-D2-D3”;
    
    1:单线模式时 数据宽度配置 为 0;D2、D3口为NULL;
    2:双线模式时 数据宽度配置 为 2;D2、D3口为NULL;
    3:四线模式时 数据宽度配置 为 4,需要配置D2、D3口;
    4:该配置在isd_config_ini.c中使用了宏拼接,修改数据宽度时需要修改拼接的第一个参数
    
  • LATCH_IO:升级时需要保持住IO状态配置(默认不打开该功能):

    LATCH_IO = PA10&1_PA11&1;
    格式为 PA10&1, &0/1表示输出低或输出高(最多可设置4个IO)
    

2.2.2.3. MASTER_CONFIG_OPTIONS

  • MASKROM_SOFTWARE_USE:芯片进入专家模式配置是否烧写快速启动;(默认不打开该功能,即芯片不烧写快速启动):

    MASKROM_SOFTWARE_USE=TRUE;
    

2.2.2.4. BURNER_CFG

  • LVD:芯片低电复位电压默认档位选择,为烧写器配置项;该档位仅影响烧写器默认选择的档位;

  • 用户仍可自行修改烧写器上的LVD档位进行烧写;

  • 如无该配置项,则烧写器默认选择最高档位2.5v;该配置项为一次性烧写,请慎重选择!

    可选档位:
        1.8v;
        1.9v;
        2.0v;
        2.1v;
        2.2v;
        2.3v;
        2.4v;
        2.5v;
    

2.2.2.5. RESERVED_CONFIG

  • XXXX_ADR:区域起始地址

    ① 0:VM区域起始位置;
    ② AUTO:由工具自动分配起始地址;
    
  • XXXX_LEN:区域大小

  • XXXX_OPT:区域操作属性

    ① 0:下载代码时擦除指定区域;
    ② 1:下载代码时不操作指定区域;
    ③ 2:下载代码时给指定区域加上保护;
    

备注

1:VM区域的起始地址为0,且实际大小为系统剩余的空间,扩展录音空间可查看(一)中FLASH_SIZE配置的说明;
2:EEPROM区域一般用于代码中的VM断电记忆存储,区域大小不少于8K且为4K倍数,否则VM初始化会失败;
3:BTIF区域为蓝牙保存配置区域;
4:EXIF区域为usb-dongle-从机升级保存蓝牙信息区域;
5:用户可自行定义其他空间区域;*

2.3. 多算法授权简单介绍

使用该功能前请咨询杰理助理;

多算法授权,指的是:在一个SDK中,使用了算法提供商的库函数,而算法提供商可以控制芯片的烧录次数。

(一)使用场景
  1. 算法提供商想要控制生产商使用算法库的次数(即:算法提供商按生产的样机收取费用)。

具体详细说明可以点击下方链接:

2.4. 派生密钥2.0简单介绍

AW30N 使用派生密钥2.0(rkey / lkey)的KEY方案。
该密钥系统目的是 为了方便代理商为多家客户供货而设计。
该密钥系统原理为:
代理商手握一个rkey,以此为母key,可以生成多个不同的子key(lkey);
代理商为下游不同客户分配不同的lkey,不同客户就能得到不同的lkey来加密flash,从而确保了芯片程序加密的安全性。
"Lkey添加到工程进行加密“ :align: center

Lkey添加到工程进行加密

备注

1:rkey不是完整的密匙,不能直接用于加密,其派生出的lkey才是可用于加密的完整密钥。
2:芯片flash可以先烧录rkey,再进一步烧录lkey;或者可以直接烧录lkey;但是不可以烧录lkey后,再去烧录rkey。(即该过程为不可逆)。
3:AW30N 使用的是派生密钥2.0,不可混用其他派生密钥版本。

具体详细说明可以点击下方链接:

2.5. 开发工具介绍

AW30N支持的开发工具如下:

  • 资源打包工具:能将多个文件打包成一个文件;

  • 音频文件转换工具:能将音频文件转换为系统能支持的格式;

  • MIDI转换工具:能将midi文件转换为系统能支持的格式以及制作midi音色库;

  • MIO工具:能制作波形随音频律动的MIO文件;

  • SYD系统制作工具:能格式化SD卡/U盘并挂载我司SYD文件系统的工具;

  • 杰理科技BLE Profile制作工具:制作标准GATT profile的工具;

以上工具可在gitee开源网站上或询问我司深圳办人员获取,部分工具内含说明文档; 本小节将介绍 文件打包工具 和 音频转换工具 如何使用;

2.5.1. SDK开发工具下载


2.5.2. 资源打包工具

下载到FLASH的资源文件需要经过资源打包工具处理之后才能使用,打包工具包括:new_packres.bat、packres.exe和pRFiles.exe;
其中new_packres.bat支持的命令详情请看同目录下的readme.md文件。

2.5.2.1. 少量文件直接打包

1、将需要打包的文件放在工具根目录下,打开new_packres.bat文件,指定需要打包的文件以及输出的文件夹名;

"new_packres.bat资源打包批处理说明“

new_packres.bat资源打包批处理说明


2、保存new_packres.bat文件,并双击该批处理,工具根目录下生成打包文件夹表示打包成功;

"new_packres.bat运行结果图“

new_packres.bat运行结果图


2.5.2.2. 通过二次打包将文件下载至外挂flash流程

1、将音频文件转换之后初次打包(具体打包参考:少量文件直接打包);

命令:packres.exe -n test_dir -o dir_song dx.f1b -normal

"初次打包流程图“

初次打包流程图


2、二次打包;

命令:packres.exe -n res -o dir_song2_ext dir_song 0 -normal

"二次打包流程图“

二次打包流程图


3、外挂flash的部分配置;

"外挂flash配置图“

外挂flash配置图


4、正常编译下载后,可正常播放


2.5.2.3. 大量文件通过pRFiles.exe批量打包

1、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例;

"pRFiles.exe打包工具操作图“

pRFiles.exe打包工具操作图


2、将大量文件放在文件夹中,打开pRFiles.exe,如下图所示进行操作,保存为LST文件,以保存为TEST.LST为例;

"new_packres.bat资源打包批处理说明“

new_packres.bat资源打包批处理说明


3、保存new_packres.bat文件,把资源文件全部放到工具根目录下,并双击该批处理,工具根目录下生成打包文件夹表示打包成功;

"new_packres.bat运行结果图“

new_packres.bat运行结果图


2.5.3. 音频转换工具

音频文件转换工具是我司用于压缩转换WAV、MP3和WMA音频的工具,可将音频转换成我司的A(B、E)格式、F1A(F1B、F1C)格式、F1X格式以及UMP3格式;

2.5.3.1. 音频转换步骤

1、添加需要转换的音频文件;

2、选择输出音频的保存目录;

3、选择需要转换的格式、采样率、码率以及其他选项;

4、点击开始转换;

"音频文件转换步骤“

音频文件转换步骤

2.5.3.2. 目标格式选择

转换工具可生成三种类型文件:

第一类*.a、*.b、*.e;
第二类*.f1a、*.f1b、*f1c;
第三类*.ump3。

每种类型都有采样率或码率供自由选择,一般采样率高了对应选择的码率也会高些,采样率跟码率都影响音质。

类型格式选择:选哪个格式,一般考虑音质、设备资源以及系统运行速度。
例如需要音质高而flash大小够用,系统资源够跑,就选用高压缩比的类型。
一般要低码率的话,可以先选f1a/f1b/f1c,然后系统需要速度快,就选 a。
如果f1a/f1c没法满足要求,如压音乐之类的,可以选ump3。
如需要重复播报的音频段或者音频间无缝衔接的,可以选择f1x。

1、a、b、e格式:

该格式转换压缩比比较低,速度快,资源小。可用于人声或者背景音乐。
该格式特点是音质较差,但占用内存小。
"a、b、e格式配置图“

a、b、e格式配置图


2、f1a、f1b、f1c、f1x格式:

该格式转换压缩比比较高,比较适用人声和音乐,音质一般;
其中f1a、f1b、f1c可用于无缝衔接,f1x格式可用于音频拼接。
"f1a、f1b、f1c、f1x格式格式配置图“

f1a、f1b、f1c、f1x格式格式配置图


3、ump3格式:

该格式有较多的采样率和码率可以选择,可以按情况来压缩音乐或者人声;
该格式特点是占用内存大,音质较好。
"ump3格式格式配置图“

ump3格式格式配置图


2.5.3.3. 其他参数说明

  1. f1a / f1b / f1c无缝衔接转换和提高小文件压缩比

    如果勾选是否无缝循环,则可以首尾无缝对接循环重复播放同一个音频。其能量转换阈值范围0到65536,代表0到1,默认参数配成10,即砍掉接近完全静音的部分。
    运算过程中的音频也是归一化到0到1来计算的。
    所以实际应用中,调整的阈值范围一般是选取0到0.1,约0到6000。可以设成2048。 试下循环效果。
    如果勾选循环附加预处理,会对f1a/f1b/f1c文件再做多一次处理,分析计算文件前后的帧叠位置,计算前后的砍帧个数,然后对文件前后做一次前后自适应砍帧的动作。
    如果勾选提高小文件压缩比,会使压缩后的目标文件码率较为接近目标码率。f1a是cbr的编码。需要长时间来平均来达到接近目标码率。
    如果文件都很小的时候,压出来的目标文件码率可能会距离目标码率差距较大。勾上提高小文件压缩比,会接近些。

备注

注:建议无缝循环的时候,只勾选是否无缝循环选项,听得出卡顿的文件,再勾选循环附加预处理,因为这个步骤的砍帧可能会出现有些文件前后会被砍比较多的情况!


  1. f1x制作说明
    制作f1x音频时,需要选择音频头字节数和头尾去除帧数。
    音频头字节数用于文件寻址,与原始转换文件大小有关。
    头字节数为3时,生成的f1x文件超过16M字节会报错,文件较多时可节约空间;头字节数为4时,则无限制。
    头尾去除帧数用于选择去除的f1x内各个音频文件头尾的音频数据包数,可以调整衔接效果。
    但不可完全依赖该功能,对于衔接效果不理想的音频,需要从音源文件去改善。
  2. ump3的能量阈值
    ump3格式有能量阀值选项,勾选开关便可以设置阀值,音频前后端会根据这个值砍掉一些低能量的音频,使播放开始和结束时更柔和。
    阀值范围:0-2147483648,默认参数配成65535。即砍掉接近完全静音的部分,值越大能量剪切越多。
    鼠标悬停在能量阀值输入框无任何操作两秒以上会显示阀值范围。