[STM32F1] J-LINK V8选用Secure ship加密时,芯片无法运行

[复制链接]
1549|11
 楼主| yjsmcu 发表于 2018-9-5 08:23 | 显示全部楼层 |阅读模式
硬件为STM32F103VCT6,使用J-link V8在线烧写。

设备支持远程在线升级功能,其烧写文件由IAP.hex和APP.hex文件合并而成。

不勾选options->project settings->production->Secure ship时,设备能正常运行,反正则不能运行。

该加密方式在之前的项目STM32F207上面执行是正常的,不知为何在F103上却不行。
磨砂 发表于 2018-9-5 08:46 | 显示全部楼层
这个问题我没有遇到过 看看别人懂不懂
 楼主| yjsmcu 发表于 2018-9-5 14:11 | 显示全部楼层
没有碰到过么?
598330983 发表于 2018-9-5 19:25 | 显示全部楼层
是不是那个不支持加密。
dongnanxibei 发表于 2018-9-5 20:36 | 显示全部楼层
没勾选过。这个是设置啥呢
dongnanxibei 发表于 2018-9-5 20:39 | 显示全部楼层
ST-LINK呢?
捉虫天师 发表于 2018-9-6 20:49 | 显示全部楼层
怎么解决?
小灵通2018 发表于 2018-9-6 21:40 | 显示全部楼层
这个加密有啥用。
chenqiang10 发表于 2018-9-6 22:54 | 显示全部楼层
还是真没见过加密情况
 楼主| yjsmcu 发表于 2018-9-11 13:53 | 显示全部楼层
问题已经找到:
前提:Secure ship勾选烧写时,设备需要断电重启才能有效(单片机上的3.3V必须耗光)。
原因:设备断电的时间不够长导致,当设备断电后,3.3V会保持大概4S左右,而之前测试时都是断电后立马就上电,所以才会出问题。

题外话:
我的设备是支持IAP远程升级功能的,如果在IAP程序或是APP程序中加入下面的加密语句
if(FLASH_GetReadOutProtectionStatus() == RESET)
  {
    FLASH_Unlock();//This MUST done first
    FLASH_ReadOutProtection(ENABLE);
    FLASH_Lock();
  }
,则会影响到升级功能,会报HardFault_Handler错误,具体什么原因没有去查明,所以才有了Secure ship勾选来加密的方案。
天灵灵地灵灵 发表于 2018-9-11 19:05 | 显示全部楼层
原来设备要彻底断电一次啊。
天灵灵地灵灵 发表于 2018-9-11 19:05 | 显示全部楼层
有没有办法直接自动重启。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部