烧录相关

1. 基本信息

1.1 烧录接口

  • 支持 JLink (SWD) 和串口两种方式,串口最大波特率 6Mbps

    • 研发阶段:推荐 JLink 调试,烧录可选 JLink 或串口

    • 生产阶段:推荐串口(成本低、稳定性好)

芯片系列

调试接口

研发烧录接口

生产推荐烧录接口

SF32LB55X

JLink(SWD)

JLink(SWD) / 串口3

串口3

SF32LB58X

JLink(SWD)

JLink(SWD) / 串口4

串口4

SF32LB56X

JLink(SWD)

JLink(SWD) / 串口4

串口4

SF32LB52X

JLink(SWD) / 串口1

串口1

串口1

备注

SF32LB52X系列芯片由于 SWIO和SWCLK两个管脚在上电时默认复用为UART1的TX/RX功能,所以调试可以借助SifliUsartSever工具直接用串口调试,参考 UsartServer使用说明。如果想用JLink(SWD)调试,需要软件代码修改管脚复用后才可使用。

1.2 烧录环境

思澈产品方案提供两种烧录环境:

场景

环境组成

适用阶段

方式 1

PC(Windows)+ 上位机 + 串口板 + 目标板

研发阶段 + 产线生产

方式 2

脱机烧录器 + 目标板

产线生产

研发阶段一般使用方式1,产线生产时可以根据需求选择,后面会分别介绍这两种烧录环境搭建使用方法。

1.3 PC烧录工具

  • 研发工具:Butterfli(支持固件烧录、MAC 写入、FLASH 操作等)

  • 产线工具:Impeller(支持批量烧录、晶体校准、信息写入等)

  • 二次开发支持:提供动态库和底层工具,可自定义上位机

工具

用途

Butterfli.exe

Solution 编译烧录工具,烧录 IMG, 写 MAC/SN 等

Impeller.exe

产线烧录校准工具,16通道,烧录/晶体校准/写 MAC/SN 等

ImgDownUart.exe

供客户二次开发,通过命令行调用,烧录/晶体校准/写 MAC/SN 等

ImgDownUart.dll

供客户二次开发,加载动态库,烧录/晶体校准/写 MAC/SN 等

RambinDown.dll

供客户二次开发,下载ramrun的镜像文件到目标板,主要用于算法及加密KEY烧录

1.4 烧录内容

  • 核心内容:固件 IMG

  • 特殊内容:ATE 校准数据、算法加密 KEY、生产校准数据、MAC/SN 等

  • 注意:EFUSE 数据只能写入 1 次;全擦除会清除普通区域特殊数据,建议用产线工具的 “擦除非产线数据区” 功能

../../_images/burn_003.png

备注

表中红色部分数据是存放在FLASH/EMMC的普通地址区域的,这些在正常烧录固件IMG时只要地址不冲突是不会被擦除的,但是全擦除时是会被擦除掉的。如果想擦除烧录的固件内容又不想擦除这些特殊数据,建议用产线工具Impeller的擦除非产线数据区的功能。除了红色数据部分,存放在EFUSE的数据只能写入1次,OTP或者FLASH普通数据区域支持多次擦除写入。

1.5 烧录注意事项

  • 产线烧录环境为保证稳定性要求bootmode管脚拉高,在平时烧录时,除了SF32LB55X / SF32LB58X系列用串口烧录的场景必须先进入boot模式,其他场景烧录可以不用进入boot模式直接烧录,遇到烧录异常时再进入boot模式排查。

  • 烧录需要保证JLink(SWD)或串口能与板子正常通信,烧录时芯片不能处于睡眠模式。

  • 使用JLink(SWD)烧录时设置的速率建议不要超过5000kbps,使用串口烧录时芯片侧支持最高速率为6Mbps,还需要结合串口板上串口芯片的性能设置。

2. 研发工具Butterfli

研发工具Butterfli主要用于方案开发中做资源、工程编译处理及目标板烧录,具体使用方式参考 Butterfli使用说明

此处简单介绍与烧录相关的功能,包括:

  • 烧录固件IMG;

  • 烧录MAC;

  • FLASH读取擦除等。

../../_images/burn_004.png

2.1 固件及MAC烧录

固件及MAC烧录,需要配置上图中⑥⑦⑧中的配置项:

  • 类型:选择用串口或者JLink作为烧录通道,SF32LB52X系列用串口,其他平台根据需求选择。

  • 端口:烧录用的串口号或者JLink SN。

  • 速率:串口波特率(最大6M,根据串口小板支持情况选择) 或JLink速率(推荐用4000或5000)。

  • 压缩:使用串口烧录时,为提高烧录速率,会对IMG做压缩。

  • 查重:烧录前检查该地址内容是否同烧录文件相同,相同则不烧录。

  • 校验:烧录后是否做校验来保证烧录内容的正确性。

  • 下载前:使用JLink烧录时,是否先发送reset、hold等控制命令。

  • 下载后:烧录完成是否重启运行。

项目编译成功后,会自动刷新IMG列表,如上图中①②③,默认情况下会勾选所有IMG,烧录时也可以根据需求勾选,或者在②的IMG名字右键选择单独烧录对应的IMG。如果要烧录MAC地址,勾选④中的选项,MAC地址烧录后会自动根据自增值更新。

做好上述配置后,点击⑤下载按钮,会启动烧录流程,⑩显示烧录的基本流程及进展,如遇到异常情况,可以在Butterfli工具文件夹下看ImgDownUart_log.txt做进一步分析, 参考 串口烧录常见问题分析方法

2.2 FLASH / EMMC 擦除读取

上图中⑨的内容提供FLASH / SD / EMMC擦除读取的功能,配置项说明如下:

  • 地址:读取或擦除的地址,16进制数据。

  • 长度:读取或擦除的长度,16进制数据。

  • NAND:NAND方案中会把最后总容量的1/32做为坏块保护区使用,默认情况下选择的是WITH BBM,这样读取/擦除不会访问到坏块保护区;如果有需求读取/擦除坏块保护区,选择NO BBM

  • 全擦:会擦除片内FLASH和片外存储器内容,对于EMMC/SD由于容量较大,只擦除前64MB内容。注意52x片内无flash且片外用NAND或EMMC的场景,全擦会擦除MAC、48M校准值等数据;

  • 擦除:会擦除设置的地址和长度部分区域;

  • 读取:弹出的对话框如果选择了保存文件,则会将读出的数据保存在文件中,不设置保存的文件会在工具界面打印出来,在界面打印的场景建议长度不要超过1KB。

3. 产线工具Impeller

产线工具主要用于生产阶段,借助于夹具对PCBA板做固件烧录,48M晶体校准,MAC/SN等信息写入,详细使用方式请参考 Impeller使用说明

4. 脱机烧录环境

脱机烧录器是基于SF32LB551芯片开发的烧录器具,可以通过串口方式对思澈平台进行烧录及48M晶体校准。脱机烧录器使用配套工具ImgStamp将固件及48M晶体校准信息提取出来,然后将转换的包拷贝到SD卡中插入脱机烧录器,即可对目标板进行烧录校准。

脱机烧录器外观如下图所示,具体使用请参考 脱机烧录器使用指南

../../_images/burn_005.png

5. 算法加密KEY烧录方案

算法加密KEY主要是算法提供厂商为确保提供的算法库是在授权情况下使用,使用芯片的UID计算出来的一串加密码,保存在芯片内部FLASH OTP中(无片内FLASH则保存在efuse中),这样设备启动后调用算法时会使用芯片的UID进行验证。

算法加密KEY的烧录是由算法提供厂商负责,一般是在芯片贴片前在指定的产线上进行,思澈公司会提供如下资源协助整个环境搭建:

  • 硬件最简系统设计图,指导烧录底座制作;

  • ram run demo工程,基于该工程可以添加算法加密KEY计算的代码;

  • 下载动态库,1.3节中的RambinDown.dll库,通过串口读取UID、下载rambin;

  • 对于SF32LB55X和SF32LB58X系列芯片,还需要提供rambin加密工具;

备注

上述资料获取方式 [TBD],暂时先联系FAE获取。

整个方案执行流程:

  • 算法提供厂商基于ram run demo工程,在指定的位置添加加密码计算代码,并调用OTP或EFUSE写入API保存,具体参看demo工程使用说明。

  • 生产产根据最小系统设计图制作烧录底座(注意如果是保存在EFUSE,需确认是否有特殊供电);

  • 生产产线根据RambinDown.dll库及说明文档开发上位机工具;

  • 算法提供厂商将生成的固件bin发给生产产线,对芯片写入算法加密KEY;

6. 固件外发烧录方案

有客户为提高生产效率,会在PCBA贴片前将需要烧录在外部存储器的固件外发烧录,然后再将烧录好的存储芯片贴到PCBA板上。

针对客户外发烧录需求,思澈公司会提供如下资源:

  • ImgStamp工具,该工具将同一个存储器上的img拼接为1个bin文件,具体参考工具包里面的使用说明。

  • 如果是外发烧录的存储器是NAND FLASH,还需要提供方案中NAND FLASH坏块保护相关资料,确保坏块替换规则一致。

备注

上述资料获取方式 [TBD],暂时先联系FAE获取。

7. 烧录常见错误排查

此处不包括一个产品或者一颗FLASH首次调试,这种场景需要找硬件和驱动同事处理。

日常遇到的烧录问题,默认是该硬件平台及烧录工具在当前环境或其他环境已经成功烧录过,如果从未成功过归属到首次调试场景,需要硬件及驱动同事处理。对于因环境差异导致烧录异常或者同样的环境烧录不稳定的问题,可按照下述方式排查:

7.2 串口烧录问题排查

  • 确认烧录串口选择正确,如 1.1章节 描述。

  • 确认串口收发通路正常,可参考 进入boot模式 控制板子进入boot模式。SF32LB55x、SF32LB56x、SF32LB58x在boot模式下,可以用串口工具发送help指令如果有反馈信息输出说明串口通路正常;SF32LB52x板子进入boot模式则说明串口通路正常。

  • 异常情况下,进入boot模式进行验证。

  • 串口烧录会有log保存,Butterfli.exe工具log是在工具目录下的 ImgDownUart_log.txt,Impeller.exe工具log是在工具路径下 log\channel\日期*.txt,参考 串口烧录常见问题分析方法