189***041
我们的目的是通过加密签名,保护flash里面的firmware不被滥用,或者有办法直接关闭SWD也可以。
但是做了很多的尝试都不成功,亟需官方技术支持,或者成功过的小伙伴支个招。
我们操作的步骤如下,参照官方文档中的加密签名相关介绍,做相关的加密签名操作:
- 已经生成了Efuse信息(打开encrypt,打开SWD)
- 并将Encrypt_key_info.bin/Mode_control.bin烧录到片子了
- bootloader fw中,宏BOOTLOADER_SIGN_ENABLE设成了1,BOOTLOADER_PUBLIC_KEY_HASH也设成了Public_key_hash.txt中的hash值
- 使用上面的product.json对bootloader fw进行加密签名,生成boot_fw_encryptandsign.bin,烧录到flash
flash layout上的确能看到bootloader,但是就是启动不起来:

bootloader里面是配置了UART打印,但是收不到任何打印;而且通过GDB调试也链接不上。怀疑是加密签名后,bootloader起不来了,但是不清楚是什么原因导致的。
另外,还有一个很不能理解的逻辑。烧录efuse的时候,如果选择关闭SWD,烧录efuse后会将整个flash擦除。官方文档说可以通过dfu升级,但是bootloader都被擦掉了,还怎么DFU呢?
有没有官方的技术支持可以帮解释一下!!
185***527

Hi 你好,
1. 无法启动的问题,无法直接判断,请确认你固件加签加密所用的加密密钥和加签密钥是不是和芯片上的一致,如是不是每次加密加签固件是都是选择了Using Random Number,导致每次固件用的密钥不一致等等
2. 所谓的DFU也包括ISP烧录,对芯片使能了加密后,可以通过UART方式烧录
打开微信,使用“扫一扫”即可关注