Art-Pi学习笔记9:如何为Art-pi的内部flash设置读保护

如何为Art-pi的内部flash设置读保护。html

通常在项目开完毕以后,最终烧录固件的时候都会将stm32设置为读保护。过去一直使用STM32 ST-LINK Utility配合st-link来完成这个步骤。此次用到art-pi上,不灵了。app

具体表现以下:
完成固件下载
image.png工具

配置option bytes,结果弹出设置失败
image.png
image.pngspa

原来art-pi上使用的是Stm32H7系列的芯片,属于比较新的系列了。STM32 ST-LINK Utility算是比较久远的一款下载工具了,如今要与时俱进,使用新的工具了,就是STM32CubeProgrammer了。看看这界面,一看就是高大上。
image.pnghtm

具体怎么弄呢?
双击打开工具以后,能够看到右上角有选择链接的硬件设备,这个工具很强大,能够支持多种硬件烧录设备,这里选研究st-link。因此选择了st-link而后点击connect。
image.pngrem

因为刚才烧录以后设置读保护是失败的,因此此时芯片是处于没有保护的状态,所以链接成功以后会自动读取到内部flash的内容。
image.pngget

点击左上角的按钮,能够打开菜单栏
image.pngflash

选择option bytes,而后能够看到当前的状态字是0xAA,并且右边还有详细的解释,要设置成level1的读保护,须要写入BB。
image.pngit

这里直接点击小三角弹出下拉菜单,而后选择BB,而后点击apply
image.pngio

弹出写入成功,点击肯定退出。注意这里退出以后,按电路板上的reset按键,是不会产生复位的,要直接给目标板断电重启,这一步很是重要。
image.png

板子重启以后,咱们再次链接板子,就会弹出数据读取失败的对话框,说明已经读保护了。
image.png

此时若是要解开读保护,要如何操做呢?很简单,只要重复刚才的OB选项的操做就能够了。只不过此次把值改为AA,就能够了。
image.png
image.png

可是解除读保护,会将内部flash清除,此时读出的都是FF。这样就有效防止直接经过SWD口来拷贝bin固件了。
image.png

那若是是批量生产过程当中,每个板子都这么先烧录后加锁,操做步骤太复杂了,有没有简便的方法呢?有的,直接用生产模式,自动烧录。
点击菜单栏,而后选择擦除和烧录选项
image.png

而后先选择要烧录的固件,而后勾选全片擦除,下载文件,并在最后的option bytes commands中填写“-ob rdp=0xBB”,最后点击开始自动烧录
image.png

当看到log中显示这一句的时候,说明已经烧录成功,此时就能够拔掉板子上的swd口连线。插入第二块版,程序会自动烧录第二块版,不用手工点击。
image.png

若是要退出自动烧录模式,只要点击stop就能够了。
image.png

这个工具还有其余功能,之后用到了再慢慢研究。

原文:https://club.rt-thread.org/as...