STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植

STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植

  • 1. 获取源码和工具
    • 1.1 STM32CubeProg
    • 1.2 STM32CubeMX
    • 1.3 STM32MP1Dev
    • 1.4 STM32MP1Starter
  • 2. 安装工具
    • 2.1 STM32CubeProg
    • 2.2 STM32CubeMX
  • 3. 解压源码
  • 4. 安装编译工具链
  • 5. 总结

本专栏将以ST官方提供的支持包为基础进行移植,将在100ASK_STM32MP157_V11开发板上进行移植。移植仅实现最基本的驱动可以让系统跑起来,仅供参考和学习,没有进行稳定性验证。

  1. STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植
  2. STM32MP157启动流程
  3. STM32MP157 tf-a2.6移植
  4. STM32MP157 optee3.16移植
  5. STM32MP157 u-boot2021.10移植
  6. STM32MP157 linux5.15移植
  7. STM32MP157 buildroot-2022.02.5构建根文件系统

1. 获取源码和工具

源码和工具从ST官网下载。

1.1 STM32CubeProg

我们开始调试程序只能通过串行启动,我们利用STM32CubeProg通过USB启动。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第1张图片

1.2 STM32CubeMX

这个工具是用来生成代码用的,对于Cortex-M4可以生成和配置代码,对于Cortex-A7可以生成设备树。但是STM32CubeMX对于Cortex-A7支持还不是很成熟,只能配置少部分功能,这里我们只是参考生成的设备树,我们主要是自己修改。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第2张图片

1.3 STM32MP1Dev

有两个包STM32MP1Dev和SDK,分别是源码包和编译工具包。源码包括我们移植所需的全部源码,这个编译工具包括编译工具链和一些编译所需的工具命令,用这个省得折腾,比较推荐使用。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第3张图片
源码:en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
SDK:en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz

1.4 STM32MP1Starter

STM32MP1Starter包含官方开发板的所有镜像文件,包括烧写脚本,我们可以参考。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第4张图片
链接:en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz

2. 安装工具

安装STM32CubeProg和STM32CubeMX。

2.1 STM32CubeProg

双击软件安装包直接安装即可。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第5张图片

2.2 STM32CubeMX

STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第6张图片
点击INSTALL/REMOVE安装STM32MP1软件包。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第7张图片
选中最新的包点击Install完成安装。

3. 解压源码

在工作目录准备好下载好的三个压缩包
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第8张图片
输入下列命令进行解压

$ tar -xvf en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
$ tar -xvf en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
$ tar -xvf en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz

得到stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15 文件夹,里面就是源码、工具和镜像包。

stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
├── images             #官方开发板镜像包
├── sdk                #交叉编译工具链
└── sources            #源码
    └── arm-ostl-linux-gnueabi
        ├── FIP_artifacts                                        #FIP编译生成的结果存放目录
        ├── gcnano-driver-stm32mp-6.4.7-stm32mp1-r1-rc2-r0       #一个内核模块源码
        ├── linux-stm32mp-5.15.24-stm32mp1-r1-r0                 #Linux源码及补丁
        ├── optee-os-stm32mp-3.16.0-stm32mp1-r1-r0               #OPTEE源码及补丁
        ├── tf-a-stm32mp-v2.6-stm32mp1-r1-r0                     #TF-A源码及补丁
        └── u-boot-stm32mp-v2021.10-stm32mp1-r1-r0               #u-boot源码及补丁

4. 安装编译工具链

创建toolchain目录,进入到sdk目录下。输入命令$ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.sh安装工具链,输入../toolchain设置安装路径,输入Y等待安装完成。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第9张图片
安装完成完成进入到toolchain目录下,执行$ source environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi(以后每开一个终端需要使用工具链都要执行这条命令),输入arm双击tab键可以看到工具链。
STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植_第10张图片

5. 总结

我们获取到官方源码,并且安装好所需工具,接下来就是移植了。我们参照官方stm32mp157d-dk1开发板进行移植,对于移植我们主要是对设备树的修改。

学习笔记仅供参考,欢迎指正错误,如有侵权请及时联系。移植源码获取:

git clone https://github.com/Sonboy97/arm-ostl-linux-gnueabi.git
版本:9ae04fa8dbea4c984243179d1faa6e39cd18d2dd

你可能感兴趣的:(STM32MP157,stm32,arm,linux)