OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 224|回复: 1

AM62LX 的官方自带的sd-to-emmc 的包是怎么打包出来的

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2026-5-11
在线时间
1 小时
发表于 6 天前 | 显示全部楼层 |阅读模式
回复

使用道具 举报

0

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2026-1-29
在线时间
22 小时
发表于 4 天前 | 显示全部楼层
针对 AM62LX 平台官方 sd-to-emmc 工具/脚本的打包原理和实现方式,以下是技术细节解析:

一、核心功能定位
sd-to-emmc 是 TI AM62x 系列处理器官方提供的 启动介质迁移工具,用于将 SD 卡上的完整系统镜像(包括 Bootloader、RootFS、Device Tree)烧录到 eMMC 中,实现从 eMMC 启动。其本质是一个 自动化烧录脚本集合,而非传统意义上的二进制软件包。

二、打包与实现机制
1. 源码结构与依赖
该工具通常以 Shell 脚本 + 二进制辅助工具 形式存在,集成在 TI 的 SDK 中。典型目录结构如下:

      


# SDK 目录下的路径示例
sdk/board-support/prebuilt-images/sd-to-emmc/
├── flash_emmc.sh          # 主烧录脚本
├── bootloader/            # U-Boot SPL/MLO 二进制文件
├── filesystem/            # RootFS 镜像 (ext4/jffs2)
├── device-tree/           # *.dtb 设备树文件
└── tools/                 # 低级格式化/分区工具 (如 mmcpart, fdisk)

      
2. 关键技术点
分区映射:
通过 fdisk 或 mmcpart 工具将 eMMC 划分为与 SD 卡相同的分区布局(如 FAT32 引导分区 + EXT4 根分区)。
分层烧录:
第一阶段:使用 dd 直接写入 Bootloader (MLO/SPL) 到 eMMC 物理块地址(需严格匹配芯片手册中的偏移量)。
第二阶段:通过 mkfs.vfat 格式化引导分区,并拷贝 uImage/*.dtb。
第三阶段:使用 tune2fs 调整 ext4 文件系统参数后挂载,拷贝 RootFS。
校验机制:
部分版本会加入 MD5/SHA256 校验确保数据完整性。
3. 典型工作流程
      


graph TD
    A[检测 eMMC 设备] --> B{是否已分区?}
    B --否--> C[调用 fdisk 创建分区表]
    B --是--> D[挂载分区]
    C --> D
    D --> E[烧录 Bootloader 到物理地址]
    E --> F[格式化分区并拷贝内核/DTB]
    F --> G[解压/拷贝 RootFS]
    G --> H[设置 U-Boot 环境变量]
    H --> I[同步缓存并卸载]
    I --> J[提示重启切换启动源]

      
三、官方获取途径
1. Sitara SDK 集成
下载地址:https://www.ti.com/tool/DOWNLOAD-SITARA-SDK
路径示例:
linux-devkit/sysroots/<arch>/usr/share/ti/sd-to-emmc/
2. 独立仓库克隆
若未随 SDK 分发,可通过 Git 拉取 TI 维护的独立仓库:

git clone https://git.ti.com/sitara-linux/sd-to-emmc.git

      
四、手动重构建议
如需自行打包类似工具,需关注以下要点:

组件        关键操作
Bootloader        根据 SoC 型号选择正确的 MLO/SPL 二进制,写入 eMMC 起始扇区 (0x0000-0x7FF)
Partition Table        使用 sfdisk 导出 SD 卡分区表,并导入到 eMMC
Kernel & DTB        确保设备树绑定了 eMMC 控制器节点 (&gpmc 或 &elmdma)
RootFS        需包含对应平台的交叉编译工具链库 (ARMv7-A with NEON support for AM62x)
五、常见问题排查
Q1: 烧录后无法启动
原因:Bootloader 版本不兼容或未正确初始化 PMIC。
解决:核对 TI 官网发布的 Errata 文档,更新至最新 Bootloader。
Q2: eMMC 速度异常
原因:HS400 模式未启用或时钟频率限制。
解决:在 Device Tree 中强制开启高速模式:
      

        

&gpmc {
    ti,read-mode = <GPMC_MODE_HS400>;
    ti,write-mode = <GPMC_MODE_HS400>;
};

      
Q3: 容量识别错误
原因:eMMC 高容量扇区地址计算错误。
解决:使用 mmc erase 代替 dd 进行全盘擦除后再分区。
六、扩展应用场景
工业物联网网关:批量预装系统时替代人工插拔 SD 卡。
车载电子:利用 eMMC 抗震特性提升可靠性。
边缘计算盒子:结合 OverlayFS 实现双系统冗余升级。
总结
TI 官方 sd-to-emmc 的本质是一套 基于底层块设备的自动化部署方案,其打包过程依赖于严格的硬件初始化序列和分区管理逻辑。开发者可通过分析其脚本源码学习嵌入式Linux系统的量产化最佳实践。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-5-24 14:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表