emmc知识
uboot下确实是用真实的物理地址,但是mmc write使用的是block为单位的,一个block 512个byte
地址一般是以byte为单位的
所以用mmc write的时候,要转换成block单位
一般一个emmc可以分为user分区,boot0,boot1和rpmb,这是emmc固定的 ,固定有的,不过大小可以改变
然后咱们的分区,是在user分区的基础上分出来的,bootloader,bootimg system 等等。
busybox mount -t vfat /dev/block/mmcblk1p1 /storage/sdcard1
用那种文件系统跟设备里面的保存的第三个(或者第二这个忘了)的superblock有关系。
存储设备本身的superblock是那种系统组织文件的就是那种。
一般像给电脑识别的usb或者sd都是fat32
恩,而emmc一般用ext
nand一般也是ext4
当然有些分区像bootloader这些是不需要给系统访问的,所以就没有文件系统
dd if=/boot.img of=/dev/block/boot
这样可以替换,dd if=/u-boot.bin of=/dev/block/bootloader
system不一定可以哦。
system被mount住,而且是设为不可读写的情况。
其他的boot.img这些已经加载到内存中了,就可以
eMMC Sampling Tuning and linux mmc driver support
20230529_13:23:03:381:[ 6.043215] sdhci_am654_set_clock+0x60/0x34c
20230529_13:23:03:381:[ 6.043220] sdhci_set_ios+0x474/0x630
20230529_13:23:03:382:[ 6.068623] mmc_set_timing+0x24/0x30
20230529_13:23:03:382:[ 6.068625] mmc_select_hs400+0x98/0x208
20230529_13:23:03:382:[ 6.068628] mmc_init_card+0xcb0/0x1a10
20230529_13:23:03:382:[ 6.088746] mmc_attach_mmc+0xdc/0x180
20230529_13:23:03:382:[ 6.088748] mmc_rescan+0x288/0x398
20230529_13:23:03:382:[ 6.088752] process_one_work+0x1a0/0x328
20230529_13:23:03:382:[ 6.088756] worker_thread+0x4c/0x420
hs400 支持需要接ds引脚
DATA Strobe
数据选通引脚,由eMMC发出给主处理器的选通信号,在HS400模式中,读取数据和CRC响应与数据选通同步。
eMMC芯片的引脚定义与工作原理,你知道吗?
不支持则接地,如下