Zephyr 上的 BeagleConnect Zepto:基于 TI MSPM0L1117 的低成本嵌入式开发板实战指南
【免费下载链接】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
BeagleConnect Zepto 是 BeagleBoard.org 推出的低成本微控制器开发板,核心为德州仪器(TI)MSPM0L1117(Arm Cortex-M0+ @ 32 MHz,128 KB Flash / 16 KB SRAM),并已获得 Zephyr RTOS 的一等公民支持。本文以 Zephyr 仓库中该板卡文档为主体,结合仓库内的设备树、Kconfig、构建与调试配置,系统讲解板卡硬件资源、Zephyr 支持特性、烧录与调试全流程,帮助你用west一步完成从编译到运行 Zephyr 应用的完整闭环。
硬件概览与板载资源
BeagleConnect Zepto 定位为低成本、可扩展的微控制器开发板,专为嵌入式开发而设计,其板载资源如下:
- 主控 MCU:TI MSPM0L1117,Arm Cortex-M0+ 内核,最高 32 MHz
- 存储:128 KB 片上 Flash、16 KB SRAM
- 扩展接口:mikroBUS 兼容扩展连接器 + 12 个非 mikroBUS 引脚
- 连接接口:两个 QWIIC 扩展连接器(I2C,3V3 供电)
- LED:RGB LED + 蓝色用户 LED
- 调试与烧录:UART(需外接 USB 转 UART 适配器);SWD(支持 XDS110 调试探针)
- HAT 兼容:支持 Raspberry Pi 与 BeagleY-AI HAT 兼容连接器,可直接从树莓派或 BeagleY-AI 板卡烧录
从 Zephyr 仓库的设备树 beagleconnect_zepto.dts 可以进一步确认板级默认启用与引出的外设:UART0(控制台)、GPIOA、看门狗 WDT0、硬件 TRNG 熵源、定时器 TIMG0 及其 16 位计数器 counterg0、RTC;同时在 GPIOA 上定义了蓝色用户 LED(PA13,高电平有效)与一个按键(PA18,低电平有效)。板卡的compatible为beagle,beagleconnect_zepto_mspm0l1117。
实物板卡细节:上方两个 QWIIC 接口标注
3V3 ONLY(SCL: PA0 / SDA: PA1),中间为 MSPM0L1117 主控,下方为 RESET 与 FLASH 按键以及 GND、BSL、RST、BRX、BTX、CLK、DIO、3V3 等引出引脚,右侧标注 USR: PA13、RGB: PA15。
Zephyr 中的板卡身份与支持的子系统
在 Zephyr 中,BeagleConnect Zepto 的板卡标识符(identifier)为beagleconnect_zepto/mspm0l1117,架构为arm,支持 Zephyr 官方工具链、GNU Arm Embedded 与 xtools。其内存布局为16 KB RAM / 128 KB Flash,与 beagleconnect_zepto.yaml 中声明一致。
Zephyr 为该板卡声明的受支持子系统包括:
| 子系统 | 说明 |
|---|---|
hwinfo | 硬件信息查询 |
entropy | 硬件 TRNG 熵源(ti,mspm0-trng) |
pinctrl | 引脚复用控制 |
uart | 串口(UART0 作为默认控制台) |
watchdog | 看门狗(WDT0) |
counter | 通用计数器(16 位 timer counterg0) |
gpio | GPIO(GPIOA) |
rtc | 实时时钟 |
这些子系统均可在对应驱动目录中找到实现,例如 drivers/rtc 下的ti,mspm0RTC 驱动、drivers/entropy 下的 TRNG 实现等。
从 SoC 侧看,soc/ti/mspm/mspm0l/Kconfig.soc 定义了SOC_MSPM0L1117(属于 MSPM0L 系列,SOC_SERIES_MSPM0L),板卡 Kconfig Kconfig.beagleconnect_zepto 通过select SOC_MSPM0L1117完成 SoC 绑定。MSPM0L 系列中断数默认 32(Kconfig.defconfig)。
设备树中的外设布局
板卡设备树beagleconnect_zepto.dts的关键内容:
- aliases:
led0→ 用户 LED,sw0→ 按键,watchdog0→ WDT0,counter→ counterg0,rtc→ RTC - chosen:
zephyr,console→ UART0,zephyr,entropy→ TRNG,zephyr,rtc→ RTC,zephyr,sram→ SRAM0,zephyr,flash→ Flash0 - gpio-keys:
button_0挂在 GPIOA18,低电平有效 - gpio-leds:
led_0挂在 GPIOA13,高电平有效 - UART0 引脚复用:TX 为 PA21(功能 2)、RX 为 PA22(功能 2,使能输入)
SoC 侧的 mspm0l1117.dtsi 定义了 128 KB Flash 地址范围,其上一级 mspm0l111x.dtsi 定义了 16 KB SRAM(0x20000000 起)、TRNG、两个 TIMG 定时器(含 16 位 counterg0)与 RTC 的寄存器地址与中断号。
构建第一个 Zephyr 应用
以hello_world为例,先确认已安装 Zephyr SDK 与 west 工作流,然后在 Zephyr 仓库根目录执行:
west build -b beagleconnect_zepto/mspm0l1117 samples/hello_world构建完成后,程序二进制位于build/zephyr目录下,即build/zephyr/zephyr.bin。hello_world示例源码位于 samples/hello_world,其prj.conf为空(默认使能控制台输出),设备树层面由板卡将zephyr,console指向 UART0。
若同时安装了多套工具链,可通过
-t指定,例如west build -b beagleconnect_zepto/mspm0l1117 -t gnuarmemb samples/hello_world。
默认板卡配置要点
板卡默认配置 beagleconnect_zepto_defconfig 只有三条关键项:
CONFIG_CLOCK_CONTROL=y # 启用时钟控制 CONFIG_SERIAL=y # 启用串口 CONFIG_UART_CONSOLE=y # UART 作为控制台 CONFIG_CONSOLE=y # 启用控制台子系统这保证了开箱即用即可通过 UART 看到Hello World!打印。
烧录固件(Flashing)
BeagleConnect Zepto 提供两条烧录路径,可根据手头硬件选择:
方式一:通过 BeagleBoard Imaging Utility(I2C/UART 或 HAT)
当板卡通过 I2C 或 UART 与主机连接时,使用BeagleBoard Imaging Utility(bb-imager)烧录build/zephyr/zephyr.bin。其核心优势是:板卡上的Raspberry Pi / BeagleY-AI HAT 兼容连接器可直接插到树莓派或 BeagleY-AI 上,无需额外飞线即可完成烧录。这是 BeagleBoard 生态推荐的便捷方式。
方式二:XDS110 调试探针 + OpenOCD(SWD)
当 XDS110 调试探针连接到板卡的 SWD 接口时,可直接使用 Zephyr 标准烧录流程:
west build -b beagleconnect_zepto/mspm0l1117 samples/hello_world west flashwest flash依赖 OpenOCD 运行器。板卡的 board.cmake 明确了运行器参数:
if(CONFIG_SOC_MSPM0L1117) board_runner_args(openocd "--no-halt" "--no-targets" "--gdb-client-port=3339" "--config=${BOARD_DIR}/support/openocd.cfg") include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) endif()其中--no-halt、--no-targets用于适配 TI MSPM0 的 OpenOCD 目标描述,--gdb-client-port=3339指定 GDB 端口,--config指向板卡自身的 OpenOCD 配置 support/openocd.cfg,该文件实际复用了 TI MSPM0 LaunchPad 的 OpenOCD 目标配置(source [find board/ti/mspm0-launchpad.cfg])。
调试(Debugging)
板卡支持XDS110 over SWD调试。连接 XDS110 探针后,直接执行:
west build -b beagleconnect_zepto/mspm0l1117 samples/hello_world west debug该命令会启动 OpenOCD 并通过 GDB 连接到目标板(GDB 客户端端口为 3339),随后即可设置断点、单步执行、查看寄存器与内存。注意调试会话中程序默认不强制 halt(--no-halt参数),适合在已经运行的目标上附加调试。
资源与参考
- 板卡文档:boards/beagle/beagleconnect_zepto/doc/index.rst
- 板卡设备树:beagleconnect_zepto.dts
- 板卡 YAML 声明:beagleconnect_zepto.yaml
- 板卡默认配置:beagleconnect_zepto_defconfig
- OpenOCD 支持配置:support/openocd.cfg
- SoC 定义:soc/ti/mspm/mspm0l/Kconfig.soc
- SoC 设备树:mspm0l1117.dtsi
- 示例程序:samples/hello_world
MCU 详细数据手册可查阅 TI 官方 MSPM0L1117 产品页,BeagleY-AI 板卡信息见 BeagleBoard.org 官网,BeagleBoard Imaging Utility 使用说明见其官方文档页(均可在 BeagleBoard 生态官网获取,此处不再赘述外部链接)。
【免费下载链接】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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考