
继续研究STM32MP157C 开发板,程序员研究开发板和教师不同,不会面面俱到,往往是带着问题去寻找解决之道。 + _& C- y& ?! a8 m2 ^' B! ]* W% v 1 D; N& @. V. ^9 L 实现了交叉编译cortex-A 的应用程序之后,下一步需要搞定两个问题 ·M4 程序的开发和下载,6 V% Z4 ^' H) L% v3 V 毕竟,我们是冲着异构处理器架构来的。' q( f% W$ C+ M( I+ u : l K9 W& y; d# f 本文参考:STM32MP157——Remoteproc和RPMsg 一文1 u2 ]4 ?# x3 \4 P; `! S2 M* n; q " Q3 U9 h2 \' u1 S% w # [# Z% }; p/ @, d* ]* J* w# F 1.生成M4固件- E; |4 i3 F% a$ p 理论上M4 的编程和普通STM32F系列程序设计没有什么大区别,唯一不同的就是处理器上接口的配置。 ![]() 可以使用STM32CubeIDE来配置M4的引脚,并且开发相关的应用程序. 1 A$ O/ X- K K1 L 2.M4固件的装入方式6 G1 H( J8 H$ x M4 固件下载的方式有两种 ) t- F% \8 V' d/ d8 a( R( y - r) K0 j" X4 h7 \- v 工程模式(Engineering Mode) , @- A8 Z/ f9 }+ a/ Z# R3 u( \( B 类似于使用ST-LINK仿真器将STM32单片机烧录到RAM,适用于M4上电启动模式,无需加载A7核。因为烧写到RAM里面,所以掉电程序会丢失,一般用于调试。。 - v6 q3 }4 B+ S' `7 j 产品模式(Production Mode)( H9 |1 ~0 K: I ) ~$ U9 v5 U6 b ^ M4 的程序存放在A7的 linux 系统的文件中,A7核先启动后,通过remoteproc 的软件引导M4核启动,固件加载执行。1 o2 o! Q% `" l( G 7 ?, y. S6 ?( ?0 g& | 我更倾向一开始就直接使用生产方式。3 ]& F8 k5 q# t- z3 u 2 D% z( `4 f6 A8 }# }* l; Y9 a3 s 3 remoteproc 机制 Remoteproc(Remote Processor Framework),主要作用就是对远程处理器(也就是M4)的生命周期进行管理,即启动、停止远程处理器。 ![]() 实际操作时,可以使用开发板上现成的linux 命令行来实现。state powering 等等。在米尔开发板中使用fw_cortex_m4.sh 9 O( O) [( _5 C. G$ @4 X/ h7 f0 X" Y 4 P' g R- S; f, N9 `1 f% H 不过,米尔科技开发板上相关的文件目录和其说明书不同,埋的够深的。 - G( n' W8 D' I) ` root@myir:/usr/local/Cube-M4-examples/STM32MP157C-EV1/Applications/OpenAMP/OpenAMP_TTY_echo# ls README fw_cortex_m4.sh lib 而且在lib 中已经放置了OpenAMP_TTY_echo.elf 文件,倒也是满贴心的。2 x( y" J l/ d' u; |6 l: V/ w % `% Z5 Z9 J* T ) ~4 f, X7 H7 @7 `7 ]* N3 Q5 } 4 cortex-A 和cortex-M 之间的信息交换RPMsg框架 两个处理器之间的信息交换是使用RPMsg框架来实现的。 ![]() 从图上看,进一步地是采用openAMP 来实现。ST 公司在A7 端将处理器信息交换仿真成为一个TTY 终端。而在M4 端仿真成为虚拟UART 。于是,两个处理器之间的通信变成了串口通信那么简单直接。只是这个串口的速度非常块,因为他们完全是在内存完成的。& e6 ?1 p, s9 k, l; ]+ n $ W9 [& {7 d5 }2 w3 J . Z, Y. T) b8 w 5 测试 先要运行fw_cortex_m4.sh
* B* j. U+ n7 ~7 ] ) w2 e7 ^/ b% O, n9 ` 文章来自:姚家湾 9 s- y, I+ f9 A8 |, i, } |
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。
《STM32MPU安全启动》 课程学习心得