自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 STM32MP中的安全域(Secure World)到底是什么

ARM架构通过硬件级安全域(TrustZone)将系统划分为安全世界(Secure World)和普通世界(Non-secure World),实现硬件强制隔离。安全世界运行可信固件(如TF-A/OP-TEE/TF-M),负责密钥管理等敏感操作;普通世界运行常规系统(如Linux)。两者通过受控接口(SMC)通信,防止攻击者获取全部权限。不同ARM处理器(Cortex-A/M)采用TrustZone-A/M实现隔离,STM32MP平台根据模式选择安全域位置。这种架构确保安全根始终在硬件保护的可信环境中。

2025-11-26 15:55:43 625

原创 从u-boot说ARM SoC 启动体系最大的架构演变

嵌入式系统启动架构演进:从U-Boot全包到分层安全设计 早期单核SoC(如i.MX6)采用U-Boot全包式启动,负责DDR初始化、时钟配置等所有任务。随着ARMv8多核安全架构(如STM32MP2)的普及,启动流程演变为分层设计:BootROM→TF-A(安全初始化)→U-Boot(引导)→Linux。这种架构将硬件初始化与安全控制(TrustZone/OP-TEE)交由TF-A处理,U-Boot专注系统引导,实现了安全隔离、多核协作和标准化设计。关键转变包括:DDR初始化移至安全域、支持TrustZo

2025-11-26 15:48:01 645

原创 STM32MP2 启动链中的 Device Tree继承关系

本文概述了STM32MP2启动流程中设备树(DT)的继承关系。启动过程分为三个阶段:1) BootROM从存储设备加载TF-A镜像;2) TF-A(EL3)使用fdts/.dts初始化DDR/电源/安全区,并传递DT给U-Boot;3) U-Boot(EL2/1)通过arch/arm/dts/.dts配置启动参数,可能修改Linux DT后传递给内核;4) Linux(EL1)使用arch/arm64/boot/dts/st/*.dts加载驱动和系统配置。三个阶段的DT文件格式相同但功能递进,形成完整的设备

2025-11-21 15:55:21 733

原创 什么是TF-A?

TF-A(TrustedFirmware-A)是ARM平台的安全启动管理固件,负责系统上电后最先运行,初始化CPU、内存和TrustZone安全状态。作为启动链的关键环节,它在BootROM之后执行,建立安全环境并加载U-Boot或OP-TEE。在STM32MP系列中,TF-A作为Linux世界的入口,承担硬件初始化、安全配置和启动协调功能,其触发方式(BootROM或M33)因芯片型号而异。作为ARM平台的"安全引导管理器",TF-A运行在最高权限级别EL3,为后续操作系统启动奠定基础

2025-11-20 16:07:42 785

原创 stm32MP1跟stm32mp2启动流程异同

摘要:STM32MP2相比MP1在启动架构上有重大升级,主要区别包括:1)MP2支持Cortex-M33实时核主导启动(M33-TD模式),而MP1只能由A7核固定启动;2)MP2具备TrustZone-M安全机制和双启动链可选(A35-TD/M33-TD);3)MP2的M33可先于Linux系统独立运行,实现快速响应和安全隔离。这些改进使MP2在实时性、安全性和灵活性方面显著优于仅支持单一Linux启动链的MP1,但M33-TD模式目前仅限Yocto-based OpenSTLinux生态支持。

2025-11-19 15:06:40 800

原创 stm32mp2开发路线图

摘要:本文介绍了STM32MP257F-DK开发板的渐进式学习路线。首先通过Starter Package让板子启动OpenSTLinux系统,验证基础功能;然后使用Developer Package进行应用开发和内核调试;接着学习M33实时核开发,实现A35与M33的通信;最后进阶到Yocto全系统构建。建议的学习顺序是:先让板子跑起来,再开发应用和驱动,掌握M33协同处理,最后深入Yocto定制系统。这种分阶段的学习方法适合工程师稳扎稳打地掌握嵌入式Linux开发。

2025-11-18 15:04:42 782

原创 Yocto在stm32mp2开发中的作用

Yocto项目是嵌入式Linux发行版的自动化构建框架,其核心任务并非仅构建根文件系统(RootFS),而是完整定制Linux发行版。它能够从源码生成启动链(Bootloader)、内核镜像、设备树、根文件系统及交叉编译工具链(SDK)。在STM32MP2开发中,Yocto通过定义recipe(.bb文件)来控制软件包的下载、编译和安装,最终根据用户配置生成.wic镜像。该框架包含BitBake引擎、元数据层和BSP层,是一个完整的系统构建流水线。对于ST体系,只有Distribution Package才

2025-11-17 16:36:55 667

原创 stm32mp2开发中Developer Package的主要作用

摘要:Developer Package是一个面向开发的半源码包,提供SDK、内核源码、设备树配置等工具,支持修改BSP、开发驱动和Linux应用,并能与M33核通信。但它无法重建完整系统镜像(如rootfs或.wic镜像),也不能编译M33固件或添加Yocto层。开发者需结合Distribution Package或STM32CubeMP2来实现更完整的开发需求。简言之,该包适合BSP和应用开发,但不支持系统级构建。

2025-11-17 16:23:37 471

原创 STM32MP2相比STM32MP1在架构层面的重大升级

STM32MP2相比MP1在架构上有显著升级:采用Cortex-A35(64位)+Cortex-M33+NPU的组合,其中M33取代M4并支持TrustZone安全机制。通信依然通过OpenAMP/RPMsg,但安全性更高。启动模式更灵活,M33可由安全固件独立启动。内存隔离更强,M33拥有独立SRAM区,支持安全/非安全分区。开发工具链延续CubeIDE支持,但新增TrustZone调试功能。整体而言,MP2在性能、安全性和灵活性方面均有提升,更适合复杂AIoT应用场景。

2025-11-16 10:45:09 683

原创 STM32MPU Linux 系列(MP1 / MP2)中定义的三层软件生态模型

ST针对STM32MPULinux系列推出三层软件生态模型,满足不同开发需求: Starter Package:提供预编译镜像,即烧即用,适合快速验证和评估; Developer Package:包含SDK和BSP源码,支持应用/驱动开发和M33协同调试; Distribution Package:完整Yocto构建系统,支持定制Linux发行版和量产移植。 选择建议: 快速体验选Starter 应用/驱动开发选Developer 系统级定制选Distribution M33开发需搭配STM32Cube_F

2025-11-16 09:48:07 748

原创 stm32mp1 跟 stm32mp2的主要区别

摘要:STM32MP2是ST最新一代MPU,相比STM32MP1在架构和性能上有显著提升。MP2采用64位Cortex-A35核心(最高1.5GHz)和Cortex-M33协处理器,并新增NPU支持AI加速。在外设接口方面,MP2支持USB3、PCIe等高速接口,安全性和可靠性更强。虽然MP2与MP1在软件生态上不完全兼容,但ST提供了迁移工具支持。MP1仍适合中低性能、成本敏感应用,而MP2更适合需要AI、高性能和长期支持的新设计。

2025-11-16 02:59:17 841

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除