STM32之flash(读写保护)加密 最近学到一个比较有用的一个知识点就是对于flash的一个加密,可以通过更改FLASH_OBProgramInitTypeDef这个结构体里面的RDPLevel来对flash进行一个锁定,使其内部的一些东西不能被更改。 - //设置FLASH加密
- void set_flash_protection(void)
- {
- FLASH_OBProgramInitTypeDef flash_ob_init;
- HAL_FLASHEx_OBGetConfig(&flash_ob_init);
- if(OB_RDP_LEVEL_0 == flash_ob_init.RDPLevel)
- {
- //printf("Flash read protection not set, protection.....\n");
- HAL_FLASH_Unlock();
- HAL_FLASH_OB_Unlock();
- flash_ob_init.RDPLevel = OB_RDP_LEVEL_1; //设成1时可以回退到0,设成2时即为加密(保护状态)
- //printf("protection done\n");
- HAL_FLASH_OB_Launch();
- HAL_FLASH_OB_Lock();
- HAL_FLASH_Lock();
- }
- }
复制代码 此做法可以针对竞争方将固件从芯片进行拷贝,能够有效的保护自己的知识产权。 文章出处: 嵌入式谢
|