Portenta H7 双核调试
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
| ||||
|
关于这个项目
Arduino Portenta H7 拥有多种功能,能够在两个独立的内核上运行您的代码,这两个内核也可以相互通信!
我们的项目不时都会遇到问题,所以在这里我们将展示如何使用 Segger JLink 同时调试在两个内核上运行的代码!
硬件设置
将 Portenta H7 安装在分线板上后,您需要连接 MIPS 20 针转换器以分线调试引脚。
然后,您可以将转换器连接到 Segger J-Link,如下图所示。
如果您有正确的间距连接器 (0.05"),您还可以连接自己的连接器,如第二张图所示:
图>
软件设置
我们假设您已经在您的机器上安装了 Arduino IDE(如果没有在这里下载)。
然后安装 Visual Studio (2017/2019/2022) 和 Visual Micro Extension,此处提供完整说明。
您还需要为 Arduino Mbed OS Portenta 开发板安装开发板包 来自 Visual Micro Explorer(或来自 Arduino IDE 中的 Boards Manager)。
您将需要使用 Zadig.exe 工具替换 Segger J-Link 接口 0 上的 USB 驱动程序(请参阅底部的视频了解演练)。
让我们编码!
现在我们需要设置一个单独的项目,为我们的 Portenta Board 的每个核心设置一个。附加的代码是一个简单的 Blink 示例,其中每个内核闪烁不同颜色的 LED。为了调试,在单独的 Visual Studio 实例中设置每个内核。
不要忘记确保在 M7 Core 项目中调用 bootM4() 函数以确保两个内核都在运行。
调试设置:M7 核心
打开您的 M7 Core Sketch 并选择 Debug> Hardware,以及 Segger J-Link Debugger (NOT “NoOpenOCD 版本)
此时构建您的 M7 Sketch 并将其上传到 M7 内核。
软件设置:M4 核心
打开您的 Sketch 并选择 Debug> Hardware,以及 Segger J-Link Debugger (NoOpenOCD)
此时构建您的 M4 Sketch 并将其上传到 M4 核心。
启动调试器
首先使用“调试> 附加到进程”开始使用 M7 核心草图进行调试。
然后使用“调试> 附加到进程”开始使用 M4 核心草图进行调试。
您现在应该能够向任一草图添加断点,并观察调试器在其上停止......每个内核都能够独立地停止/步进/继续!!
演练视频
在 YouTube 上查看下面有关此过程的演练....
有用的链接
文档+接线图
Portenta 分线板
赛格JLink
代码
- H7 M4 闪烁代码
- H7 M5 闪烁代码
H7 M4 闪烁代码Arduino
在 Portenta M4 内核上演示闪烁的代码// 在 Portenta M4 内核上演示闪烁的代码// 当您按下复位键或为 boardvoid setup() { // 将数字引脚 13 初始化为输出。 pinMode(LED_BLUE, OUTPUT);}// 循环函数一遍遍地运行forevervoid loop() { digitalWrite(LED_BLUE, HIGH); // 打开 LED (HIGH 是电压电平) delay(1000); // 等待第二个 digitalWrite(LED_BLUE, LOW); //通过使电压低延迟(1000)关闭LED; // 等待一秒钟}
H7 M5 闪烁代码Arduino
在 Portenta M7 内核上演示闪烁的代码// 在 Portenta M7 内核上演示闪烁的代码// 当您按下 reset 或给 boardvoid setup() { bootM4(); 设置函数运行一次// 将数字引脚 13 初始化为输出。 pinMode(LED_RED, OUTPUT);}// 循环函数一次又一次地运行永远void loop() { digitalWrite(LED_RED, HIGH); // 打开 LED (HIGH 是电压电平) delay(1000); // 等待第二个 digitalWrite(LED_RED, LOW); //通过使电压低延迟(1000)关闭LED; // 等待一秒钟}
示意图
如何将分线板上的 SWD 引脚连接到 Segger J-Link制造工艺