空emmc flash的使用

这里主要记录fdisk命令的常用使用方法,如何对emmc做最基本的如分区,格式化等操作。

1、根据系统启动信息,查看emmc的基本信息
硬件上电启动,在内核的启动信息中找到了如下信息:

emmc在/dev下的设备文件为:mmcblk0, 使用ls名查看/dev目录下文件,确认mmcblk0设备文件存在;如果存在进行下一步fdisk操作。

2、使用fdisk对emmc进行分区
2.1、对emmc进行分区
# fdisk /dev/mmcblk0
Device contains neither a valid DOS partition table, nor Sun, SGI, OSF or GPT disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that the previous content
won't be recoverable.

The number of cylinders for this disk is set to 238592.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

2.2、使用m命令,获取fdisk使用帮助
Command (m for help): m
Command Action
a       toggle a bootable flag
b       edit bsd disklabel
c       toggle the dos compatibility flag
d       delete a partition
l       list known partition types
n       add a new partition
o       create a new empty DOS partition table
p       print the partition table
q       quit without saving changes

### EMMC PHYBLOCK 技术详解 #### 物理块的概念与作用 物理块(PHYBLOCK),即Physical Block,在eMMC存储器中扮演着至关重要的角色。作为底层数据存储单元,每一个物理块由多个页面组成,这些页面共同构成了实际的数据承载结构[^2]。由于NAND Flash固有的特性——无法直接覆盖写入现有数据,因此每次写入新数据都需要先擦除整个物理块再重新写入。这种机制决定了物理块的设计至关重要。 #### 物理块的操作特点 在eMMC协议框架下,针对物理块的操作主要包括读取、写入以及擦除等基础功能。特别是写入过程涉及到复杂的管理策略: - **预分配机制**:为了避免频繁的全盘扫描寻找可用间,通常会预先保留一定数量的白物理块供后续快速写入使用。 - **磨损均衡算法**:为了延长使用寿命并提高可靠性,系统会在后台运行特定算法来均匀分布写入次数至各个物理块上,防止某些区域过早损坏[^4]。 #### 数据保护措施 考虑到突发断电等情况可能导致的数据丢失风险,eMMC引入了可靠的写入机制。该机制确保即便是在电源异常中断的情况下也能维持已提交数据的一致性和完整性。具体而言,当向相同逻辑地址连续写入新的数据时,旧版本并不会立即被删除而是暂时保存在一个独立的位置;只有确认新数据安全落地之后才会正式替换前者。这一设计依赖于内部维护的一个映射表,记录着逻辑区块号(LBA)到物理区块号(PBA)之间动态变化的关系[^3]。 ```python def write_data_to_emmc(logical_address, new_data): physical_block = find_available_physical_block() try: program_page(physical_block, new_data) update_mapping_table(logical_address, physical_block) invalidate_old_physical_block(logical_address) except PowerFailureError as e: rollback_transaction() # Restore previous state on power failure finally: ensure_data_integrity() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值