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

STM32MP1启动-嵌入式Linux

[复制链接]
STMCU小助手 发布时间:2022-9-28 19:22
一、概述
STM32MP1内部没用flash,系统及程序都是存放在外部 Flash (EMMC、SD、NAND、NOR),也可以通过USB、UART启动。

启动模式:

8b0cbb43d63a49a399fc39bf7b701c7d.png

1、USB 启动
内部 ROM 代码支持 USB OTG 启动,一般使用 STM32CubeProgrammer 软件通过 USB OTG 接口来向 STM32MP1 烧写系统。USB OTG 需要一个 48M 和 60M 的时钟,这两个时钟由HSE 生成。
在自己做核心板的时候外部 HSE 时钟最好选择 24MHz有源晶振,不要特立独行,虽然可以通过修改 OTP 来更改 HSE,一旦修改错误芯片就废了。

2、UART 启动
只能使用 USART2、USART3、UART4、UART5、USART6、UART7 或 UART8,此时串口工作模式为:1 位起始位、8 位数据位、偶校验、1 位停止位、波特率 115200。

62212756622e4cd6a148f8df8bbe2b0f.png

13cb93ef732340739596da57e871a1d5.png

3、Flash 设备启动要求
ST 官方的 Flash 分区建议



二、STM32MP1 二进制头部信息
STM32MP1 内部的 ROM 代码会先读取 FSBL 代码,一般是 TF-A 或者 Uboot 的 SPL,也可以是 A7 裸机代码。比如 TF-A 我们之间编译生成二进制 bin 文件,但是这个 bin 文件不能直接拿来用,需要在前面添加一段头部信息,这段头部信息也包含了鉴权内容。如下:

233060d1da1444ef855e8334afda5705.png

头部信息不需要我们自己手动添加,ST 提供了个名为“stm32image”的工具专门用于在 bin 文件前面添加头部信息。
在编写 A7 裸机的时候需要自己使用 stm32image 工具在 bin 文件前面添加头部信息。
gcc stm32image.c -o stm32image

3c7d960cf9a048b4b4f2febfcfdfa0d8.png

stm32image 在使用的时候需要搭配一系列的参数:
-s:指定源文件。
-d:生成的目标文件。
-l:加载地址。
-e:入口地址。
-m:出版本号。
-n:次版本号。

三、 STM23MP1 Linux 系统启动过程
MP1 Linux启动流程 :

2d7539a48b444ca7a849aa114d7e9fad.png

启动 Linux 内核过程是一个链式结构:ROM Code→FSBL(TF-A)→SSBL(Uboot)→Linux kernel→rootfs。
一般 FSBL 代码是 TF-A 或者 Uboot 的 SPL 代码,也可以将 FSBL换成裸机代码。
SSBL 代码运行在 DDR 里面,SSBL 一般是 Uboot,Uboot 会将 Linux 内核加载到 DDR 上并运行。
Linux 内核启动过程中会初始化板子上的各种外设。

四、 STM23MP1 启动过程

a59570d20b0742a4b2468d4d1c1c20b1.png

398bbb48b07b41469f93b9217c47d479.png

6e6f8e56e2264890979c914ad4ffb37c.png

93ce48cf5175438aade79eca17f0de7a.png


————————————————
版权声明:Davidysw


0dbb91401d67469d85ee28c2b0501332.png
收藏 评论0 发布时间:2022-9-28 19:22

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版