
继续研究STM32MP157C 开发板,程序员研究开发板和教师不同,不会面面俱到,往往是带着问题去寻找解决之道。 H# U$ Z+ S7 Q* i5 b0 A 实现了交叉编译cortex-A 的应用程序之后,下一步需要搞定两个问题 ·M4 程序的开发和下载, 毕竟,我们是冲着异构处理器架构来的。 % U( X/ I4 @# M* Y 本文参考:STM32MP157——Remoteproc和RPMsg 一文 4 S) A1 T5 s/ T 4 _9 j5 h% W$ C& ~ 1.生成M4固件6 U' p1 y8 K6 S 理论上M4 的编程和普通STM32F系列程序设计没有什么大区别,唯一不同的就是处理器上接口的配置。 ![]() 可以使用STM32CubeIDE来配置M4的引脚,并且开发相关的应用程序. 9 K. u6 C/ n6 c" l4 P0 c5 V 2.M4固件的装入方式 M4 固件下载的方式有两种3 a$ m. t8 i2 E6 q3 W / W1 j! P" [" b: J1 ^! b% W6 @ 工程模式(Engineering Mode) 类似于使用ST-LINK仿真器将STM32单片机烧录到RAM,适用于M4上电启动模式,无需加载A7核。因为烧写到RAM里面,所以掉电程序会丢失,一般用于调试。。6 h0 `: b9 |# b0 v 产品模式(Production Mode) # B9 w6 x1 l6 m 3 _2 z- ]6 ?" Q0 q M4 的程序存放在A7的 linux 系统的文件中,A7核先启动后,通过remoteproc 的软件引导M4核启动,固件加载执行。# C2 d7 v# @( w: ` 我更倾向一开始就直接使用生产方式。+ l4 U) X# s8 C8 G 6 L( l8 V( ^9 X5 ]' d6 R ; k t* y: x: [; A3 H 3 remoteproc 机制4 s9 m9 Q1 _( [. B4 [/ C- b" ~ x Remoteproc(Remote Processor Framework),主要作用就是对远程处理器(也就是M4)的生命周期进行管理,即启动、停止远程处理器。 ![]() 实际操作时,可以使用开发板上现成的linux 命令行来实现。state powering 等等。在米尔开发板中使用fw_cortex_m4.sh& Z, S3 w* h" T! H6 L 不过,米尔科技开发板上相关的文件目录和其说明书不同,埋的够深的。; j- u% t. ~3 t7 G) s1 G* L , W9 z0 |# n2 l* u. ] % Q5 b* D' A& f4 I root@myir:/usr/local/Cube-M4-examples/STM32MP157C-EV1/Applications/OpenAMP/OpenAMP_TTY_echo# ls README fw_cortex_m4.sh lib/ L* z* y6 ?# M 而且在lib 中已经放置了OpenAMP_TTY_echo.elf 文件,倒也是满贴心的。 4 ?% R/ f4 z& A1 b. W ' Z8 D6 L* G* g& e4 p1 _. y/ ] 4 cortex-A 和cortex-M 之间的信息交换RPMsg框架1 L! j5 t6 }2 L Q; t, Q7 ^. } 两个处理器之间的信息交换是使用RPMsg框架来实现的。3 {( l& X# P& L7 ] ![]() 从图上看,进一步地是采用openAMP 来实现。ST 公司在A7 端将处理器信息交换仿真成为一个TTY 终端。而在M4 端仿真成为虚拟UART 。于是,两个处理器之间的通信变成了串口通信那么简单直接。只是这个串口的速度非常块,因为他们完全是在内存完成的。+ N* D; P! W; o& C2 K/ ]. I3 P. L 0 o3 b8 ]! i% v) E/ ` $ D! d* C% c' Y4 K% N6 H5 A 5 测试 先要运行fw_cortex_m4.sh, W& U5 V( I4 `3 _: q. X
5 s: q- a6 w ]! ?. u `' L : W) A( E1 \' G0 l 文章来自:姚家湾! ` K7 v- S7 H) ~- q |
基于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安全启动》 课程学习心得