STM8 ROP编程

来源:互联网 发布:音量增大软件 编辑:程序博客网 时间:2024/05/16 04:16
FLASH->CR1 = FLASH_CR1_RESET_VALUE;FLASH->CR2 = FLASH_CR2_RESET_VALUE;FLASH->NCR2 = FLASH_NCR2_RESET_VALUE;FLASH->IAPSR &= (uint8_t)(~FLASH_IAPSR_DUL);FLASH->IAPSR &= (uint8_t)(~FLASH_IAPSR_PUL);(void) FLASH->IAPSR; /* Reading of this register causes the clearing of status flags */#ifdef USE_ROP_ENABLE//Flash Data区解密FLASH->DUKR = FLASH_RASS_KEY2; /* Warning: keys are reversed on data memory !!! */FLASH->DUKR = FLASH_RASS_KEY1;//编写选项字ROP/* Enable write access to option bytes */FLASH->CR2 |= FLASH_CR2_OPT;FLASH->NCR2 &= (uint8_t)(~FLASH_NCR2_NOPT);*((NEAR uint8_t*)0x4800) = 0xAA;//ROP的位写while((uint8_t)(FLASH->IAPSR & (uint8_t)(FLASH_IAPSR_EOP |  FLASH_IAPSR_WR_PG_DIS)) == 0); /* Disable write access to option bytes */FLASH->CR2 &= (uint8_t)(~FLASH_CR2_OPT);FLASH->NCR2 |= FLASH_NCR2_NOPT;//FLASH_ProgramOptionByte(0x4800, 0x00);//Flash Data区加密FLASH->IAPSR &= (uint8_t)FLASH_MEMTYPE_DATA;#endif

原创粉丝点击