Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
RT-Thread
《玩转ART-Pi开发板》第3章 ART-Pi固件下载与使用
发布于 2021-03-14 20:25:37 浏览:1979
订阅该版
[tocm] **开发环境:** RT-Thread版本:4.0.3 操作系统:Windows10 Keil版本:V5.30 开发板MCU:STM32H750XB ## 3.1引言 在开始本章之前,笔者先批评下自己,拿到板子后也没看官方的手册,直接凭着经验一通玩,结果导致板子的 boot_loader 被擦除了,出厂固件也烧写不了,使用Keil+STlink还会出现以下错误: ![rUhczn.png](https://oss-club.rt-thread.org/uploads/20220714/ca257160722042e54b04378757f74f7473c52200.png) ![rUh5oF.png](https://oss-club.rt-thread.org/uploads/20220714/ccc9178b8e6295eada7106ed6ababe0fe9b646fa.png) 使用STM32CubeProgrammer也烧写不了,出现以下错误: ![rUhTJJ.png](https://oss-club.rt-thread.org/uploads/20220714/6daaaf9564f56b80a3fca83999b56a683e75d713.png) 有问题咱就去找原因,想办法解决啊。这就是BootLoader错误或者工作不正常,另外就是未加载下载算法,导致应用程序固件不能刷入到W25Q64JV 存储器中导致的。**因此第一步重新刷入BootLoader,第二步加载下载算法。** **官方的回答以及解决办法:** 未添加下载算法导致,下载算法在 `"sdk-bsp-stm32h750-realthread-artpi\debug\flm\ART-Pi_W25Q64.FLM" `然后把`ART-Pi_W25Q64.FLM`拷贝到MDK安装目录`Keil_v5\ARM\Flash`下,注意`RAM for Algorithm` 需要调整成 `0x4000`。STM32H750 执行片外 QSPI FLASH 上的程序需要有一个 bootloader 来跳转过去,出厂前已经默认烧录了 bootloader,所以可以运行,如果不小心擦除了,请重新烧录 bootloader。 ## 3.2编译和烧写Bootloader 在 BSP 目录下打开 Env,首先进入工程目录,sdk-bsp-stm32h750-realthread-artpi \projects\art_pi_bootloader,如图所示以管理员身份打开 PowerShell: ![rUhLsx.png](https://oss-club.rt-thread.org/uploads/20220714/98d72c1506e6d8a4fecd98839c58891eb7881a43.png) 依次输入如下三个命令: ``` #cmd #mklink /D rt-thread ..\..\rt-thread #mklink /D libraries ..\..\libraries ``` ![rUhjeK.png](https://oss-club.rt-thread.org/uploads/20220714/a7e0aea3a27b569ccd2458452c2c21e8cc6db33b.png) 使用 RT-Thread 官方提供的 env 工具按照 rt-thread 开发的正常流程创建 MDK 工程。输入 `scons --target=mdk5` 命令生成 MDK 工程。 ![rU4SFe.png](https://oss-club.rt-thread.org/uploads/20220714/5869425d2087e6b6cc52d1dffc6afb80dea74b13.png) 然后打开MDK编译即可,ART-Pi带有烧写工具ST-link,因此可直接下载,但在下载前,注意下Debug的配置, ![rU4PSA.png](https://oss-club.rt-thread.org/uploads/20220714/78ba57b9639b7acaf5f6de0a7c540083e2371210.png) 如果烧写不进去,有可能已经存在 bootloader,勾选 Dowload Function 中的 Erase Full Chip 选项先擦除重新烧写 bootloader,不过默认配置就是上图所示的配置。值得注意的是,Bootloader是烧写到片上Flash中,ART-Pi还另外配有外部存储,毕竟要跑操作系统,内部的Flash还是不够用的。 【注1】MDK5需要安装 pack 支持包,可以去 keil 官网下载 Keil.STM32H7xx_DFP.2.7.0.pack 并安装,因为我们的板子处理器是 STM32H7 系列。 【注2】如果你没装MDK5,也可直接通过ENV编译工具进行编译,反正笔者很喜欢,很多命令都是和Linux相通的。编译完成后可使用STM32CubeProgrammer烧写。 ![rU4kOP.png](https://oss-club.rt-thread.org/uploads/20220714/3c50246199884baccddc89bb069734b9542f35de.png) 编译成功后我们直接使用MDK烧写就行了,也可用STM32CubeProgrammer烧写。 ## 3.3应用下载与使用 接下来我们就要下载应用, ART-Pi的应用程序是存放在外部Flash W25Q64中的。首先我们就需要安装下载算法, QSPI-FLASH烧录算法文件在 sdk-bsp-stm32h750-realthread-artpi\debug\flm 目录下,名字是 ART-Pi_W25Q64.FLM。 ![rU4mFg.png](https://oss-club.rt-thread.org/uploads/20220714/367630c113c5b24e0a19c6ddf86d515a265894fb.png) 将ART-Pi_W25Q64.FLM文件复制到 Keil 的安装目录,例如我的是 D:\Keil\ARM\Flash。 接下来我们用同样的方式使用 ENV 将点灯示例 art_pi_blink_led 生成 MDK5 工程。 ![rU4Qln.png](https://oss-club.rt-thread.org/uploads/20220714/320d914a72852cd0136eacf1cfbaae941ed368c8.png) 然后去配置 Flash Download: ![rU41O0.png](https://oss-club.rt-thread.org/uploads/20220714/d55ee845da81e203409587dee620f0f1ba7c5b11.png) 需要注意的是 Address Range 的配置一定要从 90000000H 开始到 907FFFFFH。RAM for Algorithm需要调整成 0x4000,这都是默认配置好的,如果没有就需要手动修改。 最后点击下载固件即可下载应用到板子的外部Flash中。 ![rU48mV.png](https://oss-club.rt-thread.org/uploads/20220714/01aba14fc2c55976dee35922afe7cacc9f5dbd98.png) 下载完成后,就可看到D2不断闪烁。 ## 3.4 ART-Pi BT_WiFi 模块固件下载 ART-Pi 板卡在出厂时已经烧录过 BT_WiFi 固件,存储在外部 Flash W25Q128 。如果固件被不慎擦除,会导致 BT_WiFi 模组的功能无法正常使用,出现异常情况,需要重新烧录 BT_WiFi 固件。RT-Thread 提供的解决方式:先烧录出厂例程固件 `factory`,然后选择使用 Ymodem 下载固件。 关于出厂例程的的烧写在上一讲已经说过了,下面我们烧写BT_WiFi 模块固件。 WiFi和蓝牙固件的下载方式相同,可以通过终端进行 ymodem 传输。固件路径位于 `/tools/firmware/` 目录下。其中 `ap6212-bt-image-1.0.rbl` 为蓝牙固件,`ap6212-wifi-image-1.0.rbl` 为 WIFI 固件。 ![rU4tkF.png](https://oss-club.rt-thread.org/uploads/20220714/0d5152acc67d8ecbb37d1025d4f4d16a1a260aa7.png) 以 BT 固件上传为例,需要执行两个步骤: >1. 在终端命令行中输入 `update` 命令。 >2. 使用 ymodem 进行文件传输。 ![rU4UfJ.gif](https://oss-club.rt-thread.org/uploads/20220714/2b5e0db1122dbb8f2fa67020341cbea07bc33a2d.gif) 完成后系统会自动识别传入的固件,若固件有效则会自动搬运到对应的固件存储区。 **【注】ART-Pi配备了2块外部Flash,W25Q64JV 用于存放程序,W25Q128JV 用于存放 WIFI 固件,蓝牙固件,等其它数据。** ## 3.5 ART-Pi 网页下载 网页文件存在于 `/projects/art_pi_factory/applications/web_dist` 目录下。不同于 WIFI 及蓝牙固件的上传,网页文件需要联网后通过 adb工具进行上传, 需要将 `webnet` 目录上传到开发板的 `/flash / 目录下 `。 ### 3.5.1 ADB工具安装 【注】ADB工具获取方式见文末。 下载ADB工具,放在一个磁盘目录,笔者放在C盘根目录。 ![rU4061.png](https://oss-club.rt-thread.org/uploads/20220714/9058f48ba4dd46366a7137745de472bdb9a76878.png) 然后配置环境。 ![rU4rm6.png](https://oss-club.rt-thread.org/uploads/20220714/b94ec7cf8315a28631c2efbd2e7b6f8def71db05.png) 然后输入adb,有以下信息表示安装成功。 ![rU4h6I.png](https://oss-club.rt-thread.org/uploads/20220714/ffeb80b90c8cf3ca955f07ab6bf4e5aae4f5005e.png) ### 3.5.2网页下载 如图所示以管理员身份打开cmd,切换到projects/art_pi_factory/applications/web_dist` 目录下: 输入以下命令: ``` #adb connect 192.168.99.144 #adb push .\webnet /flash/ #adb disconnect ``` ![rU4InP.png](https://oss-club.rt-thread.org/uploads/20220714/b22500e0216eda31b4b22b8cd678eedc04ce198d.png) >【注1】WIFI地址需要根据你的板子IP来设置。 【注2】也可使用PowerShell,这也是Windows自带的工具。
------------ ### 资源获取方法 1.长按下面二维码,关注公众号[嵌入式实验楼] 2.在公众号回复关键词[Art-Pi]获取资料提取码 ![嵌入式实验楼](https://oss-club.rt-thread.org/uploads/20220714/fd420eff5a1e144b53d5c2bfca8ec412f963c8db.png) ### 欢迎访问我的网站 [BruceOu的哔哩哔哩](https://space.bilibili.com/338944611) [BruceOu的主页](https://www.bruceou.cn/) [BruceOu的博客](https://blog.bruceou.cn/) [BruceOu的CSDN博客](https://blog.csdn.net/bruceoxl) [BruceOu的gitee](https://gitee.com/ouxiaolong/)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
BruceOu
这家伙很懒,什么也没写!
文章
27
回答
0
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
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
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部