
1、相比此前的各式嵌入式MCU,这款MP1是比较复杂的。不仅比M系列复杂,而且比更早推出的A系列也复杂。即使是树莓派用到了A53的多核,但是,ARM-Ax 和ARM-Mx的组合都是需要更大的挑战的。4 @# E u7 @2 n 相比更早尝试的其他MCU,MP1使用的方法是比较简单的,也没有极其多样的选项(如以太网启动,USB启动等),而且对于公用资源的使用也是相对可行的解决方案,但对于多样的设计,选择不多。 这个应该是MP1性能和设计优化的结果,提供一个可靠完整的产品,而且可以期待后面的MP2系列会提供更强大的性能,MP1只是一个起点,后面更多的产品线毫无疑问在路上。% s, D5 O8 L) G/ E 2. 具体的启动顺序时先启动支持ARM-A7的linux内核,然后再加载M4的代码,对于外设的方法是需要单独配置和定义的。 对于linux开发,使用的标准的linux开发程序,那么对于arm-m4的开发,就还是需要CubeMX IDE这样的开发平台。根据这样的开发,可以有2个开发模式:7 {# G' ?; G9 ?8 L& i% l; u" p7 O Production Boot Mode & Engineering Boot mode.) ?$ i! r1 F+ v0 s: E- k% \ 在生产模式,Linux通常首先从SD卡或者板载NAND/NOR内存启动,通过OpenAMP框架从网络下载,用JTAG调试;在工程模式,剋直接下载到M4内核,通过JTAG直接调试。" o" \; c/ m! ^3 R# j g$ O, [ 创建的工程项目范例和熟悉的嵌入式开发结构非常相似, ![]() 。在生产模式,M4开发的代码时通过remoteproc框架通过linux内核加载的,加载的过程不能得到过程参数。加载后,对于M4内核的控制和命令,都徐奥通过A7内核分发命令。 在工程模式,linux自动进入loop模式,然后就和对于M系列编程一样,单独开发。 以上两种方式,boot 模式的设置要正确,这个可以板载的红绿LED灯显示不同状态。' |( |9 R2 K1 l 3. boot模式的选择是通过3个选择状态实现的,按照手册,参考顺序如下图,% | |5 W/ }1 y. z" C. n! I ![]() 那么在这个开发板上只有2个选择开关,直接可用的启动未知就是SD卡启动和串口启动。 3.1 串口启动,使用的是DFU/UART协议, ![]() MCU,外存和串口控制的相互关系就很清楚了。提供串口管理的代码内置在MP1的ROM中,负责加载,验证和执行第一阶段加载FSBL。3.2 安全启动BSEC对应于安全启动的具有一个一次写入的熔断器,在生产模式下,一次写入,不可修改并且阻止访问,对代码具有保护特性。这个是一种知识产权保护的技术措施。8 X; x1 `3 k) m( S; s; b 3.3 启动的加载时在reset指令后访问boot的设定,也可以在程序中用软件resample,但是在整个执行过程,都需要保持一致,不能变化。. O4 r3 U* ^6 Y2 P3 ^ 硬件连接如下, ![]() 这个硬件设计的逻辑,是在全部都启动失败后,都导向串口启动和调试, ![]() 这样整个系统实现了即灵活又可靠的启动顺序。 ( K- v- r/ j$ u 4. 多核的架构还是独立的,分别通过AHB和AXI总线执行指令,并通过一个不对称的双向数据通道连通,在每一次,只有一个方向,工作在master-slave状态,分别具有不同的访问权限。 同时各自拥有不同的内存访问权限,其中A7对应ROM,SYSRAM,M4独占SRAM。 对应的是4G的地址空间,分布如下, ![]() 详细的使用,对用着寄存器的访问和操作,在参考手册中描述得比较详细。( m! \' ?" ~% y, z& h F7 A% s9 c( E1 X; W ! J; P* p2 h3 C# m) N' a1 V |
基于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安全启动》 课程学习心得
2.
3.+ M: t- e9 L# z! T4 F0 X
4.
5.