这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ART-PI2使用vscodecortex-debug插件进行外部flash烧录

共1条 1/1 1 跳转至

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

菜鸟
2025-03-04 13:57:23     打赏
一、前言         

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

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

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

(一)电源管理         

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

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

内置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。

详细的看以下介绍:

        二、vscode开发ART-PI2                 (一)开发资料         

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

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

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

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

        (二)开发流程         

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

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

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

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

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

那么对于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使用。

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

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

setting.json代码:

{    "cortex-debug.armToolchainPath": "you pathRT-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 pathRT-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烧录算法,路径也做了说明,如此一来也可以方便进行拷贝。

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

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

比如-el命令解释:

总的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-loader for JTAG/SWD                
   "-el ${workspaceFolder}/board/stldr/ART-Pi2_ST_winbond_64MB.stldr"            
   ]        
   }    
   ]}

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





关键词: ART-PI2     vscode     cortex-deb    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]