roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
阅读:2147回复:11

sd卡驱动高手帮忙

楼主#
更多 发布于:2008-05-12 10:04
请教个sd卡驱动的问题。

我的扳子在唤醒后检测sd开比较慢,大概延时有1s左右,所以如果应用程序(需要不停的读取sd卡上的数据)运行时休眠唤醒后,会出现卡被弹出的提示,但之后程序还是能继续正常运行。

  如何做能先唤醒sd卡后再进入其他线程呢?? 是否能修改sd相关的注册表改变优先级别来做??? 望能给点思路


我的注册表如下:  
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_SMDK2440]
    "Order"=dword:21
    "Dll"="sdhc_sc2440.dll"
    "Prefix"="SDH"
    
    "DMAChannel"=dword:0            ; DMA channel to use.  Set to 0xffffffff to disable DMA
    "DMAIrq"=dword:11
    "DMA_IST_Priority"=dword:96

    "SDIOIrq"=dword:15
    "SDIO_IST_Priority"=dword:97
    
    "PollingTimeout"=dword:100      ; 100 ms
    "CardDetect_Thread_Priority"=dword:98
    
    "CardDetectGPIO"="G"            ; card detect on GPG8
    "CardDetectMask"=dword:100
    "CardDetectFlag"=dword:0
    "CardDetectControlMask"=dword:fffcffff
    "CardDetectControlFlag"=dword:0
    "CardDetectPullupMask"=dword:fffffeff
    "CardDetectPullupFlag"=dword:100
    
    "CardReadWriteGPIO"="H"         ; card R/W on GPH8
    "CardReadWriteMask"=dword:100
    "CardReadWriteFlag"=dword:100
    "CardReadWriteControlMask"=dword:fffcffff
    "CardReadWriteControlFlag"=dword:0
    "CardReadWritePullupMask"=dword:fffffeff
    "CardReadWritePullupFlag"=dword:100

    "HandleBusyFinishOnCommand38"=dword:1
    "DmaTransferTimeoutFactor"=dword:8
    "DmaTransferTimeoutConstant"=dword:3000

ENDIF BSP_SDHC_SC2440
fengtao0797
驱动牛犊
驱动牛犊
  • 注册日期2005-10-21
  • 最后登录2011-04-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望39点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-05-12 17:47
其实这是文件系统的问题,唤醒后,要将sd卡里面的分区重新mount上去,这个时间大约是1秒钟,所以如果你有程序需要读写的话,必须在唤醒后延迟1秒钟再去,否则会出现上述情况。
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-05-13 09:16
首先,多谢指教,这个问题我也考虑到了

问题的关键是那个读写程序不是我做的,我只能从系统的角度去处理这个冲突,能否有先将文件系统mount上后,再进入其他程序处理线程的方法? 再请帮帮忙,给点意见啊
qinlei_sz
驱动小牛
驱动小牛
  • 注册日期2007-03-24
  • 最后登录2012-12-18
  • 粉丝0
  • 关注0
  • 积分1090分
  • 威望510点
  • 贡献值0点
  • 好评度145点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-05-13 11:40
你那个其它软件是导航地图引擎吧. ,好象大家都是在进入SUSPEND前将它关停,WAKEUP后再从新启动他.
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-05-13 14:26
恩,是kld的导航软件。。。。

重新启动不是要花很久时间啊,而且老是强行关掉它不会不会在多次挂起唤醒后系统崩溃(比如内存释放不完全造成等等)
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-05-14 08:45
能不能把唤醒后系统恢复的优先级调整,先完成挂载sd文件系统,再运行应用程序线程的修改方法。。。

斑竹给个回复,我好死了心。。改了好多地方,都不行
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
6楼#
发布于:2008-05-14 11:20
兄弟,我正为了2440 的SD驱动伤脑筋,
可以分享出来吗?
感恩
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-05-14 13:27
harktrip   你是什么问题?? 和我一样吗?
harktrip
驱动小牛
驱动小牛
  • 注册日期2003-11-30
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望457点
  • 贡献值0点
  • 好评度170点
  • 原创分0分
  • 专家分2分
8楼#
发布于:2008-05-14 15:42
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2008-05-15 11:09
问题不一样啊,我的是代码是pb5.0 —sdk包里的, 我没有改过,而且实际使用都是好的。。唯独唤醒后读卡着部分我想修改下,无从下手啊?
nico.xiao
驱动牛犊
驱动牛犊
  • 注册日期2008-05-15
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-05-15 17:37
我遇到的问题是, 操作SD卡(比如播放SD卡上的MP3)时如果睡眠, 唤醒之后会有问题, 难道重新MOUNT之后, 应用程序就找不到路径了?
roman
驱动牛犊
驱动牛犊
  • 注册日期2006-05-29
  • 最后登录2008-07-22
  • 粉丝1
  • 关注0
  • 积分291分
  • 威望31点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-05-16 10:15
用什么播放器很关键,如果用自带的media player 唤醒都有问题,那就是休眠没做好。。

我的系统播放mp3和mp4休眠唤醒都正常的,,,
游客

返回顶部