《嵌入式系统 – 玩转ART-Pi开发板》第3章 ART-Pi固件下载与使用

开发环境:
RT-Thread版本:4.0.3
操作系统:Windows10
Keil版本:V5.30
开发板MCU:STM32H750XB

3.1引言

在开始本章之前,笔者先批评下自己,拿到板子后也没看官方的手册,直接凭着经验一通玩,结果导致板子的 boot_loader 被擦除了,出厂固件也烧写不了,使用Keil+STlink还会出现以下错误:

rUhczn.png

rUh5oF.png

使用STM32CubeProgrammer也烧写不了,出现以下错误:

rUhTJJ.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

依次输入如下三个命令:

#cmd
#mklink /D rt-thread ..\..\rt-thread
#mklink /D libraries ..\..\libraries

rUhjeK.png

使用 RT-Thread 官方提供的 env 工具按照 rt-thread 开发的正常流程创建 MDK 工程。输入 scons --target=mdk5 命令生成 MDK 工程。

rU4SFe.png

然后打开MDK编译即可,ART-Pi带有烧写工具ST-link,因此可直接下载,但在下载前,注意下Debug的配置,

rU4PSA.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

编译成功后我们直接使用MDK烧写就行了,也可用STM32CubeProgrammer烧写。

3.3应用下载与使用

接下来我们就要下载应用, ART-Pi的应用程序是存放在外部Flash W25Q64中的。首先我们就需要安装下载算法, QSPI-FLASH烧录算法文件在 sdk-bsp-stm32h750-realthread-artpi\debug\flm 目录下,名字是 ART-Pi_W25Q64.FLM。

rU4mFg.png

将ART-Pi_W25Q64.FLM文件复制到 Keil 的安装目录,例如我的是 D:\Keil\ARM\Flash。

接下来我们用同样的方式使用 ENV 将点灯示例 art_pi_blink_led 生成 MDK5 工程。

rU4Qln.png

然后去配置 Flash Download:

rU41O0.png

需要注意的是 Address Range 的配置一定要从 90000000H 开始到 907FFFFFH。RAM for Algorithm需要调整成 0x4000,这都是默认配置好的,如果没有就需要手动修改。

最后点击下载固件即可下载应用到板子的外部Flash中。

rU48mV.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

以 BT 固件上传为例,需要执行两个步骤:

  1. 在终端命令行中输入 update 命令。
  2. 使用 ymodem 进行文件传输。

rU4UfJ.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

然后配置环境。

rU4rm6.png

然后输入adb,有以下信息表示安装成功。

rU4h6I.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

【注1】WIFI地址需要根据你的板子IP来设置。
【注2】也可使用PowerShell,这也是Windows自带的工具。


资源获取方法

1.长按下面二维码,关注公众号[嵌入式实验楼]
2.在公众号回复关键词[Art-Pi]获取资料提取码

嵌入式实验楼

Related posts

Leave a Comment