你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

又到学习时间——STM32MPU、OpenSTLinux

[复制链接]
eefishing 发布时间:2019-12-19 23:41
早在2019年年初的时候,ST就发布了首款STM32MPU:STM32MP1。
* i: Y  Q- M$ r. L5 o2 X/ q* ZSTM32MP1通用微处理器产品系列,系基于混合的 双Arm Cortex-A7核 和 Cortex-M4核架构产品。+ M" y( J6 b* h' n' g4 k
一、支持STM32MPU 生态系统
熟悉 Cortex®-M4 MCU 环境的开发人员能轻松实现他们的目标,因为他们能够使用相同的 STM32Cube 工具套件,包括基于 GCC 的 IDE、STM32CubeProgrammer 和STM32CubeMX。此外,这款套件还配有 DRAM 接口调试工具,可以轻松配置 DRAM 子系统。

2 H- n. b7 J& p* w$ D% N
面向 Cortex®-A7 内核进行开发时,ST 通过使用主流的开源 OpenSTLinux 发行版进行开发,帮助用户消除潜在的障碍,确保应用软件移植的简便性和快速性。

2 _$ U7 \; M5 F2 i& b4 o8 j二、STM32MPU嵌入式软件架构先给大家看一下官方给的基于STM32MP1的架构图:- A5 x! u: o% a
1.png

3 p$ m, {( J/ `8 H从图中可以看出,嵌入式软件主要分为两大类:
- ]4 J6 E# M4 f4 l& y2 I: r" V
1.STM32Cube MPU软件包
STM32Cube MPU软件包主要针对于Cortex-M4,基于HAL驱动程序和中间件,像其他的STM32微控制器,以完成协处理器管理。
& [+ ?" o  ?+ b5 `: F( \1 J: Q
2.OpenSTLinux
开源OpenSTLinux主要针对于Cortex-A7,主要包含两大类:
  • OpenSTLinux BSP:班级支持包
  • application frameworks:应用框架

    3 Q, R- y% ~' w5 r( s$ m* a
: ^1 _7 U6 r/ q8 a! k! L5 z
上面内容是一个整体框架,如果将其进一步细分,里面包含的内容还有很多,下面章节有针对性讲述一些相关内容。

3 I" c, s' @0 n3 W$ h: _8 X* V
三、STM32Cube MP1包架构. c. ~7 ]. w5 ^9 ~; a$ J3 @4 c
如果使用过,或者学习过STM32CubeMX开发的朋友,应该对STM32Cube包不陌生。
2.png
" M1 ?9 F" f) g, r0 w
这里主要分为了四大块:1 d2 O9 ]' ^, J4 w% f
; l9 n" f+ z; ^" j  I
1.Hardware硬件层这一块很简单,就是硬件板卡等。2 m3 M$ I0 _9 V- D' s/ t7 v1 d

$ t4 A8 Q2 T# Q  m, L+ Q
2.Level 0 驱动层(Drivers)这里分为三个软件组件:HAL:Hardware Abstraction Layer,硬件抽象层LL:Low Layer,低层驱动BSP:oard Support Package,板级支持包8 N5 p0 |3 Z: P  n& h
3.Level 1 中间层(Middlewares)中间件组件是一组提供一组服务的库。STM32Cube MP1包提供2个主要组件:FreeRTOS和OpenAMP。
FreeRTOS:
是一个免费的实时操作系统(RTOS)。
OpenAMP:是一个实现远程处理器服务框架(RPMsg)的库,它是一种与远程处理器通信的消息传递机制。
  r# @- y6 z% ^1 x
4.Level 2 板卡示例层
主要是一些参考示例代码,初学的是时候可以参考。' i2 ~7 ~, T, d6 `2 z

7 _4 @, Z& X9 F" Y# [  n: ]8 L  F3 o
四、U-Boot引导顺序
# G; |9 t% D7 L0 T5 J9 L
从上面的嵌入式软件架构可以看得出来,OpenSTLinux里面包含的内容比较多,本文讲述其中的一个U-Boot.
! w5 z& p2 D# \' n# Y
1.通用启动顺序通用U-Boot的引导顺序如下:
) G4 b. N! x8 D* Y* T
3.png

) J% F- k8 J$ K6 B7 xROM代码最基本的一段代码,初始化时钟树,加载FSBL程序等。7 I* @0 x1 ^0 w6 B
第一阶段引导加载程序(FSBL)初始化(部分)时钟树和外部RAM控制器。最后,FSBL将第二阶段引导加载程序(SSBL)加载到外部RAM中并跳转到它。
4 K; a7 d+ X8 W3 F) _
第二阶段引导加载程序(SSBL)
SSBL在更大的RAM中运行,因此它可以实现复杂的功能(USB,以太网,显示器等),这对于使Linux内核加载更加灵活非常有用(从Flash设备,网络等),用户友好(向用户显示启动画面)。
3 q, w5 b8 _0 T; J4 O! Y
Linux内核空间
Linux内核在外部存储器中启动,它初始化平台上所需的所有外设驱动程序。
- _5 P: S( |% w5 m
Linux用户空间
最后,Linux内核将控制权交给用户空间,启动init进程,该进程运行根文件系统(rootfs)中描述的所有初始化操作,包括向用户公开用户界面(UI)的应用程序框架等。
  [+ o1 G& N$ @3 Q: }  s2 A/ D. G
2.STM32MP启动顺序
2 {! G1 F( c1 c: u- w针对于STM32MP,官方也给了两种启动方式:可信引导、基本引导。
4 q( M5 j" e7 Q% [0 H7 I
可信引导
4.png
2 _  M$ [1 ?! ?, n% y; ?% e+ l
基本引导
5.png
6 R2 }: u7 [2 e3 a3 Y5 H9 s
本文就写到这里,主要是让大家有一个大致了解。如果详细写的话,单纯U-Boot都完全可以写一个专栏了,尽量争取后面给大家写更多相关内容。
  |- y% [% b0 ]. ^1 A+ u: F  Y4 J0 V, J/ V5 ~: n
五、额外内容再附加一个内容,ST今年全国研讨会将在9月17日 ~ 27日举行:
6.png
地址:
http://www.stmcu.com.cn/roadshow

' A" @* D; Z* o$ Y4 d" |可以登录以上网址进行报名,报名截止时间为 9月15日 23:59。
& D0 R) `8 x$ Q, e+ c% a9 H, r: c/ ~
赞 收藏 评论0 发布时间:2019-12-19 23:41

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版