本帖最后由 lxz600408 于 2021-8-7 22:32 编辑
ULINK2,JLINK,MM32-LINK都可以,最好还是用灵动的。我最初用ULINK2在Keil uVision5中下载0010程序时,在程序中加了如下函数,以实现读保护
////////////////////////////////////////////////////////////////////////////////
/// @brief This function is portect Full main Flash enable.
/// @NOTE None.
/// @param None.
/// @retval ret.
////////////////////////////////////////////////////////////////////////////////
//
s32 FLASH_EnableFullMainFlashReadOutProtect(void)
{
FLASH_Status status = FLASH_COMPLETE;
s32 ret = 0;
FLASH_OPTB_Enable(); //启用以编程闪存选项字节
status = FLASH_EraseOptionBytes();//擦除闪存选项字节
if (status != FLASH_COMPLETE)
ret = 1;
status = FLASH_ProgramOptionHalfWord(0x1ffff800,0x807F);
if (status != FLASH_COMPLETE)
ret = 1;
return ret;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief This function is check the read protect status.
/// @NOTE None.
/// @param None.
/// @retval protectstatus.
////////////////////////////////////////////////////////////////////////////////
void CheckReadProtect(void) //此功能用于检查读取保护状态
{
if ((FLASH->OBR & 0x02) == (u32)RESET) {
FLASH_Unlock();
FLASH_EnableFullMainFlashReadOutProtect();
FLASH_Lock();
}
}
|