用 Segger J-Link 调试 Arduino Portenta H7 双核系统
零部件与物料
| 零部件 | 数量 |
|---|---|
| Arduino Portenta H7 | 1 |
| Portenta H7 Breakout 扩展板 | 1 |
| Segger J-Link 调试器 | 1 |
| Segger Cortex-M 适配器 | 1 |
软件与在线服务
- Arduino IDE
- Microsoft Visual Studio 2017/2019/2022
- Visual Micro 扩展
项目概述
Portenta H7 拥双核:Cortex-M7 @480MHz + Cortex-M4 @240MHz,双核可独立运行固件、通过共享内存/信号量通信。双核同步调试需专用 SWD 接口与多目标调试器。本指南演示用 Segger J-Link 连接双核、搭建环境、跑双核 Blink 示例。
硬件连接
- Portenta H7 装上 Breakout 板,暴露 20Pin MIPS 风格排针,连接双核 SWD 信号。
- 接 20Pin MIPS 转接板分离调试信号。
- 按下图接线连接 J-Link;或用 0.05 间距连接器自制,参考第二张图。


软件环境搭建
- 安装 Arduino IDE(官网下载)。
- 安装 Visual Studio + Visual Micro 扩展(官网教程)。
- 通过 Visual Micro Explorer 或 Arduino IDE 板卡管理器安装 Arduino Mbed OS Portenta Boards 包。
- 用 Zadig 将 J-Link Interface 0 的 USB 驱动替换为 WinUSB(配套视频演示)。
编写双核示例
准备两个独立工程,分别给 M7 与 M4。关键点:M7 工程的 setup() 开头必须调用 bootM4() 激活 M4 核心。
M7 核心调试配置
VS 中打开 M7 工程,Debug > Hardware 选 Segger J-Link Debugger(非 NoOpenOCD 版)。编译上传至 M7。

M4 核心调试配置
打开 M4 工程,Debug > Hardware 选 Segger J-Link Debugger (NoOpenOCD)。编译上传至 M4。
启动双核调试会话
先 Debug > Attach to Process 挂载 M7 调试会话,再同样操作挂载 M4。此后可在任一工程下断点、单步、继续,双核独立响应各自命令。

演示视频
参考链接
示例代码
M4 核心 Blink(蓝灯)
// Portenta M4 核心 Blink
void setup() { pinMode(LED_BLUE, OUTPUT); }
void loop() {
digitalWrite(LED_BLUE, HIGH); delay(1000);
digitalWrite(LED_BLUE, LOW); delay(1000);
}
M7 核心 Blink(红灯)
// Portenta M7 核心 Blink
void setup() {
bootM4(); // 激活 M4
pinMode(LED_RED, OUTPUT);
}
void loop() {
digitalWrite(LED_RED, HIGH); delay(1000);
digitalWrite(LED_RED, LOW); delay(1000);
}
原理图
Breakout 板 SWD 引脚到 J-Link 的连接示意:

制造工艺
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- Earth Analyzer:面向精准农业的多模态物联网环境监测巡检车
- Arduino 发布 Portenta H7:CES 首秀工业级 IoT 开发板