RTT小师弟 · 2021年06月03日

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

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

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

具体表现如下:
完成固件下载
图片.png

配置option bytes,结果弹出设置失败
图片.png

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

具体怎么弄呢?
双击打开工具之后,可以看到右上角有选择连接的硬件设备,这个工具很强大,可以支持多种硬件烧录设备,这里选研究st-link。所以选择了st-link然后点击connect。
图片.png

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

点击左上角的按钮,可以打开菜单栏
图片.png

选择option bytes,然后可以看到当前的状态字是0xAA,而且右边还有详细的解释,要设置成level1的读保护,需要写入BB。
图片.png

这里直接点击小三角弹出下拉菜单,然后选择BB,然后点击apply
图片.png

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

板子重启之后,我们再次连接板子,就会弹出数据读取失败的对话框,说明已经读保护了。
图片.png

此时如果要解开读保护,要如何操作呢?很简单,只要重复刚才的OB选项的操作就可以了。只不过这次把值改成AA,就可以了。
图片.png

但是解除读保护,会将内部flash清除,此时读出的都是FF。这样就有效防止直接通过SWD口来拷贝bin固件了。
图片.png
那如果是批量生产过程中,每一个板子都这么先烧录后加锁,操作步骤太复杂了,有没有简便的方法呢?有的,直接用生产模式,自动烧录。
点击菜单栏,然后选择擦除和烧录选项
图片.png

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

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

如果要退出自动烧录模式,只要点击stop就可以了。
图片.png

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

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

推荐阅读
关注数
8074
内容数
181
小而美的物联网操作系统,经过14年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过4亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息