打印

各位用过的兄弟:STM32生产时怎么设置保密性?

[复制链接]
6465|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题,怎样设置以防止软件被读出??
沙发
香水城| | 2008-8-4 14:47 | 只看该作者

在STM32的Flash中有读保护机制,启动读保护机制即可

这种保护方式提供更先进的保护,不但关闭了调试接口,而且还禁止类似病毒的窃密方式。请看以前两个相关的帖子。

STM32对内部Flash的内容有专门的保护措施

STM32加密性能?

使用特权

评论回复
板凳
walnutcy|  楼主 | 2008-8-4 15:38 | 只看该作者

谢谢,再问:

是直接调用:

FLASH_EnableWriteProtection(FLASH_WRProt_AllPages);
FLASH_ReadOutProtection(ENABLE);

就可以了吗?

这样写在软件里,是不是相当于每次重上电启动都会执行一次?没有固化进去?

或是用别的设置方式固化生产的??请指教。

使用特权

评论回复
地板
香水城| | 2008-8-4 15:51 | 只看该作者

在IAP操作时,才需要使用这些调用,否则应该在烧写程序时

ST的ISP Demo中用相应的功能。

使用特权

评论回复
5
yangbo_zd| | 2008-8-4 17:31 | 只看该作者

好像不行啊

直接调用:

FLASH_EnableWriteProtection(FLASH_WRProt_AllPages);
FLASH_ReadOutProtection(ENABLE); 

好像不能加密啊,

难道只能用ISP Demo?

使用特权

评论回复
6
香水城| | 2008-8-4 17:47 | 只看该作者

设置了读保护之后必须掉电再上电才能起作用

使用特权

评论回复
7
yangbo_zd| | 2008-8-4 18:27 | 只看该作者

到底应该怎么样做?

我在程序中调用
FLASH_EnableWriteProtection(FLASH_WRProt_AllPages);
FLASH_ReadOutProtection(ENABLE); 

然后拔下仿真器,断电、再上电,发现还有没有保护啊?

使用特权

评论回复
8
walnutcy|  楼主 | 2008-8-4 20:52 | 只看该作者

按香帅的意思,应该只有用ISP DEMO才可以,

使用特权

评论回复
9
香水城| | 2008-8-4 21:12 | 只看该作者

如果调用函数不能起作用,请查看函数返回的状态是什么

例如:FLASH_ReadOutProtection()返回的状态有如下一些状态

FLASH_BUSY, FLASH_ERROR_PG, FLASH_ERROR_WRP, FLASH_COMPLETE,FLASH_TIMEOUT

使用特权

评论回复
10
starm| | 2008-8-4 21:16 | 只看该作者

RDP_ENABLE 例子

我这样用, 没有问题。

#define RDP_ENABLE -- to lock
//#define RDP_DISABLE -- to unlock 

void main(void)
{
  
  SetSysClockPLL();
  NVIC_Configuration();

#ifdef RDP_ENABLE
  FLASH_Unlock();
  FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);    
  
  if ( FLASH_GetReadOutProtectionStatus() == RESET )
    FLASH_ReadOutProtection(ENABLE);      //Run in Flash
#endif
  
#ifdef RDP_DISABLE
  FLASH_Unlock();
  FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);    
  if ( FLASH_GetReadOutProtectionStatus() == SET )
    FLASH_ReadOutProtection(DISABLE);     //Run in RAM
#endif

  while (1)
  {
  }

}

使用特权

评论回复
11
george3023| | 2010-5-12 19:42 | 只看该作者
我按照楼上兄弟的做法,打开RDP_ENABLE,现在无法通过JTAG口下载程序了,也不能仿真,那我这块片子岂不是废了,这样也没有太大意义啊,那我的程序如何升级...

加密.JPG (10.3 KB )

加密.JPG

使用特权

评论回复
12
george3023| | 2010-5-12 20:35 | 只看该作者
刚试了下,用ST提供的Flash Loader Demo可以解除保护,重新下载程序,也就是加上10楼的保护代码后可以防止别人通过JTAG口进行读写操作,感谢10楼兄弟提供的例子。

使用特权

评论回复
13
mcuisp| | 2010-5-12 22:57 | 只看该作者
除了我自己的EP868,迄今为止见过一位兄弟针对STM32的最强加密,呵呵。
RDP、反拷贝、、、、、我提供的EP868各个环节、各个功能都用上了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

1443

帖子

5

粉丝