Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
flash
读保护
Art-Pi学习笔记9:如何为Art-pi的内部flash设置读保护
发布于 2021-02-24 10:08:40 浏览:1078
订阅该版
如何为Art-pi的内部flash设置读保护。 一般在项目开完毕之后,最终烧录固件的时候都会将stm32设置为读保护。过去一直使用STM32 ST-LINK Utility配合st-link来完成这个步骤。这次用到art-pi上,不灵了。 具体表现如下: 完成固件下载 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/e24c26b83c3e096cfa2a05a6ffee0efd.png) 配置option bytes,结果弹出设置失败 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/6d1aaf2994e4ca34601696655ce1a7ea.png) ![image.png](https://oss-club.rt-thread.org/uploads/20210224/cf324cbeff0d6cb3be0721814915979a.png) 原来art-pi上使用的是Stm32H7系列的芯片,属于比较新的系列了。STM32 ST-LINK Utility算是比较久远的一款下载工具了,现在要与时俱进,使用新的工具了,就是STM32CubeProgrammer了。看看这界面,一看就是高大上。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/91749cb279bf05afffd44e6c42fd6611.png) 具体怎么弄呢? 双击打开工具之后,可以看到右上角有选择连接的硬件设备,这个工具很强大,可以支持多种硬件烧录设备,这里选研究st-link。所以选择了st-link然后点击connect。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/b389e955bf361042c0aa6ec593f51d9e.png) 由于刚才烧录之后设置读保护是失败的,所以此时芯片是处于没有保护的状态,因此连接成功之后会自动读取到内部flash的内容。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/e67c813f6a2f67c5c101e968b18cf5b1.png) 点击左上角的按钮,可以打开菜单栏 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/3c6d6ace12a8155fd3c1ab7ef0fd245c.png) 选择option bytes,然后可以看到当前的状态字是0xAA,而且右边还有详细的解释,要设置成level1的读保护,需要写入BB。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/74698dfcd8a4815303126d8e4b4c29bd.png) 这里直接点击小三角弹出下拉菜单,然后选择BB,然后点击apply ![image.png](https://oss-club.rt-thread.org/uploads/20210224/9b5358075213945f91dba709953e3365.png) 弹出写入成功,点击确定退出。注意这里退出之后,按电路板上的reset按键,是不会产生复位的,要直接给目标板断电重启,这一步非常重要。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/b9144f68717a458d62ca3f14b8b6e43e.png) 板子重启之后,我们再次连接板子,就会弹出数据读取失败的对话框,说明已经读保护了。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/c3de3409d007b5573832f7f1ed3357f3.png) 此时如果要解开读保护,要如何操作呢?很简单,只要重复刚才的OB选项的操作就可以了。只不过这次把值改成AA,就可以了。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/fd509280401f482a70f86a578fc05d31.png) ![image.png](https://oss-club.rt-thread.org/uploads/20210224/22600e345ce9c923d280caea8c0bafd0.png) 但是解除读保护,会将内部flash清除,此时读出的都是FF。这样就有效防止直接通过SWD口来拷贝bin固件了。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/055878fe08efe345a2158fb478858aed.png) 那如果是批量生产过程中,每一个板子都这么先烧录后加锁,操作步骤太复杂了,有没有简便的方法呢?有的,直接用生产模式,自动烧录。 点击菜单栏,然后选择擦除和烧录选项 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/055878fe08efe345a2158fb478858aed.png) 然后先选择要烧录的固件,然后勾选全片擦除,下载文件,并在最后的option bytes commands中填写“-ob rdp=0xBB”,最后点击开始自动烧录 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/db76f0fe628a21396041c02c7f83cb67.png) 当看到log中显示这一句的时候,说明已经烧录成功,此时就可以拔掉板子上的swd口连线。插入第二块版,程序会自动烧录第二块版,不用手工点击。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/03502cacc4d6d7e98734bdef507a5f75.png) 如果要退出自动烧录模式,只要点击stop就可以了。 ![image.png](https://oss-club.rt-thread.org/uploads/20210224/7ab3fa62f6bbbdaeb3eccb2db1c59b56.png) 这个工具还有其他功能,以后用到了再慢慢研究。 **相关文章:** [Art-Pi学习笔记10:优化多媒体扩展板的音频驱动添加录音功能](https://club.rt-thread.org/ask/article/2872.html) [Art-Pi学习笔记9:如何使用art-pi的多媒体扩展板播放TF卡中的音乐文件](https://club.rt-thread.org/ask/article/2849.html) [Art-Pi学习笔记9:如何为Art-pi的内部flash设置读保护](https://club.rt-thread.org/ask/article/2568.html) [Art_Pi学习笔记8:使用AHT10温湿度模块](https://club.rt-thread.org/ask/article/2543.html) [Art_Pi学习笔记7:自己添加硬件定时器设备HWTIMER](https://club.rt-thread.org/ask/article/2492.html) [Art_Pi学习笔记6:驱动PWM输出](https://club.rt-thread.org/ask/article/2483.html) [Art-Pi学习笔记5_4:在littlevgl中显示二维码](https://club.rt-thread.org/ask/article/2698.html) [Art-Pi学习笔记5_3:在littlevgl软件包中显示中文字体](https://club.rt-thread.org/ask/article/2695.html) [Art_Pi学习笔记5.2:LVGL模拟器安装在VS2019上的避坑指南](https://club.rt-thread.org/ask/article/2470.html) [Art_Pi学习笔记5.1:优化LVGL软件包提高刷屏的速度](https://club.rt-thread.org/ask/article/2464.html) [Art_Pi学习笔记5:移植LittleVGL2RTT软件包驱动多媒体扩展屏](https://club.rt-thread.org/ask/article/2434.html) [Art_Pi学习笔记4:驱动多媒体扩展版的LCD和触摸功能](https://club.rt-thread.org/ask/article/2436.html) [Art_Pi学习笔记3:学习驱动wifi模块AP6212](https://club.rt-thread.org/ask/article/2429.html) [Art_Pi学习笔记2:驱动片外SPI_FLASH_W25Q128](https://club.rt-thread.org/ask/article/2423.html) [Art-Pi学习笔记1:驱动SDIO和USB设备做TF读卡器](https://club.rt-thread.org/ask/article/2417.html)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
adaphoto
这家伙很懒,什么也没写!
文章
25
回答
44
被采纳
5
关注TA
发私信
相关文章
1
OTA 片上FLASH擦除失败
2
请问 怎么实现flash的FIFO存储呢
3
FAL初始化输出调试信息bug
4
spi1挂载w25q32失败
5
SD卡与外置flash(dg25q32)一起应用,挂载spi2总线上
6
w25q128 flash 怎么在电脑和开发板上切换挂载
7
RTT没有对FLASH进行操作的指令吗
8
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
9
使用FAL接口写的片内flash的擦除函数会死掉
10
关于潘多拉flash操作例程的
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部