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结构。
...全文
449 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卡的电源管理!
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。

19,523

社区成员

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

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