news 2026/9/17 6:11:29

Zephyr FK750M1-VBT6 板级移植解析:STM32H750(Cortex-M7 @ 480MHz)硬件、时钟树与编译烧录实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Zephyr FK750M1-VBT6 板级移植解析:STM32H750(Cortex-M7 @ 480MHz)硬件、时钟树与编译烧录实战

Zephyr FK750M1-VBT6 板级移植解析:STM32H750(Cortex-M7 @ 480MHz)硬件、时钟树与编译烧录实战

【免费下载链接】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 仓库中的 FANKE FK750M1-VBT6 核心板文档展开,系统梳理这块基于 STM32H750VBT6(Arm Cortex-M7 + FPU、480MHz)的 MCU 平台的硬件构成、默认外设引脚映射与 25MHz 晶振经 PLL 推导至 480MHz 的系统时钟设计,并结合仓库内设备树、defconfig、board.cmake 与 OpenOCD 配置给出从west build到 ST-Link 烧录、串口验证Hello World! fk750m1_vbt6输出的完整流程。读完后你可以独立完成该板的应用编译、烧写与串口调试,并理解其外设映射与运行配置在源码中的落地方式。

1. 板卡概述

FK750M1-VBT6 是 FANKE Technology 推出的核心板开发平台,主控芯片为 STMicroelectronics 的 STM32H750VBT6 微控制器(LQFP100 封装),内置 Arm 32 位 Cortex-M7 内核与单精度浮点单元(FPU),CPU 主频最高可达 480MHz。该板定位为量产产品开发前的参考设计(reference design),凭借丰富的外围硬件(尤其是显示与图像相关接口)便于开发者对外设与整机功能进行完整评估和测试,再平滑过渡到最终产品。

板级元信息定义在 board.yml 中:板名为FK750M1-VBT6,厂商为fanke,关联的 SoC 为stm32h750xx;Kconfig.fk750m1_vbt6 中BOARD_FK750M1_VBT6选项通过select SOC_STM32H750XX将该板与对应的 STM32H750 SoC 配置绑定,编译时-b fk750m1_vbt6即会启用这一 SoC 体系。

2. 硬件构成

FK750M1-VBT6 提供的硬件组件如下(与板卡文档一致):

类别规格
主控STM32H750VB,LQFP100 封装
CPUARM 32 位 Cortex-M7(带 FPU)
主频最高 480 MHz
Flash128 KB 片上 Flash
SRAM1 MB:192 KB TCM RAM(64 KB ITCM + 128 KB DTCM)+ 864 KB 用户 SRAM + 备份域 4 KB SRAM
主时钟外部 25MHz 晶振
RTC32.768kHz 晶振
定时器高分辨率定时器(最高 2.1 ns 分辨率)、32 位定时器 ×2、16 位定时器 ×17
按键1 个复位键、1 个 BOOT 键
LED1 个用户 LED
外部存储64-Mbit QSPI NOR Flash(W25Q64)、1 个 microSD 卡槽
接口USB OTG FS/HS、1 路 DCMI 相机接口、1 路 SPI LCD 接口
调试SWD 与串口经排针引出
IO 引出73 个 IO 引脚

与片上资源配套的是 fk750m1_vbt6.yaml 中声明的板级标识信息:type: mcuarch: arm、RAM 1024 KB、Flash 128 KB、支持工具链为zephyrgnuarmemb,与上述内存/Flash 规格一一对应。

3. Zephyr 支持的特性

该板在 Zephyr 中当前声明支持的外设驱动为UARTGPIO(见 fk750m1_vbt6.yaml 的supported字段)。默认内核配置 fk750m1_vbt6_defconfig 在此基础上启用了:

  • CONFIG_ARM_MPU:使能 MPU 内存保护;
  • CONFIG_HW_STACK_PROTECTION:使能硬件栈保护;
  • CONFIG_SERIAL/CONFIG_CONSOLE/CONFIG_UART_CONSOLE:串口控制台;
  • CONFIG_GPIO:GPIO 驱动。

这组默认项体现了该板"安全特性优先"的移植取向(MPU + 硬件栈保护默认打开),同时保证开箱即用的串口控制台能力。

4. 默认引脚映射

FK750M1-VBT6 板上有 5 个 GPIO 控制器,负责引脚复用(pin muxing)、输入输出方向及上拉/下拉等配置。Zephyr 的设备树 fk750m1_vbt6.dts 在stm32h750vbtx-pinctrl.dtsi引脚复用基座之上,定义了如下默认外设映射:

  • UART1 TX/RX:PA9/PA10(经排针引出,作 Zephyr 控制台);
  • 用户 LED(蓝色):PC13;
  • SPI4 NCS/CLK/MOSI:PE11/PE12/PE14(接 SPI LCD 屏);
  • QuadSPI NCS/CLK/IO0/IO1/IO2/IO3:PB6/PB2/PD11/PD12/PE2/PD13(接 W25Q64 NOR Flash);
  • USB DM/DP:PA11/PA12。

设备树中与之对应的关键节点:

  • usart1节点(fk750m1_vbt6.dts)配置了usart1_tx_pa9/usart1_rx_pa10引脚复用,current-speed = <115200>,并置status = "okay"
  • 用户 LED 在顶层leds节点中定义为gpios = <&gpioc 13 GPIO_ACTIVE_LOW>(fk750m1_vbt6.dts),低电平点亮,并通过aliases暴露为led0,可直接用device/led接口访问;
  • spi4节点(fk750m1_vbt6.dts)复用 SCK=PE12、MOSI=PE14,片选 CS 软配置为PE11GPIO_ACTIVE_LOW);gpiod中还定义了lcd_ledgpio-hog(PD15 输出高电平),用于点亮屏幕背光。

5. 时钟树:25MHz 晶振经 PLL 推至 480MHz

板级文档说明:FK750M1-VBT6 的系统时钟可由内部振荡器、外部振荡器或主 PLL 驱动,默认由 PLL 以 480MHz 驱动,PLL 输入来自 25MHz 外部晶振。

设备树 中这一时钟链路可以精确读出:

  1. &clk_hseclock-frequency = <DT_FREQ_M(25)>,即 25MHz HSE 使能;
  2. &plldiv-m = <5>; mul-n = <192>; div-p = <2>,即 VCO 频率 = 25/5 × 192 = 960MHz,再经 P 分频得到480MHz系统时钟;
  3. &rccclocks = <&pll>clock-frequency = <DT_FREQ_M(480)>,同时配置了 D1CPRE/D1PPRE/D2PPRE1/D2PPRE2/D3PPRE 等总线分频器(均为 ×2),将 AHB/APB 总线频率从 480MHz 逐级分频到各外设域可用范围;
  4. &pll3:同样以 25MHz HSE 为源,div-m = <5>; mul-n = <192>; div-p = <2>,其 Q/R 分频(div-q = <20>div-r = <99>)从源码结构看是为 USB/SDMMC 等外设域提供独立时钟输出;
  5. &clk_hsi48亦置为okay,可推断用于为 USB PHY 等需要 48MHz 精度时钟的外设提供内部 HSI48 源。

6. 片外存储:QuadSPI 接 W25Q64

虽然主 Flash 是片上 128KB,但该板通过 QuadSPI 外挂了一片Winbond W25Q64(64-Mbit,即 8MB)NOR Flash。设备树 中quadspi节点将六个引脚(PB6/PB2/PD11/PD12/PE2/PD13)绑定到 QuadSPI 外设,qspi-nor-flash@0子节点声明了:

  • size = <DT_SIZE_M(64)>:64 Mbit 容量;
  • qspi-max-frequency = <40000000>:QSPI 时钟最高 40MHz;
  • spi-bus-width = <4>:四线模式,写命令使用PP_1_1_4(1-1-4 page program);
  • partitions:划分出一个覆盖全片 64Mbit 的storage分区(partition@0),供 Zephyr 存储子系统使用。

7. 串口控制台

Zephyr 控制台输出固定分配到UART1,默认通信参数115200 8N1。这一点与设备树中zephyr,console = &usart1zephyr,shell-uart = &usart1(fk750m1_vbt6.dts)以及usart1节点的current-speed = <115200>完全吻合。PA9/PA10 已引出到板载排针,接 USB 转串口线缆即可使用。

8. 编译与烧录

FK750M1-VBT6没有板载调试器,需要使用外部调试器(如 ST-Link)通过板上的 SWD 排针完成烧录与调试。

8.1 烧录流程

  1. 用 SWD 接口将 ST-Link 调试器连接到 FK750M1-VBT6 的 SWD 排针;
  2. 将 ST-Link 通过 USB 连接到主机;
  3. 按 Zephyr 常规方式编译并烧录应用,以 hello_world 示例为例:
$ west build -b fk750m1_vbt6 samples/hello_world $ west flash

8.2 支持的 runner

board.cmake 为该板注册了三种烧录/调试后端:

  • OpenOCD--target-handle=_CHIPNAME.cpu0,复用 boards/common/openocd.board.cmake 公共逻辑;
  • STM32CubeProgrammer--port=swd--reset-mode=hw
  • J-Link--device=STM32H750VB--speed=4000

配套的 OpenOCD 配置位于 support/openocd.cfg,针对该板做了以下关键设置:

  • source [find interface/stlink-dap.cfg]+transport select "dapdirect_swd":通过 ST-Link 的 DAP 模式直连 SWD;
  • set CHIPNAME STM32H750VBsource [find target/stm32h7x.cfg]:使用 STM32H7 系列目标定义;
  • set ENABLE_LOW_POWER 1:允许应用在低功耗模式下仍可被调试器访问;
  • set STOP_WATCHDOG 1:halt 时暂停看门狗计数,避免烧录过程中被看门狗复位打断;
  • reset_config srst_only srst_nogate connect_assert_srst+CONNECT_UNDER_RESET 1:使用硬件复位、连接时先拉低复位(connect under reset),从源码注释看这是为"低功耗(WFI 等)应用中挂起连接"场景准备的;CORE_RESET 0表示复位时不主动重启 CPU 核。

8.3 串口验证烧录结果

烧录完成后,运行串口主机程序连接开发板(示例使用 minicom,按实际 USB 串口设备名调整):

$ minicom -D /dev/ttyACM0 -b 115200

按下板上 RESET 键复位,即可在串口看到:

Hello World! fk750m1_vbt6

这行输出同时验证了时钟树、UART1 引脚复用(PA9/PA10)、115200 8N1 串口参数与控制台驱动整条链路工作正常。

8.4 调试现状说明

需要明确:按照当前移植文档的表述,该 Zephyr 移植目前不支持调试(debugging),SWD 排针主要用于 ST-Link 烧录。从 openocd.cfg 已配置 connect-under-reset、低功耗与看门狗保护等参数来看,底层调试通路具备一定基础,但是否可用请以当前版本的实际移植能力为准。

9. 小结与延伸阅读

FK750M1-VBT6 在 Zephyr 中的移植核心脉络为:stm32h750xxSoC(Cortex-M7 @ 480MHz)→ 25MHz HSE 经 PLL(M=5/N=192/P=2)产生 480MHz 系统时钟 → UART1(PA9/PA10,115200 8N1)承载控制台 → QuadSPI 外挂 W25Q64 提供 8MB 片外存储 → ST-Link 经 SWD 排针完成烧录。相关源码入口:

  • 板级文档:boards/fanke/fk750m1_vbt6/doc/index.rst
  • 设备树(时钟/引脚/存储定义):boards/fanke/fk750m1_vbt6/fk750m1_vbt6.dts
  • 默认内核配置:boards/fanke/fk750m1_vbt6/fk750m1_vbt6_defconfig
  • 烧录 runner 注册:boards/fanke/fk750m1_vbt6/board.cmake
  • OpenOCD 配置:boards/fanke/fk750m1_vbt6/support/openocd.cfg
  • 厂商目录索引(同厂商还有 FK723M1-ZGT6、FK743M5-XIH6、FK7B0M1-VBT6 等 FANKE 板卡):boards/fanke/index.rst
  • 构建与运行应用的通用说明可参考 Zephyr 文档中的 "Build an application" 与 "Run an application" 章节(对应原文档引用的build_an_applicationapplication_run主题)。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 6:11:08

开源办公套件LibreOffice:免费搞定PDF转Excel与表格处理

前一阵有朋友发消息问我&#xff1a;PDF里有个表格&#xff0c;想抠出来做成Excel&#xff0c;WPS提示要开会员&#xff0c;网上那些“免费转换工具”不是要上传云端就是带水印&#xff0c;有没有靠谱办法&#xff1f;我回了一句&#xff1a;换LibreOffice试试&#xff0c;以后…

作者头像 李华
网站建设 2026/9/17 6:10:09

DDR3到DDR4迁移选型避坑指南:电源、拓扑与训练全解析

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

作者头像 李华
网站建设 2026/9/17 6:09:30

Sublime Text4 配置 Python 运行环境:构建系统与插件实战

1. 为什么我最后还是回到 Sublime Text4 搭 Python 环境Sublime Text4 搭 Python 运行环境这件事&#xff0c;我从 Sublime Text3 时代一直折腾到现在&#xff0c;中间来来回回换过 PyCharm、VS Code&#xff0c;甚至尝试过在终端里纯靠 vim 加插件硬扛&#xff0c;最后还是回到…

作者头像 李华
网站建设 2026/9/17 6:09:03

Python爬取Boss直聘大数据岗位并进行数据清洗与可视化分析

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

作者头像 李华
网站建设 2026/9/17 6:05:52

用python-pptx解析PPTX:SMART目标校验与任务排期巡检

简介&#xff1a;这是一份面向团队管理者、项目负责人及培训人员的《团队目标管理》PPT课件&#xff0c;围绕目标设定与落地执行展开&#xff0c;适合内部培训、管理入门或团队复盘参考。课件从彼得杜拉克的目标观切入&#xff0c;梳理团队目标的三大作用&#xff0c;剖析目标模…

作者头像 李华