对emmc进行分区

1.运行的前提是,pc机上sfdisk工具

为什么SD卡在Linux下/dev下的设备名叫mmcblk0p1?

SD/MMC 卡的设备构造差不多,MMC 应该是 SD 的前身,不过 MMC 当时的设计比SD 小一半。
所以,SD/MMC 的驱动通用,进一步的,Linux 的设备节点就延续了 MMC 的这个名字,后面的 blk 是块设备这个英文的简写, mmcblk 也就是“mmc/sd 块设备”,0 就是这个 mmc/sd 设备的顺序编号,p1 就是第一个分区。
 

 目前是分了3个区(EMMC-4G大小,可用空间大约3.9G,本次分区并全部使用)

150M   --mmcblk0p1 ,偏移量为10M开始

2G       --mmcblk0p2,偏移量为200M开始

1G      -- mmcblk0p3,偏移量为2200M开始

打开烧写脚本

#!/bin/sh

# partition size in MB

BOOT_ROM_SIZE=10   MBR数据区,10MB

ROOT_SYSTEM_SIZE=150  //分区磁盘大小

# call sfdisk to create partition table

# destroy the partition table

node=$1

dd if=/dev/zero of=${node} bs=1024 count=1 清除分区表MBR

sfdisk --force -uM ${node} << EOF

${BOOT_ROM_SIZE},${ROOT_SYSTEM_SIZE},83  //此处应该就是mmcblk0p1

,,83 将其他所有空间再分成一个区,,此处应该就是mmcblk0p2了。

EOF

83是Linux分区标识

Uboot和kernel是直接使用dd写入mmcblk0中的,而分区则是使用sfdisk进行的,空出了uboot和kernel的位置,从起始地址10MB开始的。
 

将shell脚本改好之后,进行程序烧写

对emmc进行分区_第1张图片

烧写完成后重新启动linux系统

这就是表示emmc已经分好区了

很感激作者shell文档,在这里借用该作者的shell脚本:

https://blog.csdn.net/linglongqiongge/article/details/52262660?locationNum=13

https://blog.csdn.net/shell_albert/article/details/8425530

了解emmc分区原理参考文档:
 https://blog.csdn.net/u011975319/article/details/51803126/

 

 

你可能感兴趣的:(嵌入式开发)