0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32MPU和OpenSTLinux你了解多少?

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-26 16:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

早在2019年年初的时候,ST就发布了首款STM32MPU:STM32MP1。 STM32MP1通用微处理器产品系列,系基于混合的 双Arm Cortex-A7核 和 Cortex-M4核架构产品。 一、支持STM32MPU 生态系统

熟悉 Cortex-M4 MCU 环境的开发人员能轻松实现他们的目标,因为他们能够使用相同的 STM32Cube 工具套件,包括基于 GCC 的 IDE、STM32CubeProgrammer 和STM32CubeMX。此外,这款套件还配有 DRAM 接口调试工具,可以轻松配置 DRAM 子系统。

面向 Cortex-A7 内核进行开发时,ST 通过使用主流的开源 OpenSTLinux发行版进行开发,帮助用户消除潜在的障碍,确保应用软件移植的简便性和快速性。

二、STM32MPU嵌入式软件架构先给大家看一下官方给的基于STM32MP1的架构图:

从图中可以看出,嵌入式软件主要分为两大类:

1.STM32Cube MPU软件包

STM32Cube MPU软件包主要针对于Cortex-M4,基于HAL驱动程序和中间件,像其他的STM32微控制器,以完成协处理器管理。

2.OpenSTLinux

开源OpenSTLinux主要针对于Cortex-A7,主要包含两大类:

OpenSTLinux BSP:班级支持包

application frameworks:应用框架

上面内容是一个整体框架,如果将其进一步细分,里面包含的内容还有很多,下面章节有针对性讲述一些相关内容。

三、STM32Cube MP1包架构

如果使用过,或者学习过STM32CubeMX开发的朋友,应该对STM32Cube包不陌生。

这里主要分为了四大块: 1.Hardware硬件层这一块很简单,就是硬件板卡等。 2.Level 0驱动层(Drivers) 这里分为三个软件组件:HAL:Hardware Abstraction Layer,硬件抽象层LL:Low Layer,低层驱动BSP:oard Support Package,板级支持包 3.Level 1中间层(Middlewares)中间件组件是一组提供一组服务的库。STM32Cube MP1包提供2个主要组件:FreeRTOS和OpenAMP。FreeRTOS:是一个免费的实时操作系统(RTOS)。

OpenAMP:是一个实现远程处理器服务框架(RPMsg)的库,它是一种与远程处理器通信的消息传递机制。

4.Level 2板卡示例层

主要是一些参考示例代码,初学的是时候可以参考。

四、U-Boot引导顺序从上面的嵌入式软件架构可以看得出来,OpenSTLinux里面包含的内容比较多,本文讲述其中的一个U-Boot. 1.通用启动顺序通用U-Boot的引导顺序如下:

ROM代码最基本的一段代码,初始化时钟树,加载FSBL程序等。 第一阶段引导加载程序(FSBL)初始化(部分)时钟树和外部RAM控制器。最后,FSBL将第二阶段引导加载程序(SSBL)加载到外部RAM中并跳转到它。

第二阶段引导加载程序(SSBL)

SSBL在更大的RAM中运行,因此它可以实现复杂的功能(USB以太网,显示器等),这对于使Linux内核加载更加灵活非常有用(从Flash设备,网络等),用户友好(向用户显示启动画面)。

Linux内核空间

Linux内核在外部存储器中启动,它初始化平台上所需的所有外设驱动程序。

Linux用户空间

最后,Linux内核将控制权交给用户空间,启动init进程,该进程运行根文件系统(rootfs)中描述的所有初始化操作,包括向用户公开用户界面(UI)的应用程序框架等。

2.STM32MP启动顺序
针对于STM32MP,官方也给了两种启动方式:可信引导、基本引导。
可信引导

基本引导

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371187
  • MPU
    MPU
    +关注

    关注

    0

    文章

    442

    浏览量

    51045
  • u-boot
    +关注

    关注

    0

    文章

    123

    浏览量

    39479
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32MP257F-EV1评估板深度解析与技术应用指南

    Cortex-A35)的STM32 MPU OpenSTLinux分布软件和用于协处理器(Cortex-M33)的STM32CubeMP2软件。STMicroelectronics
    的头像 发表于 10-20 11:49 448次阅读
    <b class='flag-5'>STM32</b>MP257F-EV1评估板深度解析与技术应用指南

    STM32MP257F-DK探索套件技术解析与应用指南

    套件充分利用了STM32MP2系列微处理器的功能,用户可以使用STM32 MPU OpenSTLinux分布软件(用于主处理器Arm双核Cortex-A35)和
    的头像 发表于 10-16 16:26 661次阅读
    ‌<b class='flag-5'>STM32</b>MP257F-DK探索套件技术解析与应用指南

    STM32一样轻松玩转 MPU!RT-Thread 睿擎平台 Workshop 上海站开启硬核实战!下一城?定!

    为什么参加1零门槛体验:我们致力于让MPU开发如MCU般简单易上手。2一站式掌握:从概念演示到动手实践再到项目构思,全流程深度体验。3业界领先技术:了解RT-Thread睿擎平台如何革新MPU
    的头像 发表于 08-18 17:05 1155次阅读
    像<b class='flag-5'>STM32</b>一样轻松玩转 <b class='flag-5'>MPU</b>!RT-Thread 睿擎平台 Workshop 上海站开启硬核实战!下一城?<b class='flag-5'>你</b>定!

    请问openstlinux或者mp157怎么配置中文?

    openstlinux或者mp157怎么配置中文?
    发表于 07-25 06:47

    STM32H7的MPU配置与D-Cache冲突如何解决?​​

    现象​​: STM32H743 MPU 与 D-Cache 冲突问题详细描述** 硬件环境 MCU 型号 :STM32H743VIT6 开发板 :自定义板(或 STM32H743I-E
    发表于 06-23 17:32

    请问v2.0.0版本STEdgeAI-Core是否支持stm32mp2 compoment?

    online benchmarking") exit(1)而这个文档里的说明是支持:ST Edge AI: Guide for MPU - stm32mpu 但我下载下来
    发表于 06-09 08:30

    基于stm32mpu9250的usb hid键盘、鼠标、游戏控制器实例打包下载

    基于stm32mpu9250的usb hid键盘、鼠标、游戏控制器实例打包,推荐下载!
    发表于 05-29 21:44

    MPU开发太难?睿擎平台让您像STM32开发一样简单——试用评测活动启动

    在嵌入式开发领域,MPU(MicroprocessorUnit)凭借强大的多任务处理能力和丰富的外设资源,成为工业控制、智能终端等场景的核心选择。然而,对于习惯了MCU(如STM32)开发的工程师
    的头像 发表于 05-22 17:03 1840次阅读
    <b class='flag-5'>MPU</b>开发太难?睿擎平台让您像<b class='flag-5'>STM32</b>开发一样简单——试用评测活动启动

    开源+安全双引擎!STM32MPU白皮书解锁可信系统构建新范式

    【嵌入式开发者必读】开源+安全双引擎!STM32MPU白皮书解锁可信系统构建新范式 为什么开发者都在抢读这份白皮书? 当物联网设备面临供应链攻击、固件篡改、合规认证等多重挑战,STM32MPU
    的头像 发表于 05-16 15:24 428次阅读
    开源+安全双引擎!<b class='flag-5'>STM32MPU</b>白皮书解锁可信系统构建新范式

    参考STM32 MPU生态资源利用Yocto构建STM32MP2芯片镜像运行docker

    的搭建。 拉取Yocto所需的配置数据库 接下来根据OpenSTLinux distribution 指南中的介绍,下载STM32MPU的Yocto开发所需的meta数据库(其中包含构建的一系列配置
    发表于 05-10 16:47

    求助,关于STM32MP257编译内核问题求解

    hi 请教一下,目前我从ST官网上下载了en.SOURCES-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar.gz,解压
    发表于 03-13 06:24

    请问v2.0.0版本STEdgeAI-Core是否支持stm32mp2 compoment?

    online benchmarking") exit(1)而这个文档里的说明是支持:ST Edge AI: Guide for MPU - stm32mpu 但我下载下来
    发表于 03-07 07:06

    STM32单片机+MPU6050设计一个电子水平仪

    本项目基于STM32F103C8T6单片机设计一款电子水平仪。STM32F103C8T6作为一种性能强大的微控制器,具有较高的计算能力和丰富的外设接口,能够满足项目对实时数据处理和显示控制的需求。该单片机将与MPU6050传感器
    的头像 发表于 01-09 11:14 2630次阅读
    <b class='flag-5'>STM32</b>单片机+<b class='flag-5'>MPU</b>6050设计一个电子水平仪

    如何优化MPU的能耗

    优化MPU(微处理器单元)的能耗是一个综合性的任务,需要从硬件设计、软件优化以及系统集成等多个方面入手。以下是一些具体的优化策略: 一、硬件设计优化 选择低功耗MPU : 在设计之初,应根据应用需求
    的头像 发表于 01-08 09:41 1018次阅读

    MPU的性能评估方法

    Testing) 基准测试是通过运行一组预定义的测试程序来评估MPU的性能。这些测试程序通常涵盖了处理器的主要功能,如计算能力、内存访问速度、浮点运算等。通过比较不同MPU在相同基准测试下的得分,可以直观地了解它们的性能差异。
    的头像 发表于 01-08 09:39 1286次阅读