RT-Thread ART-Pi 地址说明、恢复出厂设定&全擦除 兼 踩坑记录
雷区地图-No1.0 Ver.230324
欢迎阅读本萌新期雷区排雷引导指南
前言
迷迷糊糊地下载程序,
迷迷糊糊地擦除,
然后迷迷糊糊地找解决方法,
结果什么都没有…
——误入迷途的小笨蛋
在三天内,
我把基本所有的坑都踩了个遍
在这大雾的一刹那,
我缓慢地写下了这篇回忆录,
将此刻的语句刻印于此,
望往来的误入迷途者…
找到出…方向……
地址说明
板件为RT-Thread 的 ART-Pi ,主芯为STM32H750XBH6
(TB店一看,这板子怎么价格翻倍了???)

| 类型 | 地址 | 大小 | 用途 |
|---|---|---|---|
| 片内flash | 0x00000000 | 128KB | 存放BootLoader |
| QSPI flash | 0x08000000 | 8MB | 存放程序 |
| SPI flash | 0x70000000 | 16MB | 存放固件、文件系统等 |
这个地址得记清楚,很重要
序章
当初刚买板子的时候,烧了个例程,跑了一遍,看问题不大,就扔一边吃灰了
当再次拿出来的时候……咚咚噔

Warning: The core is locked up
当出现这条的时候,有时候根据Stdio给出的两个建议执行的时候…并不会有效
肿么回事呢???

我下载的是这个art_pi_blink_led,

在这里可以看到,使用的是算法是下载到外 W25Q64 flash上,也就是 QSPI 8M 这个flash上,
但是我已经根据提示 擦除全片 了,
那我擦除的究竟是个什么呢???是我那个bootloader dio哒

解决方法是 烧写bootloader例程 :

bootloader可以正常烧写

再次烧写先前的例程即可成功烧写并运行
ST-LINK error (DEV_CONNECT_ERR)
第一次能下载的,
第二次怎么就寄了呢???

在非RT-Thread Stdio里,
我们经常会在CubeMX里的DEBUG项里面选择 serial wire 选项,
但是在RT-Thread Stdio里!!!
不!可!以!

得选Disable!!!

解决方法就是选Disable重新生成,然后下载进去
这边需要注意的是在点击下载程序后

按住板上的RST(reset键)1~2s后松开,

即可成功下载进去
全擦除&恢复出厂
擦除步骤STM32 ST-LINK Utility和STM32CubeProgrammer都可以,
不过我个人觉得ST-LINK Utility适合解除读写保护,CubeProgrammer适合刷固件
软件下载链接
STM32 ST-LINK Utility 官方下载地址:https://www.st.com/zh/development-tools/stsw-link004.html
个人度盘链接(4.6.0):https://pan.baidu.com/s/1RuWbKqTPQhFzUY5XKuZGbQ?pwd=kkf1
STM32CubeProgrammer软件 官方下载地址:https://www.st.com/zh/development-tools/stm32cubeprog.html#st-get-software
个人度盘链接(2.13.0):https://pan.baidu.com/s/1wwBwqmNMwxifL7q3Pvzxfg?pwd=zdob
flash擦写
官方有给出一份数据flash擦写手册
这边我自己也写一遍
首先需要在STM32CubeProgrammer加载指定下载算法
在SDK 或 任意例程 下
或是在路径
D:\RT-ThreadStudio\repo\Extract\Board_Support_Packages\RealThread\STM32H750-RT-ART-Pi\1.3.0\debug\stldr
(具体根据安装路径和版本号调整)
找到 ART-Pi_W25Q128JV.stldr 这个文件
拷贝至路径
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\ExternalLoader
(具体根据安装路径调整)
打开STM32CubeProgrammer,如图所示加载算法,随后connect(PC与板通过USB-DBG连接)
恢复出厂flash固件
加载16MB的flash源固件,这个文件的位置基本在
D:\RT-ThreadStudio\repo\Extract\Board_Support_Packages\RealThread\STM32H750-RT-ART-Pi\1.3.0\tools\firmware
文件名为:Resource_16MB.bin
这边注意一下地址,
随后加载,整体过程会有点慢,可能需要几分钟
这之间我直接趴了会睡着了,不知道具体几分钟(つд⊂)

这是恢复出厂设置固件的最简单粗暴方法
加载的这个算法还可以在这块SPI 16M flash里选择擦除或全擦除
flash 选择擦除、全擦除
这里可以看到QSPI 8M flash的地址和大小,可在这里擦除
0x08000000即为128KB,也是片内flash的结束地址、QSPI flash的开始地址

选择擦除:

全擦除:

创建新工程模版
基于该板的基础工程可以以led例程为模版

随后可以根据需求在cubemx里面修改
目前该例程工程有部分问题,需要先修改一下

选择“continue”

QSPI设置一下

SPI1设置一下
后日谈
距离上一次好像一年了
残念(´◓Д◔`)
也是一路坑坑洼洼爬过来了
私信和留言随缘看
有时候上线一看是几个月前的…
那还是不回了吧对吧?
无法留恋过去 因为回不去
无法停下脚步 所以要继续
路途尚远 浅作停留 就再度踏上旅途吧
记于2023/03/24 尚绵绵细雨 浅夜