news 2026/5/12 5:03:31

工业4.0神器?正点原子 STM32MP257 异核架构登场!Cortex-A35 x Cortex-M0,能玩出哪些花样?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工业4.0神器?正点原子 STM32MP257 异核架构登场!Cortex-A35 x Cortex-M0,能玩出哪些花样?

本文基于正点原子ATK-DLMP257B开发板 (2G DDR4 + 16G eMMC 版本
实测STM32MP257异构双核 (Cortex-A35 + Cortex-M0+) 的低功耗唤醒机制
硬件设计设备树配置固件编译remoteproc 操作全流程,一网打尽!

正点原子STM32MP257开发板 ARM嵌入式Linux异核A35&M33 AI工控

工业4.0神器?STM32MP257异核架构登场!Cortex-A35 x Cortex-M0,能玩出哪些花样?

  • 一、硬件设计:LPUART1 复用引脚选择
  • 二、软件配置详解
    • 1. 修改设备树配置
      • (1)禁用原有 I2C8 占用
      • (2)新增 LPUART1 节点及别名
      • (3)配置 PZ4/PZ9 引脚复用
    • 2. 编译 MailBox_lp_wakeup 工程
    • 3. 上传固件到板子
  • 三、实验验证:M0+ 唤醒 A35 实战演示
    • 1. 停止 remoteproc 并指定固件
    • 2. 启动 M0+ 内核
    • 3. 配置唤醒机制
    • 4. A35 进入休眠
  • 四、运行结果观察
  • 五、总结

一、硬件设计:LPUART1 复用引脚选择

在意法半导体STM32MP257DAK3芯片中,LPUART1可以复用多组引脚。

基于正点原子ATK-DLMP257B 开发板,我们选用了PZ4PZ9这两个已经引出的引脚来完成LPUART1的调试功能:

  • PZ4-> LPUART1_RX
  • PZ9-> LPUART1_TX

不仅方便调试,也避免了额外的硬件连线干扰。

二、软件配置详解

1. 修改设备树配置

(1)禁用原有 I2C8 占用

默认stm32mp257d-atk-ddr-2GB.dts设备树中,PZ4 和 PZ9 被 I2C8 占用了。我们需要禁用该节点:

&i2c8{pinctrl-names="default","sleep";pinctrl-0=<&i2c8_pins_a>;pinctrl-1=<&i2c8_sleep_pins_a>;status="disabled";/delete-property/dmas;/delete-property/dma-names;};

(2)新增 LPUART1 节点及别名

/{aliases{serial3=&lpuart1;};};&lpuart1{pinctrl-names="default";pinctrl-0=<&lpuart1_pins_a>;/delete-property/dmas;/delete-property/dma-names;uart-has-rtscts;status="okay";};

(3)配置 PZ4/PZ9 引脚复用

stm32mp25-pinctrl-atk-ddr-2GB.dtsi文件中添加:

&pinctrl_z{lpuart1_pins_a:lpuart1-0{pins1{pinmux=<STM32_PINMUX('Z',9,AF6)>;/* TX */bias-disable;drive-push-pull;slew-rate=<0>;};pins2{pinmux=<STM32_PINMUX('Z',4,AF6)>;/* RX */bias-pull-up;};};};

2. 编译 MailBox_lp_wakeup 工程

  • 使用 STM32CubeIDE 导入路径:
/Projects/STM32MP257D-ATK/Applications/CM0+_MailBox_DEMO/MailBox_lp_wakeup

  • 编译 NonSecure 工程,目标为 CA35TDCID_m0plus

  • 编译后生成的 .elf 文件路径为:
/CM0PLUS/NonSecure/CA35TDCID_m0plus/MailBox_lp_wakeup_NonSecure.elf

3. 上传固件到板子

scpMailBox_lp_wakeup_NonSecure.elf root@192.168.7.1:/lib/firmware

三、实验验证:M0+ 唤醒 A35 实战演示

1. 停止 remoteproc 并指定固件

echostop >/sys/class/remoteproc/remoteproc0/stateechoMailBox_lp_wakeup_NonSecure.elf >/sys/class/remoteproc/remoteproc1/firmware

2. 启动 M0+ 内核

echostart>/sys/class/remoteproc/remoteproc1/state

启动成功后,串口将输出来自 M0+ 的日志信息。

3. 配置唤醒机制

# 开启 IPCC 唤醒能力echoenabled >/sys/devices/platform/soc@0/46250000.mailbox/power/wakeup# 设置7秒后唤醒动作echo7 >/dev/mailbox0

4. A35 进入休眠

rtcwake--date+30sec-m mem
  • Linux 进入 LP_Stop2 模式
  • M0+ 将在 7 秒后通过 IPCC 唤醒 A35

四、运行结果观察

在 M0+ 串口输出:

(5)A35 wakeup requestdone!(6)Hello from CM0+

随后,Linux 控制台出现:

Enabling non-boot CPUS......

代表 A35 被成功唤醒,验证异核低功耗唤醒机制正常工作!

五、总结

这一整套流程清晰地展示了:

  • 如何灵活配置LPUART1 用于调试 M0+
  • 如何通过 remoteproc 和 IPCC 实现异核低功耗唤醒
  • STM32MP257D 在工业低功耗控制场景中的强大潜力!

如果你也对STM32MP2系列的低功耗异构通信机制感兴趣,欢迎留言交流
我们会继续更新更多高级功能测试:例如M0+轮询ADC采样、M0+定时任务调度、A35远程下发配置指令等!

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

Flink实时数据写入Redis实战

这段代码展示了如何使用 Flink 将数据流写入 Redis&#xff0c;核心是通过 RedisSink 和 RedisMapper 实现数据的映射和存储。通过这种方式&#xff0c;可以方便地将实时处理的结果存储到 Redis 中&#xff0c;供后续查询或分析使用。 这段代码的主要功能是将用户点击事件流写入…

作者头像 李华
网站建设 2026/5/12 4:59:36

Obsidian智能管家:基于规则引擎的笔记库自动化运维实践

1. 项目概述&#xff1a;一个为Obsidian而生的智能管家如果你和我一样&#xff0c;是个重度Obsidian用户&#xff0c;那你一定经历过这样的时刻&#xff1a;笔记库越来越大&#xff0c;文件散落在各个角落&#xff0c;标签和链接关系变得错综复杂&#xff0c;想要找一个特定的笔…

作者头像 李华
网站建设 2026/5/12 4:59:32

Java项目脚手架工具:一键生成现代化开发环境配置

1. 项目概述&#xff1a;一个为Java开发者“减负”的脚手架工具如果你是一名Java开发者&#xff0c;或者你的日常工作离不开Maven、Spring Boot、Quarkus这些技术栈&#xff0c;那么下面这个场景你一定不陌生&#xff1a;老板或客户突然丢过来一个新项目需求&#xff0c;你摩拳…

作者头像 李华
网站建设 2026/5/12 4:59:11

Real-ESRGAN-ncnn-vulkan性能优化秘籍:多GPU并行与内存管理技巧

Real-ESRGAN-ncnn-vulkan性能优化秘籍&#xff1a;多GPU并行与内存管理技巧 【免费下载链接】Real-ESRGAN-ncnn-vulkan NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/5/12 4:54:51

Radon实战指南:在CI/CD中集成Python代码质量检查的完整教程

Radon实战指南&#xff1a;在CI/CD中集成Python代码质量检查的完整教程 【免费下载链接】radon Various code metrics for Python code 项目地址: https://gitcode.com/gh_mirrors/rad/radon Radon是一个强大的Python代码质量分析工具&#xff0c;能够帮助开发者自动检测…

作者头像 李华