首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

SD驱动开发有关问题:客户端驱动加载成功,但盘符显示不出来

2012-03-04 
SD驱动开发问题:客户端驱动加载成功,但盘符显示不出来SD驱动开发问题:客户端驱动加载成功,但盘符显示不出

SD驱动开发问题:客户端驱动加载成功,但盘符显示不出来
SD驱动开发问题:客户端驱动加载成功,但盘符显示不出来???

有哪位牛人做过SD驱动吗?帮忙分析一下,谢谢!
详细现象:
  1、 硬件平台是自己实验室研发的,OS为WINCE600;
  2、 总线驱动、主控制驱动都能成功加载
  ——SD命令发送也成功:
  CMD5-CMD0-CMD55+ACMD41-CMD0-CMD55+ACMD41-CMD2-CMD3-CMD9-CMD13-CMD7-CMD55+ACMD51-CMD55+ACMD42-CMD55+ACMD6。
  3、客户端驱动加载成功,并且,我感觉系统也识别到了SD卡,由如下两点可知:
  1>~_~_~_SDMemory: Idle Timeout Wakeup after 2000 MS //此行信息是idlethread线程中的信息,
  2>在内存管理器中,能看到有SD的内存空间,当然,此处也有一个问题,我的SD卡是1G的,而内存管理器中显示是512M的??
  4、分区驱动(partition Driver)组件也加了;;;;

希望有牛人帮忙指点,谢谢!!

[解决办法]
注册表设置呢?
[解决办法]
有没有相关的trace?打印出来看看
你在换换512M或者4G的sd卡分别试一下,把
trace贴出来
[解决办法]
还有其他的debug信息么?
1. 看起来你打印的信息挺多的,能不能把后面的信息也给打印出来?
2. 你的sd卡能够在pc上识别么?
[解决办法]
LZ你抓到的这段信息是什么东西?是MBR?
eb 58 90 4d 53 44 4f 53 35 2e 30 0 2 8 24 0 2 0 0 0 0 f8 0 0 3f 0 ff 0 0 0 0 0 0 46 1e 0 8e 7 0 0 0 0 0 0 2 0 0 0 1 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52 f0 63 43 70 9c 9e 40 9c 82 9a 8a 40 40 40 40 8c 82 a8 66 64 40 40 40 67 93 1d a3 79 e8 f7 1d 83 1d b3 7a 0 f9 10 9c 5 14 ac 81 68 11 9a 26 e6 b 73 ff ff 15 e2 cc 1f 6d 8c 80 cc 1f 6d a3 1 c4 7f ef c5 d 9b 81 da c 82 cc 1f 6f 92 cd ef c2 cd 12 8d f1 6 fc 2c 0 ea 71 6 fc 54 0 ee 64 cd 16 8c 38 cd 7 80 19 76 1 1 72 2 1 d0 56 1 d2 90 7 41 f4 fb 68 fb 17 e1 59 9 80 e8 2e 79 fe e8 13 68 1d 76 e 1 9a 21 d7 dd 41 f6 fb d7 cb 41 f2 fb d7 c1 31 9a 2d 9a 32 cc c0 cc 76 8d f0 1f 4 94 0 cc d4 0 cc a0 c a6 cc d0 20 0 2 1 0 fc 4 0 1f a 40 1 68 83 77 54 ab 14 ac 81 9a 26 1f 4 38 1 3 f6 ab 54 1f a 28 1 ed 82 2 1f 8 1a 1 fc 8c 5 68 85 14 ac 81 17 e9 9a 27 61 f2 cc b0 cc b0 cc b0 cc b1 d6 54 cc 67 a4 cc 1f 6e 9c 30 cd ef e3 fd 85 15 94 cd 17 a0 cd 83 d4 21 ee ec 35 d ad 14 ac 81 15 d1 81 c8 c 15 99 70 2 5 9a 26 cc c2 1f 4 a9 ff 3 86 0 4 cc 80 92 1f a e3 ff 86 9c a8 98 88 a4 40 40 40 40 40 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1a 14 a4 ca da de ec ca 40 c8 d2 e6 d6 e6 40 de e4 40 de e8 d0 ca e4 40 da ca c8 d2 c2 5d fe 1a 14 88 d2 e6 d6 40 ca e4 e4 de e5 fe 1a 14 a0 e4 ca e6 e6 40 c2 dc f2 40 d6 ca f2 40 e8 de 40 e4 ca e6 e8 c2 e4 e8 1a 14 0 0 0 0 1 59 97 b0 0 0 ab 55 

[解决办法]

探讨
传输有问题并不一定是控制器有问题,也有可能你的连线不合适。硬件部分我不是很了解,没有建议。
只有512M我估计是在获取TotalSectorNumber的时候出错。但是不是很确定。
你可以在SDmemory部分把DISK_INFO的di_total_sectors成员打出来看看是多少,乘上512就是容量大小了。

[解决办法]
我目前没有遇到过文件系统或是分区驱动有问题的情况,这两部分本身应该都没有问题。
问题在于你传递给文件系统或是分区驱动的数据出现了问题,才会导致在这部分出错。
你现在就是要把对的内容传给它们。
[解决办法]
探讨
我目前没有遇到过文件系统或是分区驱动有问题的情况,这两部分本身应该都没有问题。
问题在于你传递给文件系统或是分区驱动的数据出现了问题,才会导致在这部分出错。
你现在就是要把对的内容传给它们。

[解决办法]
mark。学习下。
[解决办法]
今天的贴子不错,顶!
加精!呵~~~
[解决办法]
探讨
引用:
引用:
刚才试过,系统稳定时,频率降到了1.37MHZ,

情况还是一样,打印出来的信息也一样...


那看起来应该就是硬件设计有问题或者寄存器的配置不恰当了,gsymichael认为呢?
另外,前面提到“不过据IC验证组反馈的意见:SD控制器是没问题的,一切正常。。。 ”,那么他们是如何验证是否正常的呢?频率和电路与你的有无差别?

寄存器的配置:
带卡启动时,CARD_DETECT所对应的GPIO口的配置应该没有多大关联吧,


----我是将CARD_DETECT对应的GPI6配置通用输入模式,因为是用扫描模式,而非中断模式。
//将GPI6配成通用用途
vm_pIOPreg->PORTI_GPIOSEL=
( vm_pIOPreg->PORTI_GPIOSEL & m_dwCardDetectControlMask ) | m_dwCardDetectControlFlag;
//配置通用方向为输入
vm_pIOPreg->PORTI_GPIODIR=
( vm_pIOPreg->PORTI_GPIODIR & m_dwCardDetectControlMask ) | m_dwCardDetectControlFlag;
如上参数在platform.reg设置好的,如下:
    "CardDetectGPIO"="I"      ; card detect onGPI6 
    "CardDetectMask"=dword:1  ;SD_CDETECT[0] card detect   
    "CardDetectFlag"=dword:0
    "CardDetectControlMask"=dword:40  ;PORTI_GPIOSEL[6] card detect
    "CardDetectControlFlag"=dword:40    ;PORTI_GPIOSEL[6] card detect
有个寄存器(SD_CDETECT)专门处理CARD_DETECT,该寄存器的第0位标示是否有卡,
所以,在卡是否存在的检测过程中,我认为直接查询GPI6接的电平或查询SD_CDETECT[0],应该效果是一致的吧----寄存器的配置的影响应该是不存在的。。。


[解决办法]
winhex,Tools->open disk...,有个磁盘列表,在physical media里选择相应的磁盘打开
[解决办法]
好帖子

fpga那个芯片正常工作的时候量过么?对比一下时钟频率和信号质量,这个问题更像是软硬件结合问题偏硬,随时留意,很好的问题
[解决办法]
1,SD 格式化 FAT 16和FAT 32,用winHEX学习MBR和DBR
格式化后, 你的SD的数据没有问题

2,建议对照成功的开发板BSP包,甚至升级wince6.0 或者重装 wince 6.0

3,硬件测试开发板电路的时钟频率
 

[解决办法]
格式化后的SD卡,用physical打开,start sectors就看到MBR。用logical打开,boot sector是DBR。未分区的是啥格式,那个RAW吗?没留意过
[解决办法]
学习, 帮顶..
[解决办法]
帮顶
[解决办法]
学习, 帮顶..
[解决办法]
学习了,好长啊
[解决办法]
up
[解决办法]
学习ing。

严重顶一下!
[解决办法]
我参考的主要是S3C2440A的代码
[解决办法]
学习了,好长啊
[解决办法]
汗 原来驱动开发这么复杂 
另外楼主记得结贴咯
[解决办法]
路过......

[解决办法]
不错不错,楼住辛苦了,谢谢啊!
[解决办法]
都不错我就不打扰了
[解决办法]
学习了
[解决办法]
应该是没有创建盘符名称链接吧。
[解决办法]
职业帮顶

热点排行