本帖最后由 皈依 于 2017-3-27 10:34 编辑
专有代码读保护功能【PC-ROP】测试——测试完就报废系列
1,开箱晒照和资料汇总
2,所需驱动下载简介
3,开发环境搭建与功能小试
4,MDK5环境CoreMark移植与测试
stm32f722有PCROP专有代码保护功能,这个功能简单介绍一下:
PCROP 为Proprietary code readout protection 的缩写,也就是说这是一个专有代码读出保护的功能。与RDP 对整片Flash读保护不同的是,它只是针对Flash 的某些特定区域进行代码的读写保护。所以它可以被用来保护一些IP代码,方便进行二次开发。它存在于多个STM32系列中,比如STM32F4,STM32L4,STM32F7等。
另外这是官网关于pcrop的介绍:
同时在介绍中也说了有两个配套的代码,保护n和保护n+1,具体的地址为:
http://www.st.com/content/st_com ... e/x-cube-pcrop.html
该地址上有关于pcrop的相关资料,具体的代码由于太大需要大家自行去下载,而文档我会在最后面分享出来,有需要的小伙伴可以下载进行了解。
pcrop该功能的使用是非常简单的,只需要设置FLASH_OPTCR2 register就可以了,具体的方法如下:
可以看到该设置是非常简单的。
另外我们回到官方代码,这部分代码是对parop的操作,
而在主函数这里可以看到,如果parop初始化成功 LED1会亮,失败的话LED2会亮,
另外我们再看第二个工程:
配合我们的板子来说一下具体的现象,烧录完代码之后刚上电,是在LED2蓝色灯闪烁的while里面跑,
当按下user按键的时候,会继续往前跑,如果失败还是蓝色灯闪烁,如果成功的话是绿色灯LED1闪烁,具体现象如下:
然后我们打开st的软件Utility 点击Target——connect,然后就连接到了我们的722的板子,然后就可以看到下面的memory中的数据:
然后在设置中,我按照官网的指示来了。。。但是感觉这个功能好厉害,就手贱把所有的flash都勾上了。。。。。。
然后悲剧的一幕就出现了。。。软件直接连接不到目标722的板子了。。。然后根据软件提示选择了:
选择了如上模式,然后就可以连接上了。。。但是悲催的一幕是:
可以连上板子,但是软件提示无法读取memory。。。果然,这个功能就是厉害!
然后我的板子再也烧不进去代码了。。。
如下图:
好吧。。。通过我的测试大家都知道了。。。pcrop代码保护功能是有范围的,大家一定要注意啊~~~~
好了,这个功能就测试到这里。。。我去找解救办法了。。。救命啊啊啊啊啊啊啊!!!!!
|