stm32MP135裸机编程:启动流程分析

2024-06-11 07:12

本文主要是介绍stm32MP135裸机编程:启动流程分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 参考资料

轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf
STM32MP135AD数据手册.pdf

1 stm32MP135裸机启动流程分析

1.1 启动方式

stm32MP135支持8种启动方式:
在这里插入图片描述
注:
UART和USB启动并不是指通过UART/USB加载程序,而是通过UART/USB按照一定的下载协议(一般是通过STM32CubeProgrammer软件一键操作)将二进制文件通过UART/USB烧录到SD卡、EMMC、Nor Flash中,然后再将启动方式切换到SD卡、EMMC、Nor Flash,从这里存储设备内加载程序。

1.2 裸机启动时操作流程

stm32MP135裸机在进入用户APP前有2个阶段的工作需要处理,如下图所示:
在这里插入图片描述
这和我们使用MCU的BOOT+APP实现在线升级的方法非常相似,只不过这里分成了3步。有人或许会问,这里直接和MCU分成2步不也可以完成吗?这里就需要注意一个问题,那就是FSBL-A是被分配在128KB的SYSRAM中运行的,如果你的用户程序不需要使用到DDR,确实可以这样做,但为了使用容量更大的DDR实现更复杂的功能,在FSBL-A内对DDR进行了初始化,然后将用户程序拷贝到了DDR中,从而使用户程序能够在DDR中运行,发挥了MPU的最大价值。

(1)FSBL-A 和 Cube Example都需要加入STM32 Header,才能被ROM code 与bootloader识别。
(2)FSBL-A需烧录到SDCard的固定位置LBA128或LBA640(对于NOR Flash,这个位置为LBA0和LBA512),ROMCode固定从这两个位置寻找FSBL-A。 CUBEEXAMPLE的存放位置可在FSBL-A程序中修改,默认为SDCard的LBA640(NOR Flash为LBA384)。一般来说,将FSBL-A烧写到LBA128,将用户程序烧写到LBA640。

注:
LBAx表示SD卡第x个扇区,SD卡一个扇区大小为512字节。
在这里插入图片描述
注意:
如果有烧录过OpenSTLinux的卡,需先格式化。原因是ROM
Code从GPT分区表中寻找FSBL的优先级更高。
建议使用DiskGenius将SD卡扇区数据全部清除:
在这里插入图片描述

这篇关于stm32MP135裸机编程:启动流程分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050487

相关文章

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结