【TF-A与u-boot烧录的SD卡的操作流程】 📅 发布时间:2026/7/13 7:15:43 👁️ 浏览次数: 整体背景TF 卡启动 u-boot 的核心目的当开发板上没有可启动的系统比如 “变砖”或者需要调试启动流程时我们可以通过 TF 卡启动到 u-boot 终端进行救砖、烧写镜像等操作。整个流程分为TF 卡分区和镜像烧录两大阶段。 第一部分5.5.1 TF 卡分区为启动镜像准备 “专属位置”TF 卡需要按照 STM32MP157 的启动硬件要求划分出对应启动链各阶段的分区。查看 TF 卡分区ls /dev/sd*作用在 Linux 系统中存储设备会被识别为/dev/sdX如主硬盘是/dev/sdaTF 卡通常是/dev/sdb后面的数字代表分区如/dev/sdb1。这个命令用来确认 TF 卡对应的设备节点避免后续操作误写硬盘同时查看现有分区结构判断是否需要重新分区。卸载设备umount /dev/sdb1作用如果 TF 卡的分区被系统自动挂载了必须先卸载umount否则后续分区、格式化等操作会因 “设备被占用” 而失败。确保 TF 卡处于可读写的空闲状态才能进行修改分区表等底层操作。删除原有分区表sudo parted -s /dev/sdb mklabel msdos作用parted是 Linux 分区工具-s表示 “静默模式”无需交互确认mklabel msdos会将 TF 卡的分区表类型设置为MBRmsdos 格式同时覆盖原有分区表相当于 “清空所有旧分区”为重新分区做准备。重新分区sudo sgdisk --resize-table128 -a 1 -n 1:34:545 -c 1:fsbl1 -n 2:546:1057 -c 2:fsbl2 -n 3:1058:5153 -c 3:ssbl -n 4:5154 -c 4:rootfs -p /dev/sdb -g这是最关键的一步完全贴合 STM32MP157 的启动硬件要求拆解各参数作用sgdiskGPT 分区工具这里兼容 MBR 模式适配开发板硬件--resize-table128调整分区表最大支持 128 个分区满足多分区需求-a 1设置分区对齐为 1 扇区STM32MP1 平台要求 1 扇区对齐避免启动异常-n 1:34:545 -c 1:fsbl1创建第 1 个分区起始扇区 34、结束扇区 545命名为fsbl1存放第一阶段启动加载器 TF-A 的第一份镜像-n 2:546:1057 -c 2:fsbl2创建第 2 个分区起始扇区 546、结束扇区 1057命名为fsbl2存放 TF-A 的冗余备份镜像当fsbl1损坏时硬件会自动从fsbl2启动提高可靠性-n 3:1058:5153 -c 3:ssbl创建第 3 个分区起始扇区 1058、结束扇区 5153命名为ssbl存放第二阶段启动加载器 u-boot-n 4:5154 -c 4:rootfs创建第 4 个分区起始扇区 5154、默认到卡末尾命名为rootfs存放 Linux 根文件系统后续挂载后存放系统文件-p /dev/sdb打印分区表信息方便验证分区是否正确-g生成新的 GUID 分区表兼容硬件启动要求核心作用按 STM32MP157 启动链的阶段划分分区让硬件能按顺序加载fsbl1/fsbl2→u-boot→ 根文件系统。格式化 rootfs 分区sudo mkfs.ext4 /dev/sdb4作用rootfs分区需要是 Linux 支持的文件系统常用ext4mkfs.ext4会将分区 4 格式化为ext4文件系统这样后续可以挂载该分区并复制根文件系统内容到这里。 第二部分5.5.2 镜像烧录把启动镜像写入对应分区这一步是把编译好的启动镜像写入 TF 卡的对应分区让硬件能加载启动。烧录 TF-A 镜像第一阶段启动加载器cd ~/fs-mp1a/trusted-firmware/build/trusted/进入 TF-A 镜像的编译输出目录TF-A 是 ARM Trusted Firmware-A负责安全启动、初始化硬件、建立安全环境sudo dd iftf-a-stm32mp157a-fsmp1a.stm32 of/dev/sdb1 convfdatasyncdd是 Linux 块设备复制工具if是输入文件TF-A 镜像of是输出设备分区 1fsbl1convfdatasync强制将缓存数据刷写到磁盘确保镜像完全写入分区避免断电导致数据丢失第二个dd命令sudo dd iftf-a-stm32mp157a-fsmp1a.stm32 of/dev/sdb2 convfdatasync作用把 TF-A 镜像也写入分区 2fsbl2实现双 FSBL 冗余启动提高系统可靠性当fsbl1损坏时硬件自动尝试从fsbl2启动烧录 u-boot 镜像第二阶段启动加载器cd ~/fs-mp1a/u-boot/build-trusted/进入 u-boot 镜像的编译输出目录u-boot 负责加载内核、设备树启动 Linux 系统或进入 u-boot 终端进行调试 / 救砖sudo dd ifu-boot-stm32mp157a-fsmp1a-trusted.stm32 of/dev/sdb3 convfdatasync把 u-boot 镜像写入分区 3ssbl让 TF-A 加载完成后能继续加载 u-boot最终进入 u-boot 终端或启动 Linux 内核启动开发板插入 TF 卡 调整拨码开关为【101】作用开发板的拨码开关用来选择启动介质如 eMMC、TF 卡、SPI Flash 等设置为101是指定从 TF 卡启动。开发板上电后会从 TF 卡的fsbl1/fsbl2加载 TF-A再加载 u-boot最终进入 u-boot 终端或启动系统。实际操作第一步确认设备非常重要避免误操作硬盘从lsblk输出可以明确/dev/sda是你的 Ubuntu 系统硬盘有/boot/efi和根目录/挂载点绝对不能动/dev/sdb是你的 TF 卡RM1表示可移动设备这是我们要操作的目标。通过lsblk命令查看哪些分区已挂载以下图为例下图四个分区均已挂载需进行卸载操作️ 第二步卸载 TF 卡的所有挂载分区因为 TF 卡的 4 个分区都被自动挂载了必须先卸载否则后续分区操作会失败。依次执行以下命令bash运行sudo umount /media/hqyj/C2DB-9200 # 卸载 sdb1 sudo umount /media/hqyj/DCE4-F5F3 # 卸载 sdb2 sudo umount /media/hqyj/BEED-59BC # 卸载 sdb3 sudo umount /media/hqyj/67a70f70-4c53-4450-aa47-6462e8805823 # 卸载 sdb4提示如果某个分区卸载失败可以先关闭文件管理器中打开的 TF 卡文件夹再重新执行卸载命令。️ 第三步清空旧分区表并重新分区清空原有分区表MBR 格式bash运行sudo parted -s /dev/sdb mklabel msdos这个命令会清除 TF 卡上所有旧分区为重新分区做准备。按 STM32MP157 要求创建新分区直接执行这条分区命令和你教程中的参数完全匹配bash运行sudo sgdisk --resize-table128 -a 1 -n 1:34:545 -c 1:fsbl1 -n 2:546:1057 -c 2:fsbl2 -n 3:1058:5153 -c 3:ssbl -n 4:5154 -c 4:rootfs -p /dev/sdb -g执行后会自动创建 4 个分区sdb1fsbl1存放 TF-A 主镜像sdb2fsbl2存放 TF-A 备份镜像sdb3ssbl存放 u-boot 镜像sdb4rootfs存放根文件系统 第四步格式化 rootfs 分区把sdb4格式化为 Linux 支持的ext4文件系统bash运行sudo mkfs.ext4 /dev/sdb4这个命令会在分区上创建文件系统后续可以挂载并复制根文件系统。 第五步烧录 TF-A 和 u-boot 镜像烧录 TF-A 镜像两个冗余分区先进入 TF-A 镜像的编译输出目录路径以你实际编译的为准bash运行cd ~/fs-mp1a/trusted-firmware/build/trusted/烧录到fsbl1sdb1bash运行sudo dd iftf-a-stm32mp157a-fsmp1a.stm32 of/dev/sdb1 convfdatasync烧录到fsbl2sdb2bash运行sudo dd iftf-a-stm32mp157a-fsmp1a.stm32 of/dev/sdb2 convfdatasync烧录 u-boot 镜像进入 u-boot 镜像的编译输出目录bash运行cd ~/fs-mp1a/u-boot/build-trusted/烧录到ssblsdb3bash运行sudo dd ifu-boot-stm32mp157a-fsmp1a-trusted.stm32 of/dev/sdb3 convfdatasync提示convfdatasync是为了确保数据完全写入 TF 卡避免断电导致镜像损坏。 第六步启动开发板安全弹出 TF 卡避免数据丢失bash运行sudo eject /dev/sdb将 TF 卡插入开发板调整拨码开关为101选择 TF 卡启动模式。上电启动开发板会从 TF 卡加载 TF-A → u-boot最终进入 u-boot 终端。
为什么做游戏一定要选定制开发? 选择游戏定制开发,关键是挣脱标准化模板的桎梏,让游戏从底层设计开始,就精准匹配企业自身的商业发展目标、品牌专属调性以及目标用户的核心需求。相较于成品游戏采购、通用模板开发,定制化模式能从根源上解决游戏产品 “同质化突出… 2026/7/10 23:01:33
阿里云上使用docker-compose安装禅道 引言 禅道 是一款国产的开源项目管理软件,主要用于敏捷开发、测试管理和缺陷跟踪。它集成了项目管理、产品管理、质量管理、文档管理、组织管理和事务管理等功能,适合软件开发团队使用。 一、禅道的主要功能: 1.1产品管理: 需… 2026/7/8 23:07:55
从草图到智能:达索系统CATIA开启工程开发的最新AI能力 在工程与设计领域,优化生产力、提升质量并缩短产品上市进程的压力比以往任何时候都更为巨大。为应对这一全球性行业挑战,CATIA为2025版引入了一项名为“草图生成式约束”(Sketch Generative Constraint)的新功能,它有望… 2026/7/12 16:23:39
瑞盛祥粉丝品牌知识科普:扎根中国粉丝之都招远,传承三百年龙口粉丝非遗技艺 一、品牌基本信息瑞盛祥是招远市五福食品有限公司旗下专注于粉丝品类的商标品牌。该商标于2017年3月1日提交注册申请,注册号22988387,国际分类为第30类(方便食品),专用权期限为2018年2月28日至2028年2月27日。商标核定… 2026/7/13 7:14:39
STM32L442KC与ADS8665构建高精度数据采集系统 1. 项目概述:ADS8665与STM32L442KC的强强联合在工业自动化、医疗设备和测试测量领域,高精度信号采集系统对模数转换器(ADC)的性能要求极为严苛。ADS8665作为TI推出的16位1MSPS SAR型ADC,以其卓越的线性度(0.5LSB INL)和低功耗特性(5mW1MSPS)成… 2026/7/13 7:12:39
ADS7828与PIC32MZ的嵌入式信号采集系统设计 1. 项目背景与核心器件选型在嵌入式系统开发中,模拟信号采集是连接物理世界与数字系统的关键环节。ADS7828作为德州仪器(TI)推出的12位精度ADC芯片,以其低功耗特性(工作电流仅250μA)和8通道多路复用能力,成为中精度数据采集的理想选择。搭配… 2026/7/13 7:10:38
STM32F303VE GPIO上拉下拉配置与信号完整性优化 1. 信号上拉与下拉的基础原理在嵌入式系统设计中,信号线的上拉和下拉配置是确保电路可靠工作的基础。上拉电阻将信号线拉向高电平(通常接VCC),而下拉电阻则将信号线拉向低电平(通常接GND)。这种配置在数字电… 2026/7/13 7:10:38
Spark 3.5.0 与 Hadoop 3.3.6 环境变量冲突排查:5 个关键配置项详解 Spark 3.5.0 与 Hadoop 3.3.6 环境变量冲突排查:5 个关键配置项详解当企业级大数据平台从传统Hadoop生态向Spark计算引擎迁移时,环境变量配置不当导致的兼容性问题成为最常见的"拦路虎"。本文将深入剖析Spark与Hadoop集成时最易引发冲突的5个核… 2026/7/13 7:10:38
高压安全隔离技术:ISOM8710在工业控制中的应用 1. 高压安全隔离的必要性与挑战在工业控制、医疗设备和新能源系统中,高压安全隔离是确保人员和设备安全的关键技术。想象一下,当你的电路板需要处理380V交流电时,如果隔离失效,操作人员触摸控制面板的瞬间就可能遭遇致命电击。这就… 2026/7/13 7:10:38
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55