stm32 读写包含
开启方式
- STM32 ST-LINK Utility软件 >>> Target >>> Opintion Bytes
- 代码开启,要注意解除会擦除代码,flash被锁了可以进SRAM解除,或者st-link解除
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
FLASH_Unlock();//解锁flash
FLASH_ReadOutProtection(DISABLE);//解除读保护
一些尝试
- 没开启都保护,SRAM可以读取到flash,开启读保护SRAM无法读取flash
- 从SRAM启动,修改PC和SP值,执行flash代码,没有开启读保护可以,开启了无法运行
- 从SRAM往flash尾部写一段代码,然后修改0x08000000到0x08000007的值,指向新代码段,开启读保护一样可以成功读取flash,但是在SRAM中修改flash时,需要擦除页,这样首页的代码是丢失的。
- 写flash可以不先擦除,但是stm的flash 写0就1变0,写1就是没有操作,擦除就全变1,因此,不擦除写操作会有些不正确。
stm32可以开启读保护和写保护,可以代码开启,也可以下载软件开启,尝试读取stm32开启了读保护后,flash的代码,以下是一些结论的记录。