2.10. 第三方数据(认证码)烧写功能
2.10.1. 应用场景
在SDK开发开发过程中,需要用到第三方的数据,如认证码(序列号,三元组),可在烧写目标芯片程序过程中,同时将第三方数据烧写到目标芯片指定位置,既可以实现在SDK开发中对烧写到芯片内第三方数据的利用。
2.10.2. 认证码数据准备
2.10.2.1. 准备要烧写的数据
如认证码数据编辑格式所示,将SDK需要使用到的认证码数据在记事本进行编辑,一行数据代表一个认证码(一个认证码数据长度不能超过127字节,1颗芯片只烧写1个认证码即SDK只能获取到其中一行数据);
编辑好数据后将your_product_key.txt
文件修改后缀名或另存为your_product_key.csv
文件。
2.10.2.2. 待烧写的数据格式转换
待烧写的数据需要进行格式转换,才能被烧写器识别并烧写到目标芯片。
把待转换的.csv文件认证码数据和转换工具 license_to_auth_csv.exe(点击此处下载) 放到同一目录;
同时按住键盘
windows
+R
,输``cmd`,打开命令行界面;如文件存放目录E:\test,进入目录并执行
license_to_auth_csv.exe your_product_key.csv
,最终生成烧写器可识别的数据文件JL_your_product_key.csv
。如认证码数据格式转换和认证码转换后的数据格式所示。
Note
默认情况下,.csv
文件中,每一行的内容是以文本形式写入的。如果每一行的内容是二进制内容的 hex 形式,则可以将 .csv
文件后缀名修改为 .hex
,这样烧录的时候会按二进制形式写入。
例如,对于 .csv
文件中的一行
112233
以文本形式写入的时候,写入的是 “112233” 共 6 个字节,分别是 ‘1’, ‘1’, ‘2’, ‘2’, ‘3’, ‘3’。
对于 .hex
文件中的一行
112233
则会以二进制的形式写入,写入的是 “\x11\x22\x33” 共 3 个字节,分别是 0x11, 0x22, 0x33。
2.10.3. 认证码数据烧写流程
2.10.3.1. 制作支持认证码烧写的fw文件
认证码烧写需要对应的fw烧写文件支持才能实现烧写,制作支持认证码烧写的fw文件分实现步骤如支持认证码烧写的fw文件制作所示:
打开SDK工程下载目录下的
isd_config.ini
文件,在
isd_config.ini
文件 [SYS_CFG_PARAM] 段增加AUTH_CODE=1;
配置项后保存文件;双击运行下载目录下的
download.bat
脚本;重新生成可支持认证码烧写的
jl_isd.fw
文件。
Important
SDK 中的 isd_config.ini
文件,可能是经过预处理工具生成的。
所以如果直接修改 isd_config.ini
后,点击编译(而不是双击运行download.bat
),可能会被预处理工具生成新的 isd_config.ini
文件覆盖。
一些 SDK 可能会通过 isd_config_rule.c
预处理生成 isd_config.ini
。
如果你发现,修改后的 isd_config.ini
,在编译 SDK 后被还原了,请确认是否是这个原因导致的。
如果是这种情况,请直接修改 isd_config_rule.c
。
2.10.3.2. 更新fw烧写程序和认证码文件到烧写器
请参考《烧写器固件版本确认及更新》章节内容相关步骤,打开更新目标芯片程序控制界面,这里选择更新AC897N芯片对应程序进行演示。首先是对《制作支持认证码烧写的fw文件》制作的支持认证码烧写的fw文件进行授权,这里选择无限制模式授权生成jl_isd_AC897N_auth_code\_\[已授权\].fw
文件。然后按如部署fw文件和认证码文件到烧写器所示相关步骤操作:
打开并选择支持认证码烧写并已经授权的fw文件;
打开并选择认证码数据文件(不选择认证码文件仅更新fw文件到烧写器,不带认证码烧写功能);
配置烧写选项中选择是否强制更新认证码(勾选,如芯片已烧有认证码会覆盖烧写一个新的认证码,避免浪费一般不勾选)
点击“部署”,部署成功后有“部署烧写器成功,请重新上电”提示;
部署完毕对烧写器重新上电;
Note
重新烧录程序的时候,不同的选项会影响认证码是否会被擦除:
是否选择认证码文件 |
是否勾选强制更新认证码 |
行为 |
---|---|---|
选择认证码文件 |
未勾选 |
保留芯片已有的认证码(如果有) |
选择认证码文件 |
勾选强制更新 |
总是覆盖认证码 |
未选择 |
未勾选 |
擦除芯片中已有的认证码 |
Important
如果在部署界面上未显示认证码相关的选项,请确认选择了fw文件,且当前选择的fw文件是否指定了需要烧录认证码,详见上一节制作支持认证码烧写的fw文件
Important
如果在部署界面上未显示认证码相关的选项,请确认选择了fw文件,且当前选择的fw文件是否指定了需要烧录认证码,详见上一节制作支持认证码烧写的fw文件
2.10.3.3. 认证码数据烧写到芯片
认证码烧写是按认证码数据文件可用序号递增的形式进行烧写,也就是认证码具有唯一性,烧到每个芯片的认证码都不同。在烧写芯片程序的同时,烧写器会把认证码数据也烧写到目标芯片,因此烧录流程同单一fw文件烧写流程是一致的。
显示屏显示烧写信息部分显示有可用认证码个数,程序烧写成功后对应通道也进度条也显示有烧写成功的认证码序号(与认证码数据文件对应序号一致)。
2.10.4. 导出认证码
2.10.4.1. 查看认证码烧写情况导出
请参考《更新目标芯片程序到烧写器》章节内容相关步骤,打开更新目标芯片程序控制界面,如导出认证码信息所示,
点击导出认证码,弹出保存对话框;
点击保存,保存导出的认证码文件到指定路径;
打开导出的认证码文件,如认证码使用情况所示,已经使用过的认证码,对应的位置标识有“TRUE”表示认证码已被烧写到对应的芯片。
2.10.4.2. 更新烧写程序时导出
如果在认证码未使用完时更新烧写程序, 为了避免认证码丢失会提示还有未使用完的认证码。如导出认证码到指定位置所示,
加载完待更新的目标芯片程序,点击部署,会跳出提示框提示“烧写器中存在认证码,为了避免认证码丢失请先导出”
点击提示框“OK”,选择保存路径点击保存,保存未使用完的认证码文件;如果不保存,那么将无法更新烧写文件。
2.10.5. 注意事项
认证码数据需要使用csv文件方式导入,建议认证码最大长度不超过127bytes。
每台烧写器导入认证码时,请导入合理数量的认证码,并且烧写完所有认证码后再更新烧写文件。
如果确实需要在认证码未烧录完时更换烧写文件,请自行管理好导出的认证码文件。当再次需要烧录之前未烧录完的认证码,为了避免认证码重复烧写或者丢失,请仔细检查导入的认证码文件。
在 SDK 中访问认证码的方式,每个 SDK 可能略有差异。具体咨询可以咨询提供 SDK 的人。