【正点原子】重磅推出STM32MP257异核架构:Cortex-A35与Cortex-M0的完美结合,工业4.0时代的新玩法揭秘!
本文基于正点原子 ATK-DLMP257B 开发板 (2G DDR4 + 16G eMMC 版本)
实测 STM32MP257 异构双核 (Cortex-A35 + Cortex-M0+) 的 低功耗唤醒机制
从 硬件设计 、 设备树配置 到 固件编译 和 remoteproc 操作 全流程,一网打尽!
工业4.0神器?STM32MP257异核架构登场!Cortex-A35 x Cortex-M0,能玩出哪些花样?
一、硬件设计:LPUART1 复用引脚选择
在意法半导体 STM32MP257DAK3 芯片中,LPUART1 可以复用多组引脚。
基于 正点原子ATK-DLMP257B 开发板,我们选用了 PZ4 和 PZ9 这两个已经引出的引脚来完成 LPUART1 的调试功能:
不仅方便调试,也避免了额外的硬件连线干扰。
二、软件配置详解
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 工程
/Projects/STM32MP257D-ATK/Applications/CM0+_MailBox_DEMO/MailBox_lp_wakeup
/CM0PLUS/NonSecure/CA35TDCID_m0plus/MailBox_lp_wakeup_NonSecure.elf
3. 上传固件到板子
scp MailBox_lp_wakeup_NonSecure.elf root@192.168.7.1:/lib/firmware
三、实验验证:M0+ 唤醒 A35 实战演示
1. 停止 remoteproc 并指定固件
echo stop > /sys/class/remoteproc/remoteproc0/state
echo MailBox_lp_wakeup_NonSecure.elf > /sys/class/remoteproc/remoteproc1/firmware
2. 启动 M0+ 内核
echo start > /sys/class/remoteproc/remoteproc1/state
启动成功后,串口将输出来自 M0+ 的日志信息。
3. 配置唤醒机制
# 开启 IPCC 唤醒能力
echo enabled > /sys/devices/platform/soc@0/46250000.mailbox/power/wakeup
# 设置7秒后唤醒动作
echo 7 > /dev/mailbox0
4. A35 进入休眠
rtcwake --date +30sec -m mem

四、运行结果观察
在 M0+ 串口输出:
(5) A35 wakeup request done !
(6) Hello from CM0+
随后,Linux 控制台出现:
Enabling non-boot CPUS ...
...
代表 A35 被成功唤醒,验证 异核低功耗唤醒机制 正常工作!
五、总结
这一整套流程清晰地展示了:
如果你也对STM32MP2系列的低功耗异构通信机制感兴趣,欢迎留言交流
我们会继续更新更多高级功能测试:例如M0+轮询ADC采样、M0+定时任务调度、A35远程下发配置指令等!
作者:Quinn27