资讯动态

Linux 内核中的 STM32H750 支持:Cortex-M7 高主频 MCU 平台特性与设备树实战解析

发布时间:2026/9/12 11:04:12 来源:尧图企业网站定制
Linux 内核中的 STM32H750 支持Cortex-M7 高主频 MCU 平台特性与设备树实战解析【免费下载链接】linuxLinux kernel source tree项目地址: https://gitcode.com/GitHub_Trending/li/linux导读本文以内核文档 stm32h750-overview.rst 为主线系统梳理 STMicroelectronics STM32H750Cortex-M7 内核、最高 480MHz 主频的 MCU的硬件特性清单并结合 Linux 内核源码树中真实的设备树DTB与平台代码说明该芯片在 ARM Linux 下的支持方式。读完本文你将掌握 STM32H750 的片上资源全貌、内核中对它的板级适配入口art-pi 开发板设备树、以及如何为基于该芯片的板卡启用与扩展各类外设。一、文档定位一份简洁的 SoC 概览Documentation/arch/arm/stm32/stm32h750-overview.rst是内核文档中 STM32 平台系列概览文档之一与同目录下的 stm32h743-overview.rst、stm32f429-overview.rst 等保持一致的体例以Introduction特性清单 Resources数据手册/参考手册获取方式的极简结构为内核开发者提供 SoC 的快速索引。其作者为 Dillon Mindillon.minfeigmail.com该作者同样是内核中 stm32h750 相关设备树文件stm32h750.dtsi、stm32h750i-art-pi.dts的版权作者Copyright 2021 - Dillon Min。从内核的角度看STM32H750 与同系列的 STM32H743 属于同一芯片家族在设备树层面二者直接复用同一份stm32h743.dtsi但定位有所差异H750 属于 ST 的 Value line 产品线片上 Flash 缩减为 128KB但保留了完整的高性能外设集可借助外部存储器FMC 连接的 SDRAM/NOR/NAND、QSPI 连接的 SPI NOR Flash弥补存储空间的不足这一设计思路也在内核的板级设备树中得到了直接体现。二、核心硬件特性逐项解析原文档列出了 STM32H750 的完整特性清单以下逐条展开并对照内核设备树源码说明其在 Linux 中的落地情况。1. Cortex-M7 内核最高 480MHzSTM32H750 采用 ARM Cortex-M7 内核主频最高可达 480MHz面向对算力有较高要求的嵌入式应用如人机交互、音频处理、电机控制等。在内核中这类基于 Cortex-M 内核的 SoC 由 ARMv7-M 架构支持平台侧通过CONFIG_ARM_SINGLE_ARMV7M配置使能见 arch/arm/mach-stm32/board-dt.c 中的#ifdef CONFIG_ARM_SINGLE_ARMV7M分支与armv7m_restart重启回调。同时H750 与 H743 均支持双核变体H747内核兼容列表中也出现了 st,stm32h747 字符串。2. 128KB 内部 Flash 1MB 内部 RAM这是 H750 与 H743 最显著的差异点——片上 Flash 由 2MBH743缩减为 128KBH750而 1MB 内部 RAM 保持不变。128KB 的 Flash 显然无法容纳完整内核镜像因此实际 Linux 运行方案通常是把内核与根文件系统放入外部存储器板级设备树中通过chosen节点的bootargs root/dev/ram指定从 RAM disk 启动根文件系统外部 128Mbit16MBSPI NOR Flash 则被划分为根文件系统分区见下文 QSPI 小节。3. FMC 控制器连接 SDRAM、NOR 与 NANDFMCFlexible Memory Controller灵活存储控制器允许 SoC 直连并行存储器包括 SDRAM、NOR Flash 与 NAND Flash。对于 Flash 容量较小的 H750 而言FMC 是扩展代码/数据存储空间的关键通路典型场景是外扩 SDRAM 作为大容量运行内存。在内核中FMC 设备树节点定义于 stm32h743.dtsiH750 复用之对应驱动位于drivers/memory/stm32-fmc2-ebi.c等实现中。4. 双模式 QSPI双模式 QSPIOctal/Quad SPI文档中 Dual mode QSPI 指支持双 Flash 或双 Bank 工作模式用于高速连接 SPI NOR Flash。在 stm32h750i-art-pi.dts 中SPI1 挂接了 Winbond W25Q128 SPI NOR Flashspi1 { status okay; pinctrl-0 spi1_pins; pinctrl-names default; cs-gpios gpioa 4 GPIO_ACTIVE_LOW; dmas dmamux1 37 0x400 0x05, dmamux1 38 0x400 0x05; dma-names rx, tx; flash0 { #address-cells 1; #size-cells 1; compatible winbond,w25q128, jedec,spi-nor; reg 0; spi-max-frequency 80000000; partition0 { label root filesystem; reg 0 0x1000000; }; }; };该节点启用了 DMA 传输通过 DMAMUX1 请求线 37/38并声明了 80MHz 的 SPI 时钟频率与完整的 16MB 根文件系统分区是小 Flash 大外部存储方案的典型落地。5. SD/MMC/SDIO 支持芯片集成 SDMMC 控制器可驱动 SD 卡、eMMC 与 SDIO 设备。art-pi 板级设备树中同时启用了两个 SDMMC 控制器SDMMC14-bit 总线宽度连接 microSD 卡配置了broken-cd无卡检测引脚、st,neg-edge负沿采样等 ST 平台特有属性供电由固定稳压器v3v33.3Vregulator-always-on提供SDMMC24-bit 总线连接板载 WiFi 模组brcm,bcm4329-fmac使用non-removable标记不可移除设备供电由 GPIO 控制的wlan_pwr稳压器提供PC13 引脚、enable-active-high。6. 以太网控制器H750 集成 10/100M 以太网 MAC。在 art-pi 设备树中MAC 节点虽然被配置为status disabled板卡默认未启用但完整声明了 RMII 接口的引脚复用ethernet_rmii、phy-mode rmii以及挂接在 MDIO 总线上的 PHY 设备地址 0snps,dwmac-mdio兼容性表明使用 Synopsys DesignWare MAC 驱动框架。若板卡实际搭载以太网 PHY只需将状态改为okay并补充 PHY 复位 GPIO 等信息即可启用。7. USB OTG FS HS 控制器芯片提供 Full-Speed 与 High-Speed 两套 USB OTG 控制器可同时满足低速外设如 HID 设备与高速传输如大容量存储、UVC 摄像头的需求。在 stm32h743.dtsi 中可找到对应的usbotg_hs、usbotg_fs节点定义内核侧由drivers/usb/dwc2驱动支持。8. I2C、SPI、CAN 总线芯片提供多路 I2C、SPI 与 CANFD控制器。设备树层面stm32h743.dtsi 中定义了st,stm32h7-i2c、st,stm32h7-spi、st,stm32h7-fdcan等兼容字符串的外设节点均带resets复位控制通过STM32H7_APB1L_RESET(...)等 RCC 宏定义与clocks时钟由stm32h7-rcc绑定提供属性节点默认status disabled由板级设备树按需打开。9. 16/32 位通用定时器芯片集成多个 16 位与 32 位通用定时器。在内核设备树中它们以st,stm32-timer通用定时器、st,stm32-lptimer低功耗定时器含 PWM/trigger/counter 三个子功能节点见 stm32h743.dtsi 中的 lptimer1 定义等形式呈现。定时器 PWM 子节点使用#pwm-cells 3可配合内核 PWM 框架与pwm-leds等子系统实现呼吸灯、背光调节等功能。10. 串行音频接口SAISAISerial Audio Interface用于连接外部音频编解码器Codec是 I2S 之外更高性能的音频总线方案。设备树中对应st,stm32-sai节点板级配置通常将 SAI 与音频 Codec 子节点如audio-codec绑定由 ASoC 框架驱动sound/soc/stm。11. LCD 控制器芯片集成 TFT-LCD 控制器可直接驱动并行 RGB 接口的 LCD 屏。内核侧对应st,stm32-ltdcLTDC 控制器驱动支持多种分辨率与时序配置常与 DMA2D 图形加速引擎配合用于 GUI 应用。12. HDMI-CECHDMI-CEC 控制器用于通过 HDMI 线缆实现消费电子控制协议可让设备之间互发遥控指令。设备树中对应st,stm32-cec节点内核驱动位于drivers/media/cec/platform/stm32/。13. SPDIFRXSPDIFRX 是 Sony/Philips Digital Interface 接收器用于接收同轴/光纤数字音频信号。设备树对应st,stm32-spdifrx节点通常与 DMA 配合将音频流送入内存后交由音频子系统处理。14. DFSDMDFSDMDigital Filter for Sigma-Delta Modulators是面向 Sigma-Delta 调制器的数字滤波器外设常用于高精度电流/电压测量如电机相电流采样。设备树对应st,stm32-dfsdm节点支持多通道、多种滤波模式可通过 IIO 框架drivers/iio/adc/stm32-dfsdm-adc.c以 ADC 形式访问。三、内核中的平台适配从 compatible 字符串到板级设备树1. 平台级兼容匹配在内核中一个 SoC 的 Linux 支持需要三件套平台代码machine、设备树源文件dtsi与板级设备树dts。对于 STM32H750平台代码arch/arm/mach-stm32/board-dt.c 的stm32_compat兼容字符串数组中明确包含st,stm32h750同时包含st,stm32h743、st,stm32h747等同族芯片。内核启动时通过匹配设备树根节点的compatible属性完成机器初始化SoC 级设备树stm32h750.dtsi 全文仅有一行有效内容——#include stm32h743.dtsi即 H750 完全复用 H743 的外设描述因为二者内核外设基本一致仅存储容量等参数不同而 H743 的设备树又依次包含armv7-m.dtsiCortex-M 通用骨架与 ST 时钟/RCC 绑定头文件板级设备树stm32h750i-art-pi.dts 面向 RT-Thread 出品的 STM32H750i-ART-PI 开发板model RT-Thread STM32H750i-ART-PI boardcompatible st,stm32h750i-art-pi, st,stm32h750构建入口arch/arm/boot/dts/st/Makefile 的dtb-y列表包含stm32h750i-art-pi.dtb使该板卡镜像随内核构建体系自动产出。2. 板级设备树中的关键设计art-pi 设备树集中展示了 STM32H750 平台设备树编写的几个要点时钟源通过clk_hse { clock-frequency 25000000; }指定板上 25MHz HSE 晶振频率这是 RCC 时钟树计算的基础内存布局memoryc0000000声明 32MB 外部 SDRAMreg 0xc0000000 0x2000000并保留 1MB 的linux,cma连续内存池shared-dma-pool、no-map、linux,dma-default供 DMA 使用——这是 H750 依赖外部存储运行的直接证据串口控制台aliases中serial0 uart4chosen的stdout-path serial0:2000000n8指定 UART4 为 2Mbps、8 数据位无校验的调试串口GPIO LED通过gpio-leds定义红绿双 LED绿色 LED 挂linux,default-trigger heartbeat心跳触发无线连接SDMMC2 上的 BCM4329 WiFibrcm,bcm4329-fmac与 USART3 上的 BCM43438 蓝牙brcm,bcm43438-bt带 host-wakeup/device-wakeup/shutdown GPIO 与 115200 波特率约束构成完整无线方案。四、构建与使用如何为 STM32H750 编译内核根据同目录下的 STM32 ARM Linux 总体文档STM32 MCU 系列使用内核自带的默认配置构建make stm32_defconfig make dtbs # 生成包含 stm32h750i-art-pi.dtb 在内的设备树二进制 make zImage # 编译内核镜像对于 MCU 平台由于 Flash 与 RAM 容量有限通常还需要配合外部存储器启动方案将内核与 DTB 烧写至 FMC 外接的 NOR/NAND 或 QSPI 外接的 SPI NOR根文件系统则如 art-pi 设备树所示放在 SPI NOR 分区或通过root/dev/ram从 RAM disk 加载。Cortex-M7 平台的内核启动路径与典型 ARM 平台略有差异无 MMU 相关初始化流程的变体由 ARMv7-M 支持处理具体可参考 arch/arm/mach-stm32/board-dt.c 中CONFIG_ARM_SINGLE_ARMV7M条件下的实现。五、扩展阅读路径SoC 级外设完整定义arch/arm/boot/dts/st/stm32h743.dtsiH750 复用板级设备树示例arch/arm/boot/dts/st/stm32h750i-art-pi.dts同系列对比文档STM32H743 Overview、STM32F746 Overview平台总览与构建说明STM32 ARM Linux Overview时钟/RCC 绑定定义include/dt-bindings/clock/stm32h7-clks.h 与 include/dt-bindings/mfd/stm32h7-rcc.h结语STM32H750 的定位非常鲜明在 Cortex-M7 最高 480MHz 的性能底座上以 128KB 片上 Flash 换取 Value line 的成本优势同时完整保留 FMC、QSPI、以太网、双 USB、CAN、LCD、音频与高精度采集等丰富外设。Linux 内核通过st,stm32h750compatible 字符串、复用 H743 的 SoC 设备树以及 art-pi 板级设备树为该芯片提供了开箱即用的支持路径——理解这份文档及其背后的设备树实现是让 STM32H750 在 Linux 生态中高效跑起来的起点。数据手册与参考手册的详细技术规格可按文档Resources一节的指引在 ST 官网公开获取原文链接见 stm32h750-overview.rst。【免费下载链接】linuxLinux kernel source tree项目地址: https://gitcode.com/GitHub_Trending/li/linux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价