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

gsymichael 2008-09-05 09:35:06
请教一个关于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结构。
...全文
315 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
devilgavin 2011-09-08
  • 打赏
  • 举报
回复
mark
lllchr88 2010-03-22
  • 打赏
  • 举报
回复
mark
songtitan 2008-09-16
  • 打赏
  • 举报
回复
在CE的SDBUS架构下,做到此点并不困难:
1 在SD Host Controller驱动的power down时调用SDHCDPowerUpDown(pHostContext, FALSE, TRUE, 0); 注意第三个参数必须为TRUE,表明是需要持续供电的。
2 suspend时 把SD的寄存器保存,
3 resume回来重新赋值SD寄存器

当然要去掉那个card remove的动作,另外,SD卡并不会消耗多少电,如果一定要省这部分的话,可以硬件上断电,一样没问题
91program 2008-09-14
  • 打赏
  • 举报
回复
一般做产品,都会SD卡拔插遇到这个问题,但不是LZ所谓的断点续传问题。

在SD卡拔出时,做下必要的记录
确定SD卡插入时,继续以前没有完成的工作
gsymichael 2008-09-14
  • 打赏
  • 举报
回复
Up
Jacky_Dai 2008-09-12
  • 打赏
  • 举报
回复
SD卡? 我们这边都没有用到~ 学习一下~
gsymichael 2008-09-11
  • 打赏
  • 举报
回复
yashi和91program ,你们两位高手能大概给我说一下可以通过什么方式解决这个问题呢?
gsymichael 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yashi 的回复:]
你对时间的要求很高吗?也就是说resume起来以后,一定要马上开始续传吗?如果是的话,就比较麻烦,如果不是,还是有办法解决的,对吧。
[/Quote]

如果说对于时间没有太高要求的话可以通过什么方式解决呢?能具体说一下吗?
yashi 2008-09-08
  • 打赏
  • 举报
回复
你对时间的要求很高吗?也就是说resume起来以后,一定要马上开始续传吗?如果是的话,就比较麻烦,如果不是,还是有办法解决的,对吧。
91program 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gsymichael 的回复:]
那么这样看来就没有办法了吗?有没有什么方法可以解决这个问题呢?
[/Quote]

看你对时间的具体要求,能解决,只是会慢一些。
11000000 2008-09-07
  • 打赏
  • 举报
回复

学习一下。
gsymichael 2008-09-07
  • 打赏
  • 举报
回复
那么这样看来就没有办法了吗?有没有什么方法可以解决这个问题呢?
91program 2008-09-06
  • 打赏
  • 举报
回复
SD卡的插入动作,一般响应比较慢,很快速度Suspend/Resume会有问题的。

关键是系统sleep了,就无法进行操作;若不Sleep就会耗电。不只是SD卡的电源管理!

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧