这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【MAX78000FTHR|Zephyr】ShellLED

共1条 1/1 1 跳转至页

【MAX78000FTHR|Zephyr】ShellLED

高工
2026-10-10 12:21:50     打赏
MAX78000FTHR Shell LED 工程移植文档

本文档说明如何在新的电脑环境或将本工程移植到其他情况时,完整复现编译、烧录环境。

一、环境清单

项目本机路径 / 版本说明
Zephyr 源码D:\luglZephyrproject\zephyr版本 4.4.0
Zephyr SDKD:\luglZephyrproject\zephyr-sdk-1.0.1\zephyr-sdk-1.0.1含 ARM 工具链与 OpenOCD
westv1.5.0pip install west
Python3.12Zephyr 构建依赖
板级目标名max78000fthr/max78000/m4Cortex-M4 核
调试器板载 MAX32625PICO(CMSIS-DAP)USB 连接即可烧录

二、工程结构

max78000fthr_shell/
├── CMakeLists.txt                          # 工程定义
├── prj.conf                                # CONFIG_GPIO=y, CONFIG_SHELL=y
├── boards/
│   └── max78000fthr_max78000_m4.overlay    # 红色 LED 电平极性修正
└── src/
    └── main.c                              # shell 命令实现

关键文件说明

prj.conf

CONFIG_GPIO=y
CONFIG_SHELL=y

boards/max78000fthr_max78000_m4.overlay

MAX78000FTHR 板载红色 LED(LED1,GPIO2.0)硬件上是低电平点亮,Zephyr 官方板级 DTS 写的是 GPIO_ACTIVE_HIGH,需要在本工程内用 overlay 修正为 GPIO_ACTIVE_LOW,否则 led on / led off 的实际效果是反的:

#include <zephyr/dt-bindings/gpio/gpio.h>

&led1 {
    gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
};

注意 overlay 文件名必须与板级目标对应:max78000fthr_max78000_m4.overlay(板名和 qualifiers 用下划线连接)。

三、烧录环境配置(关键步骤)

MAX78000 的 flash 烧录需要 ADI 提供的 OpenOCD 目标配置脚本,Zephyr SDK 自带的 OpenOCD 中没有包含,需手动添加一次(每台新电脑只需做一次):

  1. 从 ADI 官方 OpenOCD 仓库(tag:0.12.0-1.4.0)下载两个文件:

  2. 复制到 SDK OpenOCD 的 target 脚本目录:

<Zephyr SDK>\hosttools\openocd\share\openocd\scripts\target\

本机备份位置:D:\luglZephyrproject\tools\openocd-adi-scripts\target\

  1. 说明:max78000.cfg 中针对该芯片做了专门的复位处理(在 ROM 地址 0x2124 设置硬件断点捕获复位后的 CPU),保证烧录过程稳定可靠。配置完成后 west flash 即可直接使用,无需其他参数。

四、编译与烧录

方式一:一键脚本(推荐)

D:\luglZephyrproject\build_max78000fthr_shell.bat

方式二:手动命令

CMD:

cd /d D:\luglZephyrproject
set ZEPHYR_SDK_INSTALL_DIR=D:\luglZephyrproject\zephyr-sdk-1.0.1\zephyr-sdk-1.0.1
set ZEPHYR_TOOLCHAIN_VARIANT=zephyr
west build -b max78000fthr/max78000/m4 app\max78000fthr_shell -p
west flash -d build

Git Bash:

cd /d/luglZephyrproject
export ZEPHYR_SDK_INSTALL_DIR='D:\luglZephyrproject\zephyr-sdk-1.0.1\zephyr-sdk-1.0.1'
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
west build -b max78000fthr/max78000/m4 app/max78000fthr_shell -p
west flash -d build

编译成功的资源占用:

FLASH:  47196 B   512 KB   9.00%
RAM:     8656 B    48 KB  17.61%

五、LED 命令

控制的 LED 为板载红色 LED(LED1),对应 GPIO2.0。

命令列表

命令功能示例
led on点亮 LEDled on
led off熄灭 LEDled off
led toggle翻转 LED 当前状态led toggle
led blink <间隔ms>按指定毫秒间隔闪烁led blink 200
led blink 0停止闪烁(保持当前状态)led blink 0

查看帮助

输入 led 后按 Tab 键可自动补全/列出所有子命令;输入 help 可查看全部 shell 命令。

六、使用示例

uart:~$ led on
LED on

uart:~$ led toggle
LED toggled, now off

uart:~$ led blink 500
Blinking every 500 ms

uart:~$ led blink 0
Blink stopped

uart:~$ led off
LED off

image.png

七、移植到其他 MAX78000 板卡

如需移植到 MAX78000EVKIT 等同芯片板卡:

  1. 将编译目标改为对应板子,如 max78000evkit/max78000/m4;

  2. 检查目标板 DTS 中的 LED 定义(节点标签、GPIO 端口、电平极性),相应修改或删除本工程的 overlay;

  3. 烧录脚本 max78000.cfg 相同,无需重新配置。

八、移植注意事项

  • 板级目标名必须带 qualifiers:max78000fthr/max78000/m4,不能省略 /max78000/m4。

  • west build 的 -p 参数表示 pristine(全量重新配置),修改了 prj.conf 或 overlay 后建议保留。

  • 串口控制台使用板载调试器的虚拟串口(CDC),Windows 设备管理器中显示为 "USB 串行设备",波特率 115200。

  • 同一时刻只能有一个程序占用串口;烧录前请关闭串口工具,烧录完成后再打开。





关键词: MAX78000FTHR     Zephyr     Shell    

共1条 1/1 1 跳转至页

回复

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