"); //-->
By Toradex 秦海
1). 简介
嵌入式设备WinCE下对Flash存储进行管理有多种方式,如Eboot下通过命令行操作,在WinCE下通过控制面板的存储管理,还有本文会着重介绍的通过Storage Manager API函数进行操作。
相对于在Eboot下进行操作,通过API函数的方式管理Flash存储可以更方便的和WinCE应用部署相结合,方便进行量产更新,而直接控制面板操作一方面需要人工手动配置,另一方面对于某些平台对其支持并不完善,容易造成不可控的问题。
本文就基于Toradex Colibri iMX6S ARM嵌入式平台来演示通过Storage Manager API函数来进行Flash磁盘管理。
2. 准备
a). Colibri iMX6S ARM核心版配合Colibri Eva Board载板,连接串口和调试USB口到开发主机方便调试,具体操作方法可以参考这里。
b). Colibri iMX6S 系统使用Toradex WEC7 Release V1.1,更新方法请参考这里。
c). Windows开发主机开发环境配置请参考这里。
3). Flash存储操作示例
a). Colibri iMX6S核心版配置了一个4GB的eMMC存储,模块出厂刷新的是Embedded Linux系统,需要按照这里的说明进入恢复模式后更新为WinCE系统,在这个过程中,eMMC被分区为如下模式:
------------------------------
- boot sector:引导扇区
- Partition table:分区表
- “empty” space:空闲空间用于存放windows CE image, splash screen, registry
- Filesystem partition:文件系统分区, 由于在恢复模式下加载时并不知道具体eMMC容量, 因此默认只分配了256MB空间
------------------------------
b). 在WinCE下,则只能看到文件系统分区,即为“FlashDisk”盘,大小为256MB。这里我们就演示如何将默认的256MB 文件系统分区扩展为排除上面的前三项占用空间后的全部剩余空间。
c). 首先明确可用的最大文件系统空间大小
在Eboot下执行下面命令,从打印输出可以判断出可用的最大Filesystem空间为7430031个sectors,其他预留空间为303217个sectors。
----------------------------
#preparefs
Creating filesystem partition on SD 2
Number of sectors in the SD/eMMC: 7733248.
Size in MB=3776
heads: (8)128
sectors=63
cylinders=958
Sectors used for bootloader and OS: 303156
Start sector of filesystem partition: 303156.
Sectors in filesystem partition: 7430031.
Successfully created 2 partitions
Boot Partition size = 151578 Kbytes
File System Partition size = 3715015 Kbytes
----------------------------
c). 根据上面的开发指南,在开发主机创建Console应用程序工程storagetest,具体代码请见如下:
https://github.com/simonqin09/storagetest/blob/master/storagetest.cpp
简单说明如下:
./ 首先通过“OpenStore”API打开eMMC 存储设备“DSK1:”。
./ 然后通过“FindFirstPartiton”API找到当前的文件系统分区。
./ 然后通过“OpenPartition”打开当前文件系统分区并删除。
./ 然后通过“Createpartition”API创建上面定义好大小的预留空间分区和新的扩展文件系统分区。
./ 然后再次通过“FindFirstPartiton”API找到刚分好的预留空间分区并删除。
./ 然后再次通过“FindFirstPartiton”API找到扩展文件系统分区并格式化,之后就可以使用分区了。
4). 总结
本文基于NXP iMX6嵌入式平台测试了利用Storage Manager API 对Flash存储设备进行管理,方便嵌入式用户在应用程序中一体化处理相关操作。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
问个低级问题: session file 无效是什么原因?无法加载调试!
摩托车刹车灯延时熄灯电路
山东大学:植物识别
浙江大学:基于FPGA的发动机信号接口系统
SC41342(通用)红外线、超声波或射频遥控发射编码电路
大连理工大学:基于FPGA的嵌入式多核物联网数据中心控制器设计
汽车传感器的应用和现状
SC41344(通用)红外线、超声波或射频遥控发射编码电路
马自达与罗姆开始联合开发采用下一代半导体的汽车零部件
江南大学:基于VLC的无线导览系统
可调型汽车蓄电池充电器
TC9132P遥控传输线电路
智驱未来,赋能全域智能电动生态
传三星下一代2纳米移动SoC有望更名 将停止使用“Exynos”命名
摩托罗拉168VA手机汽车充电器剖析
开拓数控温补晶体振荡器DS4000在GPS中的应用
Nordic赋能模组为智能家居应用提供Matter over Thread功能
苹果专利探索 Vision Pro 头显未来:打造防窥屏神器
Meta万元级智能眼镜曝光,开启\"取代iPhone\"关键一步
ChatGPT营收狂飙!付费用户三个月猛增30% 突破2000万大关
交流电感和感抗
中南民族大学:基于虚拟环绕声的音频处理器设计
TA7333F(电子玩具)无线电遥控发射电路
2005版 uCOS C51移植心得【原创】
SC41343(通用)红外线、超声波或射频遥控发射编码电路
UUphone免费网络电话新版本推出
2024年度村田中国CSR活动圆满收官
请教:tornado for x86打开文件时路径应该是怎样的?
bios4510[下载]
是德科技推出1.6T平台和自动化网络互连性能验证软件