STM 32如何实现程序自加密
在嵌入式應用開發中,應用開發完成后往往需要對芯片中的程序進行加密處理,用以保護程序安全(不至被競爭對手從芯片把程序固件考走),本節將給大學介紹一個如何實現程序自動給芯片加密功能。下面給大家介紹一個STM32 用程序給MCU加密碼的方法:
?
標準庫方式:
// 芯片自加密
void FLashProtectCheck(void)
{
?? ?FLASH_Unlock();?? ?// 解鎖
?? ?FLASH_UnlockBank1();
?? ?
?? ?
?? ?if( RESET == ?FLASH_GetReadOutProtectionStatus() )
?? ?{
?? ??? ?while( FLASH_COMPLETE != FLASH_ReadOutProtection(ENABLE) );
?? ??? ?// NVIC_SystemReset();?
?? ?}
?? ?
?? ?FLASH_LockBank1();
?? ?FLASH_Lock(); ?// 上鎖
}
?
HAL 庫方式:
// 芯片自加密
void FLashProtectCheck(void)
{
?? ?FLASH_OBProgramInitTypeDef OBInit;
?? ?
?? ?HAL_FLASH_Unlock(); ?? ?// 解鎖
?? ?HAL_FLASH_OB_Unlock();
?? ?
? HAL_FLASHEx_OBGetConfig( &OBInit );
?? ?if( OBInit.RDPLevel != ?OB_RDP_LEVEL_1 )
?? ?{
?? ??? ?OBInit.OptionType = OPTIONBYTE_RDP;
?? ??? ?OBInit.RDPLevel = OB_RDP_LEVEL_1;
?? ??? ?HAL_FLASHEx_OBProgram( &OBInit );
?? ?}
?? ?
?? ?HAL_FLASH_OB_Lock();
?? ?HAL_FLASH_Lock(); // 上鎖
}
上面的程序只開啟了FLASH的讀保護,這樣操作后,用外部的工具,如JLINK,STLINK等工具就無法讀取芯片的固件了!!
?
?
總結
以上是生活随笔為你收集整理的STM 32如何实现程序自加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 进阶教程 13 – FLAS
- 下一篇: STM32 进阶教程 14 - 程序加密