STM32加密问题:怎样预置一段Flash读保护和清除读保护的程序

电子说

1.2w人已加入

描述

STM32加密问题:怎样预置一段Flash读保护和清除读保护的程序

在STM32加密方案中,为了对芯片进行加密,我们需要加入读保护功能。读保护功能即使未经授权的人无法读取芯片的Flash程序,在STM32芯片中,我们可以通过设置BFB2和BFB1位来对Flash进行保护。BFB2位用于读保护和写保护,其中1表示打开读保护和写保护,0表示关闭读保护和写保护;BFB1位用于写保护,1表示打开写保护,0表示关闭写保护。在本文中,我们将讨论如何预置一段Flash读保护和清除读保护的程序。

预置Flash读保护程序:

我们首先需要在STM32中编写一段Flash读保护程序。该程序主要用于保护芯片的程序不被未经授权的人读取。以下是预置Flash读保护程序的步骤:

1.选择合适的开发环境。建议使用Keil MDK Arm开发环境。

2.创建一个新的工程并定义一个main函数。可以按照以下代码定义main函数:

int main(void) {
//对Flash进行读保护
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_2);
FLASH_OB_Launch();
FLASH_OB_Lock();

//程序执行完毕后重启
NVIC_SystemReset();

while(1);

}

在此代码中,我们使用FLASH_OB_RDPConfig函数来设置读保护级别。OB_RDP_Level_2表示设置为级别2,也就是最高级别的读保护。FLASH_OB_Launch函数用于启动Flash设置操作,然后使用FLASH_OB_Lock函数锁定Flash。

3.编译并下载程序到STM32芯片。完成以上步骤后,芯片现在将受到读保护。

预置Flash清除读保护程序:

如果我们需要更改STM32芯片的Flash保护设置,我们需要先清除读保护。以下是预置Flash清除读保护程序的步骤:

1.创建一个新的工程并定义一个main函数。可以按照以下代码定义main函数:

int main(void) {
//对Flash进行清除读保护
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_0);
FLASH_OB_Launch();
FLASH_OB_Lock();

//程序执行完毕后重启
NVIC_SystemReset();

while(1);

}

在此代码中,我们使用FLASH_OB_RDPConfig函数将读保护级别设置为0,这意味着芯片上的读保护已被禁用。代码还使用FLASH_OB_Launch函数和FLASH_OB_Lock函数锁定Flash。

2.编译并下载程序到STM32芯片。完成以上步骤后,读保护已被禁用。

总结:

通过编写预置Flash读保护和清除读保护程序,我们可以更有效地保障STM32芯片的安全性。需要注意的是,在进行这些操作时,需要仔细检查代码,确保程序正确地执行了读保护和清除读保护动作,并且不会导致芯片的其他问题。
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分