
基本流程 编译开发板提供的内核源码 准备编译所需工具链 编译tf-a 编译uboot 编译linux-kernel 准备编译所需工具链 ubuntu环境下,下载yocto SDK ![]() 解压缩yocto-sdk 包
安装yocto-sdk
设置yocto-sdk为默认环境
验证yocto-sdk开发环境
所需要的tf-a、u-boot和kernel源代码在下载目录的MYD-YA157C\04-Sources目录中 ![]() 解压MYiR开发板提供的源代码到工作空间
编译tf-a
最终生成所需要的tf-a-stm32mp157c-ya157c-512d-v2.stm32 编译u-boot 在build文件夹中构建和生成u-boot
生成所需要的 u-boot.stm32文件 编译linux-kernel 在build文件夹中构建和生成linux内核
根据MYiR开发板硬件资源的预设文件myc-ya157c_defconfig,将内核配置完成。 备注:myc-ya157c_defconfig预设配置文件位于kernel目录的arch/arm/configs/目录下 准备镜像用于烧录 关于烧录工具 烧录内核所使用的工具是STM32CubeProgrammer ![]() 准备烧录镜像列表文件(tsv)。这里推荐基于开发板提供的修改。tsv格式文件通过excel打开,如下图所示。 ![]() 一般的,对于需要更新的分区,#Opt一列设置为P,如上图所示,第一阶段引导TF-A固件,第二阶段引导程序U-Boot以及包含内核在内的根文件系统都是需要分别更新到emmc存储设备的各个分区中。 只更新内核 只需要保留包含内核文件系统分区的#Opt为P而其他分区为PE ![]() 注意:如果想要保留原本分区的内容,必须将#Opt内容设置为PE,而不能设置成为- 准备镜像用于更新引导程序和内核 以MYiR-YA157C-V2-weston发布版本为模板,创建一个副本命名为my-weston ![]() 拷贝之前生成的tf-a镜像文件,u-boot镜像文件到my-weston中 将更新后的ext4文件拷贝到my-weston文件夹 拷贝st-image-bootfs-openstlinux-weston-myir.ext4到linux环境中。1
修改tsv文件,进更新引导程序和内核及其设备树。 ![]() 烧录 ![]() 通过拨动开发板的Boot引脚,使开发板以USB DFU更新固件模式启动。 ![]() ![]() 烧录成功显示如下界面 ![]() 对于linux内核,uboot和TFA的编译以及EXT4文件的更新都在linux操作系统下进行的, 而烧录开发板则使在windows环境下进行。 中间的文件传输使用的使samba服务器实现。 ———————————————— 版权声明:AgileTortoise |
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。
《STM32MPU安全启动》 课程学习心得