当前位置: 首页 > news >正文

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卡扇区数据全部清除:
在这里插入图片描述

http://www.lryc.cn/news/373220.html

相关文章:

  • 在Pycharm使用Github Copilot
  • Docker镜像构建:Ubuntu18.04+python3.10
  • 如何进行LLM大模型推理优化
  • QLoRA:高效的LLMs微调方法,48G内存可调65B 模型
  • 力扣48. 旋转图像
  • 【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行
  • 【计算机网络仿真实验-实验2.6】带交换机的RIP路由协议
  • Apache网页优化
  • OpenCV形态学
  • 首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板 | 苹果CMSV10主题
  • 永磁同步直线电机(PMLSM)控制与仿真2-永磁同步直线电机数学模型搭建
  • MPLS VPN一
  • 39python数据分析numpy基础之h5py读写数组数据到h5文件
  • 2024全新仿麻豆视频苹果cms源码v10影视模板
  • 这世上又多了一只爬虫(spiderflow)
  • SpringMVC框架学习笔记(七):处理 json 和 HttpMessageConverter 以及文件的下载和上传
  • 八、BGP
  • 有监督学习——支持向量机、朴素贝叶斯分类
  • 自动化测试文档
  • vue-i18n使用步骤详解(含完整操作步骤)
  • XXE漏洞修补:保护您的系统免受XML外部实体攻击
  • 去除upload的抖动效果
  • 什么是 Linux ?(Linux)
  • uni-app 怎么在tabbar使用阿里图标库
  • 勒索病毒剖析
  • 【C++11】第一部分(一万六千多字)
  • FPGA专项课程即将开课,颁发AMD官方证书
  • C++ shared_ptr
  • 2024.6.15
  • 堆栈溢出的攻击 -fno-stack-protector stack smash 检测