WinCE 5.0下SD卡文件续传的问题

gsymichael gsymichael 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请教一个关于SD卡文件续传的问题:
在向SD卡写入文件的过程中执行Suspend操作,之后Resume起来能够继续上次未传完的部分。

目前的驱动已经可以实现这个功能,在Suspend的时候会关掉SD的电源,之后在Resume时执行PowerUp时会SetEvent激活
SD Card Detect Thread,在该Thread中首先会执行一次Remove Card的操作,紧接着执行Insert Card的操作,通过
这样的方式来实现续传的功能。

但是目前遇到一个问题:如果以很快的速度进行Suspend/Resume操作多次(设备上有一个Button来控制,按下进入Suspend放开Resume),那么就会发现在最后Resume之后无法进行续传。
原因是SD卡在StorageManager所对应的Store结构被Unmount掉了。对于这个我将PNPUnloadDelay的值改大也没有起到很好的
作用,从Debug信息来看,在StoragerManager将SD卡对应的Store的flag置为Detach之后,没有MountStroe的操作,等最后
一次Resume起来后就直接执行DetachStores了。而在DetachStore之后还会有很多MountStore的动作。

这个问题可以通过在Suspend的时候持续给SD供电来解决,但是这样系统在Sleep时电流太大。所以这种方案无法采用。

请教各位高手有哪位遇到过类似的问题,如何才能较好的解决这个问题。SD卡的驱动不知道能否支持多级的电源管理呢?
我目前使用的SD驱动的Bus,Client层驱动是使用的MS结构。
...全文
评论 13
收藏 已收藏
分享
返回顶部
gsymichael
嵌入开发(WinCE) 19,524 成员 41,565 内容