0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ART-PI2使用vscode cortex-debug插件进行外部flash烧录调试

RT-Thread官方账号 2025-02-24 19:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、前言

最近,RT-Thread发布了一款名为ART-PI2的新开发板,搭载了STM32H7RS微控制器。好久没接触STM32的东西了,借此机会也了解ST的新产品。


34092842-f2a1-11ef-9434-92fbcf53809c.png


STM32H7RS的一大特点是其内部Flash仅有64KB,这对于需要较大固件的应用来说显然不够用。因此,在实际开发中,通常需要借助外部Flash存储器(如QSPI Flash)来加载和运行程序。

rtthread推荐是在rtthread studio进行开发,如果想用vscode烧录调试外部flash的,可以参考本文进行开发。


(一)电源管理

这款MCU已经在各大平台上得到了广泛的宣传。在硬件设计上,它引入了一些显著的改进,特别是内置了SMPS。这一特性不仅有效减少了发热量,还增加了对外电源引脚的数量。例如,在BGA225封装中,多达75个引脚专门用于供电。

342dbfc2-f2a1-11ef-9434-92fbcf53809c.png

相比之下,先楫半导体的HPM6E00系列虽然采用BGA196封装,但其供电引脚仅占用约30多个引脚。相比STM32H7R7的75个电源引脚少了不少

345043a8-f2a1-11ef-9434-92fbcf53809c.png

内置SMPS的设计趋势无疑提升了电源管理和散热性能,但也意味着GPIO资源需要做出相应的牺牲。然而,从当前的情况来看,先楫半导体的产品似乎找到了一个更加平衡的解决方案,既保证了良好的电源管理,又保留了足够的GPIO引脚供用户使用。


(二)图像处理

STM32H7R7另外一个特征就是不单单支持了mipi csi,mipi dsi,也新增2.5D GPU,进一步增强了图形处理能力。这使得它在高要求的人机界面(HMI)应用中表现出色。

而先楫在去年上半年发布了一款同样高性能的HMI MCU,叫HPM6800系列,在hpm_sdk中也做了大量的例子参考。该系列有以下特点:


图像系统:2.5D OpenVG 1.1 GPU,支持Vivante VGLite API,适用于复杂的图形渲染任务。2 个 4 Lane MIPI-DSI/LVDS-Tx 显示接口,2 个 DVP 摄像头接口,2 个 2 Lane MIPI-CSI/LVDS-Rx 摄像头接口,2D 图形加速单元,JPEG 编解码器。


音频系统:4 个 I2S 接口,PDM 数字麦克风接口,数字音频输出,语音检测模块,混音器。


外部存储器接口:16bit DDR2-800,16bit DDR3/DDR3L-1333,1 个串行总线控制器 XPI,支持各类外部串行 Flash 和PSRAM,2 个 SD/eMMC 控制器,支持SD/SDHC/SDXC,支持 eMMC 5.1


通讯接口:9 个 UART、4 个 SPI、4 个 I2C、1 个 USB 2.0 OTG,集成 HS-PHY、1 个千兆以太网控制器、8 个 CAN 控制器,支持 CAN-FD。


详细的看以下介绍:

347abd72-f2a1-11ef-9434-92fbcf53809c.png


二、vscode开发ART-PI2

(一)开发资料

了解了相关art-pi2的资源,也得看下软件资料。rtthread如期发布了art-pi2的sdk包,在rtthread studio中的sdk管理器中可进行下载。

34963e3a-f2a1-11ef-9434-92fbcf53809c.png


下载完毕后可在rtthread studio安装目录下的repo看到bsp包,里面包含了所有资料。对于原理图啥的就在documents:

34a49002-f2a1-11ef-9434-92fbcf53809c.png


对于rtthread stuido bsp,先楫在此也做了很多board支持,已经发布的先楫MCU都做了相关支持,在sdk管理器同样也能看到:

34b16156-f2a1-11ef-9434-92fbcf53809c.png


比如hpm6800的丰富例子:sdio wifi、i2s音频、以太网、lvgl、sdcard、canfd、usb hs等等。

34c48808-f2a1-11ef-9434-92fbcf53809c.png


(二)开发流程

art-pi2可以在rtthread studio开发编译烧录调试。这里也可以用scons编译,vscode配合cortex-debug插件进行烧录调试。


注意:保证art-pi2烧录了bootloader。出厂都自带了bootloader。如果不小心烧录错了,可使用bsp下的bootloader例子,通过rtthread-studio烧录。


34d93c6c-f2a1-11ef-9434-92fbcf53809c.png


1、观察rtthread studio的GDB调试烧录配置。


这里使用了st的stlink gdb server,而gdb client则使用了arm-none-eabi。这里的GDB服务器无所谓,gdb_server需要带上-m 1(复位MCU)

34e5da1c-f2a1-11ef-9434-92fbcf53809c.png


在vscode下,在工程的根目录下,新建.vscode文件夹,里面包含两个文件:launch.json和settings.json

34fd322a-f2a1-11ef-9434-92fbcf53809c.png

那么对于vscode下的cortex-debug插件,在setting.json中,对于的GDB服务器和客户端设置,参考以下命令,然后对之rtthread studio的路径拷贝。


不过需要注意的是,vscode的cortex-debug插件对于GDB版本必须得7.0以上,也就是说rtthread studio使用得arm-none-eabi 5.4.1并不适用。但好在与rtthread studio得tool chain,对于arm支持到13.2.1,我们可以下载10.2.1使用。

350b7182-f2a1-11ef-9434-92fbcf53809c.png


对应的安装目录也是在rtthread studio下。

351d9920-f2a1-11ef-9434-92fbcf53809c.png

因此setting.json对于gdb的设置如下:

352d8074-f2a1-11ef-9434-92fbcf53809c.png


setting.json代码:


{ "cortex-debug.armToolchainPath":"you path\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\10.2.1\\bin", "cortex-debug.gdbPath.windows":"you path\\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\10.2.1\\bin\\arm-none-eabi-gdb.exe", "cortex-debug.stlinkPath":"you path\RT-ThreadStudio\\repo\\Extract\\Debugger_Support_Packages\\STMicroelectronics\\ST-LINK_Debugger\\1.6.0\\ST-LINK_gdbserver.exe", // STM32CubeProgrammer path: rtthread stduio安装STM32CubeProgrammer的路径放在这里,以实际为准 "cortex-debug.stm32cubeprogrammer.windows": "you path\\RT-ThreadStudio\\repo\\Extract\\Debugger_Support_Packages\\STMicroelectronics\\ST-LINK_Debugger\\1.6.0\\tools\\bin"}


2、调试烧录launch.json配置

在rtthread studio的调试配置下载这里,有用到了外部flash烧录算法,路径也做了说明,如此一来也可以方便进行拷贝。

354887f2-f2a1-11ef-9434-92fbcf53809c.png


在launch.json中,大部分都是走的openocd,但这种烧录调试性能往往比不上st自己的gdb server,加之也不用配置那么多cfg文件,只需要告知device型号即可。

对于flm算法加载,使用-el进行加载即可。对于-el命令,可以在对应的stm32cubeprogrammer中调用STM32_Programmer_CLI.exe查看信息:

3558133e-f2a1-11ef-9434-92fbcf53809c.png


比如-el命令解释:

3573534c-f2a1-11ef-9434-92fbcf53809c.png


总的launch.json文件如下:

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version":"0.2.0", "configurations": [ { "name":"ART-pi2", "cwd":"${workspaceFolder}", "executable":"${workspaceFolder}/rt-thread.elf", "request":"launch", "type":"cortex-debug", "runToEntryPoint":"main", "servertype":"stlink", "device":"STM32H7Rxx", "interface":"swd", "showDevDebugOutput":"raw", "serverArgs": [ "-s", "-m","1", "-k", //在调试会话结束时清除调试状态 // Select a custom external memory-loaderforJTAG/SWD "-el${workspaceFolder}/board/stldr/ART-Pi2_ST_winbond_64MB.stldr" ] } ]}


编译上可以使用rtthread的scons进行编译。具体如何编译查看rtthread官网 wiki。

3588b0d4-f2a1-11ef-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154667
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113157
  • ART
    ART
    +关注

    关注

    0

    文章

    28

    浏览量

    10808
  • 烧录
    +关注

    关注

    8

    文章

    305

    浏览量

    36928
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44254
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ART-PI2的CherryUSB cdc_acm例程 在复位后需要好久才能出来COM口?

    第一次使用ART-PI2上的USB-HS接口。在ART-PI2烧录编译的art_pi2_cherryusb_usbdev_cdc_acm工程,程序能够正常运行: 但是在复位后,需
    发表于 09-12 07:01

    ART-PI2串口DMA累计接收超过buf设置的大小后就不能再接收了为什么?

    使用ART-PI2板子串口1DMA接收数据,buf的大小为64,只能累计接收64字节,如果扩大到256字节,也只能累计接受到256字节。数据及时读取,缓冲区应该是没有溢出的,应用程序移到F4的板子是正常,求解
    发表于 09-12 07:56

    如何在 ART-Pi 平台使用 openocd 直接烧录到外部 spi flash

    ART-Pi 内置的 128Kb flash太小了,我现在在 Linux openocd 烧录程序,请问有没有人成功使用 openocd 可以直接烧写到外部 Quad spi
    发表于 09-15 07:32

    如何利用VSCode去搭建一种stm32开发环境呢

    系统环境变量中。VSCode配置安装插件C/C++ :提供C/C++的语法智能感知、加亮及调试功能 Cortex-Debug:ARM调试
    发表于 01-10 06:06

    一款VScode插件介绍

    前文写到使用minGW、GNU for ARM和VScode组成编译调试链,今天又发现了一款VScode插件Cortex-Debug(m
    发表于 01-25 08:16

    怎样在ART-Pi H750上移植TouchGFX呢

    QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——移植TouchGFX到RT-Thread系统在ART-Pi H750上移植TouchGFX(四)——
    发表于 02-22 06:01

    在Clion IDE中调试ART-Pi工程代码的方式

    链的配置,这里就不再次介绍了。工程加载完成后,点击右上角的锤子按钮,编译工程:此时的 art-pi 工程还不能直接下载到开发板,因为需要有外部下载算法。如何使用外部下载算法呢?由于水平有限,关于
    发表于 04-08 10:03

    怎样去解决RT-Thread Studio ART-Pi无法烧写外部Flash的问题呢

    \projects\art_pi_net_player问题描述使用RT-Thread Studio 进行下载,发现有的工程可以正常的下载,有的工程,怎么下载都是失败对比了下成功与失败的原因,确认与硬件
    发表于 05-16 17:19

    Windows系统VSCode+pyOCD开发环境搭建步骤分享

    Cortex-Debug插件VSCode调试GD32F437项目,需要使用到Cortx-Debug
    发表于 12-15 15:31

    先楫hpm_sdk使用vscode开发

    ,我们可以在任意终端窗口进行构建编译,比如powershell。 (三) 烧录调试 vscode下的烧录
    发表于 06-24 20:19

    配置VScode编译、调试STM32(二)Cortex-Debug插件

    配置VScode编译、调试STM32(二)Cortex-Debug插件
    发表于 12-01 12:21 17次下载
    配置<b class='flag-5'>VScode</b>编译、<b class='flag-5'>调试</b>STM32(二)<b class='flag-5'>Cortex-Debug</b><b class='flag-5'>插件</b>

    "Linux下使用VSCode,GCC,OpenOCD实现STM32一键编译烧录调试(STM32CubeMX篇)"

    STM32CubeMX生成工程OpenOCD烧录json脚本实现一键编译烧录调试开发工具安装Visual Studio Code与插件Visual Studio Code的安装和使用参
    发表于 12-06 09:36 7次下载
    "Linux下使用<b class='flag-5'>VSCode</b>,GCC,OpenOCD实现STM32一键编译<b class='flag-5'>烧录</b><b class='flag-5'>调试</b>(STM32CubeMX篇)"

    【STM32H750】玩转ART-Pi(一)——使用STM32CUBMX生成TouchGFX工程

    QSPI-FLASH烧录算法在ART-Pi H750上移植TouchGFX(三)——移植TouchGFX到RT-Thread系统在ART-Pi H750上移植TouchGFX(四)——
    发表于 12-28 19:20 11次下载
    【STM32H750】玩转<b class='flag-5'>ART-Pi</b>(一)——使用STM32CUBMX生成TouchGFX工程

    【技术三千问】之《玩转ART-Pi》,看这篇就够了!

    2.在 ART-Pi 平台有没有人成功使用 openocd 可以直接烧写到外部 Quad spi flash 的?[链接]
    发表于 01-25 18:44 2次下载
    【技术三千问】之《玩转<b class='flag-5'>ART-Pi</b>》,看这篇就够了!

    使用VSCode调试嵌入式程序:如何切换gdb server

    上文小编给大家介绍了一下如何使用VSCode结合cortex-debug插件进行调试的方法。本篇就趁热打铁,进一步深入了解一下如何切换gdb
    的头像 发表于 05-09 11:02 4321次阅读
    使用<b class='flag-5'>VSCode</b><b class='flag-5'>调试</b>嵌入式程序:如何切换gdb server