Zephyr 在 Microchip M2GL025 IGLOO2 FPGA 上的 Mi-V RISC-V 软核移植与调试指南

发布时间:2026/9/20 4:35:00

Zephyr 在 Microchip M2GL025 IGLOO2 FPGA 上的 Mi-V RISC-V 软核移植与调试指南 操作系统嵌入式RTOS物联网【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址https://gitcode.com/GitHub_Trending/ze/zephyr点击查看免费下载导读本文以 Zephyr RTOS 仓库中 m2gl025_miv 板级支持包 为线索系统讲解如何基于 Microchip IGLOO2 FPGAM2GL025开发板上的 Mi-V RISC-V 软核 CPU 构建、烧录与调试 Zephyr 应用程序。读完本文你将掌握该开发板的软硬件架构、工程构建命令、基于 OpenOCD GDB 的二进制上传流程以及使用 Renode 进行无硬件仿真验证的方法可直接复用到基于 Zephyr 的 RISC-V FPGA 原型开发工作中。板级概览FPGA 上的 RISC-V 软核Microchip M2GL025 是一款基于 IGLOO2 架构的 FPGA 开发板。其独特之处在于板上的处理器并非硬核 ARM 或 RISC-V IP而是可以部署到 FPGA 逻辑资源中的Mi-V RISC-V 软核 CPU。这种FPGA 软核的组合使得开发者可以灵活定制处理器外设、调整内存映射甚至在同一片 FPGA 上迭代多种 SoC 配置非常适合嵌入式系统原型验证与教学实验。在 Zephyr 仓库中该板级支持包由以下文件构成m2gl025_miv.dts板级设备树描述 SoC 外设与 chosen 节点m2gl025_miv_defconfig板级默认 Kconfig 配置board.cmake 与 board.yml构建与仿真集成元数据support/Renode 仿真脚本.resc与.repl。从 board.yml 可以看到该板的核心标识为m2gl025_miv全称 M2GL025 Mi-V所属 SoC 为miv供应商为microchipKconfig.m2gl025_miv 中通过select SOC_MIV将板级配置与 Mi-V SoC 绑定。而在 m2gl025_miv.yaml 中明确了架构为riscv、工具链为 Zephyr 官方 RISC-V 工具链、RAM 为 64 KB并声明支持 Renode 仿真。硬件资源与设备树配置m2gl025_miv.dts 是整个板级支持的核心它基于microchip/microchip-miv.dtsi位于 dts/ 目录的 microchip 系列描述中展开并完成板级定制模型与兼容性model Microchip M2GL025 with MiV targetcompatible microchip,m2gl025-miv这是 Zephyr 驱动与设备树匹配的关键标识chosen 节点将控制台、Shell 串口绑定到uart0并将 Flash 与 SRAM 分别指向flash0、sram0串口外设uart0使能status okay波特率 115200时钟频率 66 MHz机器定时器mtimer时钟频率 4 MHz作为系统节拍与定时基准。板级默认配置 m2gl025_miv_defconfig 中开启CONFIG_CONSOLE、CONFIG_SERIAL、CONFIG_UART_CONSOLE保证串口控制台输出可用关闭CONFIG_GPIO最小化驱动占用开启CONFIG_XIP支持就地执行execute in place注释说明因 Mi-V 的SYS_CLOCK_HW_CYCLES_PER_SEC存在不准确问题将CONFIG_SYS_CLOCK_TICKS_PER_SEC设为 100 作为规避方案——这提醒我们在该软核平台上应以软件节拍配置为准。构建应用程序在 Zephyr 中m2gl025_miv已作为标准板名注册应用构建方式与其他目标板完全一致参考 构建应用指南。以仓库内任意应用为例构建命令如下west build -b m2gl025_miv path_to_application构建产物中会生成 Zephyr 的可执行二进制ELF该文件即后续烧录与调试的对象。若未使用 west也可直接通过 CMake 指定-DBOARDm2gl025_miv完成等价构建。烧录流程OpenOCD GDB由于 Mi-V 是 FPGA 上的软核其烧录与调试走的是 JTAG GDB 通道。官方文档要求准备两样工具OpenOCD负责通过调试器连接 FPGA 上的 RISC-V 核支持 RISC-V 的 GDB用于加载二进制并执行调试指令。这两者均可随 Microchip SoftConsole SDK 一并获得安装后按以下两步操作。第一步启动 OpenOCD 连接在终端中启动 OpenOCD使用 SoftConsole 自带脚本microsemi-riscv.cfg连接板卡注意通过LD_LIBRARY_PATH指定 OpenOCD 依赖库路径sudo LD_LIBRARY_PATHsoftconsole_path/openocd/bin \ softconsole_path/opencocd/bin/openocd --file \ softconsole_path/openocd/share/openocd/scripts/board/microsemi-riscv.cfg请将softconsole_path替换为本地 SoftConsole SDK 的实际安装路径。OpenOCD 成功连接后会保持运行监听本地 3333 端口等待 GDB 接入。第二步使用 GDB 上传二进制保持 OpenOCD 运行另开一个终端使用 SoftConsole 提供的riscv64-unknown-elf-gdb连接设备并加载固件softconsole_path/riscv-unknown-elf-gcc/bin/riscv64-unknown-elf-gdb \ -ex target extended-remote localhost:3333 \ -ex set mem inaccessible-by-default off \ -ex set arch riscv:rv32 \ -ex set riscv use_compressed_breakpoints no \ -ex load path_to_executable逐条解释上述 GDB 命令的作用GDB 命令作用target extended-remote localhost:3333连接本机 OpenOCD 提供的远程调试端口set mem inaccessible-by-default off允许访问默认标记为不可访问的内存区域避免软核地址空间加载失败set arch riscv:rv32显式指定 RISC-V 32 位架构Mi-V 为 RV32 内核set riscv use_compressed_breakpoints no禁用压缩断点C 扩展适配 OpenOCD 对该核的断点支持load path_to_executable将 ELF 固件下载到目标板内存中load成功完成后即可在 GDB 中执行continue或monitor reset让固件在板上运行。调试烧录成功后可继续借助 GDB 完成断点设置、单步、变量查看等标准调试操作。Zephyr 官方文档中提供了完整的应用调试指南参见 应用调试涵盖使用west debug/west debugserver等命令统一管理调试会话OpenOCD、JLink、QEMU 等多种调试后端的接入方式内核对象与线程的调试技巧。对于 Mi-V 软核平台建议遵循上文手动 GDB 会话的方式以便在 FPGA 原型阶段精确控制连接参数。无硬件验证Renode 仿真支持该板级支持包的一个亮点是内置了Renode仿真支持可在没有实体 FPGA 板卡的情况下先行验证 Zephyr 固件逻辑。board.cmake 声明了仿真平台renode并指向 m2gl025_miv.resc 仿真脚本与sysbus.uart串口终端m2gl025_miv.yaml 进一步将该板标记为testing.default true即 Zephyr 测试体系默认会针对该板运行支持范围内的测试用例网络与蓝牙相关标签被忽略。仿真脚本 m2gl025_miv.resc 的核心逻辑using sysbus mach create $name machine LoadPlatformDescription $ORIGIN/m2gl025_miv.repl showAnalyzer uart cpu PerformanceInMips 4通过 m2gl025_miv.repl 加载 Mi-V 平台描述UART 与 CLINT 定时器频率均配置为 4 MHzshowAnalyzer uart打开 UART 分析窗口可直接观察 Zephyr 串口控制台输出复位宏通过LoadELF $elf加载待测固件。使用 Renode 运行固件的典型命令west build -b m2gl025_miv path_to_application west build -t runwest build -t run会借助 board.cmake 中配置的renode仿真器自动加载构建产物并启动仿真从而在开发机上完成从构建到运行验证的完整闭环。小结与资源索引通过本文我们完整梳理了在 Microchip M2GL025 IGLOO2 FPGA 的 Mi-V RISC-V 软核上运行 Zephyr 的路径理解板级设备树与默认配置 → 使用标准 west 命令构建 → 通过 OpenOCD GDB 完成固件加载 → 借助 GDB 调试 → 利用 Renode 无硬件验证。这套流程对基于 FPGA 软核的 Zephyr 原型开发具有直接参考价值。进一步探索可参考以下仓库资源板级文档板级支持包的官方说明板级设备树 与 默认配置硬件抽象与实际外设配置Renode 仿真脚本无硬件运行固件的入口应用调试指南Zephyr 通用调试方法论。赞分享操作系统嵌入式RTOS物联网【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址https://gitcode.com/GitHub_Trending/ze/zephyr点击查看免费下载相关推荐Zephyr 移植实战在 Digilent Genesys 2 FPGA 上运行 64 位 CVA6 RISC-V 软核cv64a6_genesys_2 板级支持详解Zephyr 移植实战在 Digilent Genesys 2 FPGA 上运行 64 位 CVA6 RISC V 软核cv64a6_genesys_2 板操作系统嵌入式RTOS物联网Zephyr 在 OpenISA VEGAboardRV32M1上的开发实战RI5CY 与 ZERO-RISCY 双核 RISC-V 移植指南Zephyr 在 OpenISA VEGAboardRV32M1上的开发实战RI5CY 与 ZERO RISCY 双核 RISC V 移植指南 本指南以操作系统嵌入式RTOS物联网Zephyr 移植指南MuseLab nanoCH57x 开发板CH570/CH572 RISC-V SoC的构建、烧录与调试Zephyr 移植指南MuseLab nanoCH57x 开发板CH570/CH572 RISC V SoC的构建、烧录与调试 导读 本文以 Zephyr操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/20 4:30:00

Colibri:面向MoE模型的轻量级C语言推理调度引擎

1. Colibri不是蜂鸟,是前沿MoE推理引擎的代号最近在几个AI底层技术社区里频繁看到“colibri”这个词,它既不是生物学里的蜂鸟属(Colibri),也不是某个新出的UI框架或前端库——而是当前大模型推理领域一个正在快速演进的…

2026/9/20 4:29:59

BrewUI实战:macOS包管理可视化与依赖决策指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 5:45:03

用Git Worktree管理并行AI Agent工作流:Worktrunk实践指南

最近这半年,我大部分工作时间都泡在AI编程Agent里。Codex、Claude Code、Trae CLI这些工具轮着试,发现一个越来越明显的矛盾:工具越好用,并行跑的欲望就越强,可同一个工作目录里同时开好几个Agent任务,几乎…

2026/9/20 5:45:03

软件测试实习手记:从文档基线到回归测试的完整实战指南

简介:这是一份大学生毕业实习日志合集,来自西南民族大学软件工程专业学生在重庆桂珞软件开发有限公司软件测试岗位的30篇记录,面向正在准备毕业实习、需要撰写实习日志或初入测试行业的在校生。日志按日期覆盖入职第一天办理手续、熟悉项目文…

2026/9/20 5:45:03

dsh-market 踩坑记:5个高频报错与完整解决方案

先从自己踩坑经历说起。上个月我把工作流切到 DSH 上,顺手想通过 dsh-market 这个插件市场统一管理插件,结果半天时间全耗在报错上。从 “plugin tree failed to load” 到 “authentication required”,再到图片输入被拒、WSL 里找不到命令&…

2026/9/20 5:45:03

Shell字符串截取:${}语法详解与高效实践

1. Shell字符串截取基础与${}语法解析在Shell脚本编写中,字符串操作是最基础却最频繁使用的功能之一。${}作为参数扩展(Parameter Expansion)的核心语法,提供了远比简单变量替换更强大的字符串处理能力。许多脚本新手常犯的错误是过度依赖外部命令如cut、…

2026/9/20 5:40:02

LibreChat:企业级开源对话平台与MCP/Agents集成实战

1. LibreChat 是什么?一个真正能落地的开源对话平台LibreChat 不是另一个“玩具级”聊天界面,也不是套着 Web UI 外壳的 API 转发器。它是一个从第一天起就按生产环境标准设计的、可自托管、可深度定制、可与企业现有系统无缝集成的LLM 对话基础设施层。…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码