|
继续研究STM32MP157C 开发板,程序员研究开发板和教师不同,不会面面俱到,往往是带着问题去寻找解决之道。1 H( x/ I4 ^& ^: }( S; t 6 f& R( ?! ?0 _5 F- b 实现了交叉编译cortex-A 的应用程序之后,下一步需要搞定两个问题3 W6 F) k7 g8 }2 {+ N8 a8 K0 r7 H ·M4 程序的开发和下载,3 F$ r( s- l- R3 Q G8 m 毕竟,我们是冲着异构处理器架构来的。- U2 X7 j8 h1 j% S+ @9 w 3 v/ Y% ~: F; e5 }: j# o0 j. b4 Z7 { 本文参考:STM32MP157——Remoteproc和RPMsg 一文! _% ?) } I, o 1.生成M4固件! z' Z' [' F8 t. @" i 理论上M4 的编程和普通STM32F系列程序设计没有什么大区别,唯一不同的就是处理器上接口的配置。( \4 i1 K: P( C0 j4 E8 Y
可以使用STM32CubeIDE来配置M4的引脚,并且开发相关的应用程序.# }2 P8 x' T' z6 X* n 2.M4固件的装入方式 M4 固件下载的方式有两种1 [% n# t0 ]6 p; q8 M0 n % _; [. M9 u i( P$ k+ g 工程模式(Engineering Mode) + o, y; \! U2 v; c3 m& z 类似于使用ST-LINK仿真器将STM32单片机烧录到RAM,适用于M4上电启动模式,无需加载A7核。因为烧写到RAM里面,所以掉电程序会丢失,一般用于调试。。 9 T9 D a+ h+ o9 r6 l 产品模式(Production Mode)7 H! t% P s3 l+ }$ P) T3 \! _ M4 的程序存放在A7的 linux 系统的文件中,A7核先启动后,通过remoteproc 的软件引导M4核启动,固件加载执行。& F: x T& n/ n . h7 V4 @$ O* p6 l 我更倾向一开始就直接使用生产方式。; a2 W$ Z6 Z+ x }& f8 l; z ; l7 a, Q! ^; U. J; ?- t( ^: _7 f 1 s9 P0 G9 I4 R- H6 l U 3 remoteproc 机制3 B( \" J7 Y# n* e1 k4 [ Remoteproc(Remote Processor Framework),主要作用就是对远程处理器(也就是M4)的生命周期进行管理,即启动、停止远程处理器。
实际操作时,可以使用开发板上现成的linux 命令行来实现。state powering 等等。在米尔开发板中使用fw_cortex_m4.sh9 i2 \1 f! |7 N- {+ H" Z9 S4 y : Q4 @/ a3 Y3 w9 E% h- T$ H+ ?. Z 6 W4 J; j: G5 d! j0 G) ~ 不过,米尔科技开发板上相关的文件目录和其说明书不同,埋的够深的。9 u* S# T; k5 J 2 ]6 i+ G1 i/ Y+ s1 d' g) ] ! A, J: C% ^' d7 G, f root@myir:/usr/local/Cube-M4-examples/STM32MP157C-EV1/Applications/OpenAMP/OpenAMP_TTY_echo# ls README fw_cortex_m4.sh lib1 L' [: a. [; \* o9 s 而且在lib 中已经放置了OpenAMP_TTY_echo.elf 文件,倒也是满贴心的。 4 cortex-A 和cortex-M 之间的信息交换RPMsg框架& I/ [$ u7 ^$ }$ r 两个处理器之间的信息交换是使用RPMsg框架来实现的。% h+ _8 O. V. E
从图上看,进一步地是采用openAMP 来实现。ST 公司在A7 端将处理器信息交换仿真成为一个TTY 终端。而在M4 端仿真成为虚拟UART 。于是,两个处理器之间的通信变成了串口通信那么简单直接。只是这个串口的速度非常块,因为他们完全是在内存完成的。2 I2 }# d' p& e. s) U $ C% j0 x/ F+ u ( h( O( T/ P2 j9 P 5 测试( \; J+ \$ _% o" Z: O) r; T7 |( W- K; S 先要运行fw_cortex_m4.sh" q c9 o3 t$ E# H( a
# K, k2 V [6 q8 m+ }+ H8 c 文章来自:姚家湾 6 v8 v0 q) W2 s# Y |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版