
STM32MP1是ST推出的第一款的应用于LINUX场合的MPU(微控制器,mcu微处理器),其集成了2个核:高端的A7核和低端的M4核。主核为A7,从核为M4。 我们先看下官方对外设的详细说明:1 i5 d& x3 L- c% o+ K3 b# P ![]() 更详细的BLOCK图: ![]() 其中亮眼的就是对3D GPU的支持及16为BIT的ADC,其实其外设分布跟H7系列很类似。, N2 i0 ?+ T: J: p/ I8 ?$ w 严重怀疑就是在H7系列上修改了内核而已。 + {" ]6 f( ]. e 但是在M157中两个核部分外设不能使用:) e( ~3 x! x9 S5 B 系统图: ![]() 具体如下表:( T$ p% H! r! H* u" f- u ![]() ![]() ![]() ![]() 其中AM4 内核最大的缺点就是不能有内部 Flash、 FMC 、 LTDC。$ G9 B |# J# P/ P# h; n9 D 这样代码就不能加载在FLASH上,很不方便,所以不能单独使用。" Q8 w8 O4 Q; G7 b' @( E4 ] STM32MP1的M4核却不能使用片上FLASH,仅能使用一段连续的SRAM,只能不断电调试。 这里就不得不对比一下NXP产品的双核架构,其每个核都共享大部分外设寄存器、RAM、ROM。 单个核可以独立使用。. I, L: [! ?/ O2 g% C5 b 而ST的具体做法是先启动A7核,运行LINUX系统,然后把M4的程序作为一个BIN文件执行。 具体是:调试好 M4 内核的代码以后,通过 MDK 生成 对应的 bin 文件, A7 内核的 Linux 系统启动0 Z+ ] y8 Q" M9 e 以后可以加载这个 bin 文件到指定的 MCU SRAM 中 这样 M4 就可以启动了。 用 A7 内核启动& j0 P* |0 d! ^5 L( ^5 { Linux 系统,然后在加载 M4 的 bin 文件来启动 M4 内核,相比 其他单核M4单片机直接下载要繁 琐的多。 ST预想的场景是A7 LINUX做前台界面,声音图像、存储等,M4核运行底层的具体的实时操作系统。 ![]() 这样的机制,决定了M4只能是从核,并且在一些外设使用上也有些限制(跟完整的M4内核芯片比较,算是阉割过的版本了)。 当然更硬性的要求就是必须会LINUX才能使用,不然单个M4的核都不能使用。, A5 p d. V/ S9 \2 U; [* [* o3 O 好了,今天的就到这了,谢谢观看。 |
谢谢分享,再接再厉 |
兄弟,准备用这个做什么。 |
Keil下的STM32N6之RAM运行工程配置说明
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
兔哥的初代M33【002】-H503Nucleo 内部flash操作
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
兔哥的杂谈【002】——如何性价比更高地去编译STM32
STM32MP1 WiFi连接
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习