YL2440开发板SD卡无法识别

wdw1600 2008-12-29 10:55:24
优龙2440开发板不能识别SD卡,网上查了好多人的帖子还是没弄好
现在做了:(1)把3个与SD卡有关的DLL拷贝到BSP专门放设备dll的文件夹中,创建了CEC文件并加载到了BSP中,把platform.bib中的注释掉的3个dll取消注释。但是还是无法识别,请做过的大侠指点下,是我还有地方没有加上配置还是有些修改没有做。
...全文
580 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
airyrain 2010-10-16
  • 打赏
  • 举报
回复
要做2个卡的开关切换,切换后识别不到,如何处理
gooogleman 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wdw1600 的回复:]
老问题解决:原来是硬件检测程序把SD卡文件系统写坏了。格式化一下SD卡就OK。谢谢各位的帮助
不过中断这个问题老师希望从软件上去修改而不是硬件,这个问题还有点困难,老师的意思是上电检测是否有SD卡,直接读SD卡控制寄存器不采用中断,以后就不管了(东西是手持式不需要热插拔),可惜优龙的BSP只给了DLL没有源码,大侠们能给小弟点经验之得建议吗?
[/Quote]
连错中断还好办,连中断都没有连接,那么只有一个词:重新做板子。
结贴吧,没有药医了。啊们,出来了总比不出来好。即使有源代码,也是需要中断的。
wdw1600 2009-01-04
  • 打赏
  • 举报
回复
老问题解决:原来是硬件检测程序把SD卡文件系统写坏了。格式化一下SD卡就OK。谢谢各位的帮助
不过中断这个问题老师希望从软件上去修改而不是硬件,这个问题还有点困难,老师的意思是上电检测是否有SD卡,直接读SD卡控制寄存器不采用中断,以后就不管了(东西是手持式不需要热插拔),可惜优龙的BSP只给了DLL没有源码,大侠们能给小弟点经验之得建议吗?
wdw1600 2009-01-04
  • 打赏
  • 举报
回复
09年工作第一天继续求教~_~,首先祝大家新年快乐,牛年牛气冲天!
继续上面的问题,查电路图发现第16号中断GPG8接到键盘上了,运行WINCE的时候按下键打印如下信息:(发现SDCARD)
charlie::Prescale for Real clock rate = 156, pRate:100000
Card inserted
SDCSDSlotOptionHandler:0x1
BUS Width 1Bit
charlie::Prescale for Real clock rate = 156, pRate:100000
CMD:5,0x0
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x05
CMD:5,0x0
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x05
CMD:5,0x0
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x05
CMD:5,0x0
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x05
CMD:0,0x0
CMD:1,0x300000
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x01
CMD:1,0x300000
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x01
CMD:1,0x300000
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x01
CMD:1,0x300000
SD_API_STATUS_CMD_RESPONSE_TIMEOUT
BusRequestHandler Error - command:0x01
CMD:55,0x0
Card status error:0x400120,CMD:55
CMD:41,0x0
SDCSDSlotOptionHandler:0x0
SDCSDSlotOptionHandler - called - SetSlotPower : 0x00100000
CMD:0,0x0
CMD:55,0x0
CMD:41,0x100000
CMD:55,0x0
CMD:41,0x100000
CMD:2,0x0
CMD:3,0x0
CMD:9,0x655e0000
CMD:13,0x655e0000
CMD:7,0x655e0000
CMD:55,0x655e0000
CMD:51,0x0
CMD:55,0x655e0000
CMD:42,0x0
SDCSDSlotOptionHandler:0x5
SDCSDSlotOptionHandler - called - SDHCDGetWriteProtectStatus : on slot 0
CMD:55,0x655e0000
CMD:6,0x2
SDCSDSlotOptionHandler:0x1
BUS Width 4Bit
charlie::Prescale for Real clock rate = 4, pRate:25000000
CMD:16,0x200
CMD:17,0x0
CMD:17,0x0
就打印这些信息了,但是WINCE界面上就是找不到SD卡的文件夹,不知道究竟是什么原因,有大侠曾经遇到过这种情况吗?
wdw1600 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 gooogleman 的回复:]
引用 20 楼 wdw1600 的回复:
老问题解决:原来是硬件检测程序把SD卡文件系统写坏了。格式化一下SD卡就OK。谢谢各位的帮助
不过中断这个问题老师希望从软件上去修改而不是硬件,这个问题还有点困难,老师的意思是上电检测是否有SD卡,直接读SD卡控制寄存器不采用中断,以后就不管了(东西是手持式不需要热插拔),可惜优龙的BSP只给了DLL没有源码,大侠们能给小弟点经验之得建议吗?

连错中断还好办,连中断都没有连接,那…
[/Quote]

就是没有接中断啊,那个SD卡座子就是MACRO SD类型的没有引脚可以接到中断,如果改硬件得话把GPG8直接接地,键盘再找个IO口就是了,但是老师不太愿意改硬件,牵一发而动全身就麻烦了。


软件实现也未必不能实现;中断管理应该是不在SD卡驱动里,该是BSP中专门有个中断管理文件,产生硬件中断后判断调用设备驱动,我还在找这个控制中断的地方,找到后不用判断给它个TRUE不就行了,不知道我这个思路是不是对的。
gooogleman 2008-12-31
  • 打赏
  • 举报
回复
那只能good luck了

——————————
卡插入不检测,哎,电路没有连接,那么这个电路是没有用的了。
不过在这么短的时间内大家指出问题,所在。你也算幸运了。O(∩_∩)O哈哈~
wdw1600 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 gooogleman 的回复:]
不接中断怎么可能发现卡啊?

——————————————
这个代码就是这么写的。我觉得你的电路图画错了。
我的卡和你一模一样,11个引脚,我的就是这么接的。这些卡我都仔细对比过,有些引脚根本没有什么用的。多几个吓唬人。
估计你有时间研究了,因为你们不得不重新做电路板。
[/Quote]
老师飞了一根线,接到了INT16上,能发现SD卡,但是没有显示SD卡的盘符。其实不接中断也可以发现,不过不支持热插拔,系统启动的时候CPU检测寄存器就可以发现。要支持热插拔就轮询,不过那样太耗资源。
gooogleman 2008-12-30
  • 打赏
  • 举报
回复
不接中断怎么可能发现卡啊?

——————————————
这个代码就是这么写的。我觉得你的电路图画错了。
我的卡和你一模一样,11个引脚,我的就是这么接的。这些卡我都仔细对比过,有些引脚根本没有什么用的。多几个吓唬人。
估计你有时间研究了,因为你们不得不重新做电路板。
wdw1600 2008-12-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 gooogleman 的回复:]
引用 13 楼 wdw1600 的回复:
今天拿了几种开发板发现我们那个是mcrosd 接口,只有8个针,而minisd有11个针。


多了几个引脚还不是一个样!!!
[/Quote]
不一样吧,我看了老师的电路图,SD卡根本就没有接中断,就接了GPE(5-10)那几个脚,比其他开发板的少WP和NCD_SD两个引脚,TE2400,QQ2440,YC2400的都是差不多一样电路图,TE和QQ是接的INT16 YC的接的是INT18,我们的没接。应该就是这个原因吧
gooogleman 2008-12-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wdw1600 的回复:]
今天拿了几种开发板发现我们那个是mcrosd 接口,只有8个针,而minisd有11个针。
[/Quote]

多了几个引脚还不是一个样!!!
wdw1600 2008-12-30
  • 打赏
  • 举报
回复
今天拿了几种开发板发现我们那个是mcrosd 接口,只有8个针,而minisd有11个针。
hzdysymbol 2008-12-29
  • 打赏
  • 举报
回复
别的SD卡能识别吗?
除了那3个DLL还需要添加自己的SD卡驱动的代码,定制如用哪个GPIO做Detect检测,Power给了没有等一些跟平台相关的初始化设置
gooogleman 2008-12-29
  • 打赏
  • 举报
回复
是你做的电路板?
检测中断是什么?一定要EINT16才行。否则不能识别。
wdw1600 2008-12-29
  • 打赏
  • 举报
回复
哦,补充一点:SD卡是kingston 2G的卡1.1代的,2440是支持的
wdw1600 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yashi 的回复:]
引用 9 楼 wdw1600 的回复:
gooogleman大侠:INT16只是一个普通的I/O也没有涉及复用,为什么非得是它呢,用一个其他的,比如说INT22只要不冲突不是一样吗?难道有什么玄机?
就是呢,就3个dll没有源码,我在优龙论坛上有人说了加了3个dll就可以,但是貌似不行。。。没源码真是郁闷。


因为驱动里用的是EINT16呀,如果代码可以修改,你可以任意选一个,问题是代码不能改,所以你只有选16
[/Quote]
驱动里用的是16?怎么知道得,没有驱动源码啊。
还有就是控制SD卡得是GPE(5-10)6个引脚占完了啊,而INT16是GPG8,那SD卡得哪个脚接到GPG8呢,
yashi 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wdw1600 的回复:]
gooogleman大侠:INT16只是一个普通的I/O也没有涉及复用,为什么非得是它呢,用一个其他的,比如说INT22只要不冲突不是一样吗?难道有什么玄机?
就是呢,就3个dll没有源码,我在优龙论坛上有人说了加了3个dll就可以,但是貌似不行。。。没源码真是郁闷。
[/Quote]

因为驱动里用的是EINT16呀,如果代码可以修改,你可以任意选一个,问题是代码不能改,所以你只有选16
gooogleman 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wdw1600 的回复:]
gooogleman大侠:INT16只是一个普通的I/O也没有涉及复用,为什么非得是它呢,用一个其他的,比如说INT22只要不冲突不是一样吗?难道有什么玄机?
就是呢,就3个dll没有源码,我在优龙论坛上有人说了加了3个dll就可以,但是貌似不行。。。没源码真是郁闷。
[/Quote]

EINT16是固定的检测中断,你中断都不对应,怎么能启动线程,发现卡呢?
——————————————————————————————————————
我可以明白的告诉你,我的就是画错电路图,结果................
wdw1600 2008-12-29
  • 打赏
  • 举报
回复
gooogleman大侠:INT16只是一个普通的I/O也没有涉及复用,为什么非得是它呢,用一个其他的,比如说INT22只要不冲突不是一样吗?难道有什么玄机?
就是呢,就3个dll没有源码,我在优龙论坛上有人说了加了3个dll就可以,但是貌似不行。。。没源码真是郁闷。
gooogleman 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wdw1600 的回复:]
注册表没改,刚刚用非操作系统检测程序检测了,能识别并进行读写SD卡,硬件电路没有问题,但是我发现个问题,我SD驱动里要打印的信息没有打印出来,我把SD卡取了也没有打印没有SD卡的警告。继续学习哎,现在是白纸一张。
找了个512的,也不行。。。
[/Quote]

极有可能中断接到EINT18了,哈哈
其实是EINT16的

三星的是三个DLL,没有源码,郁闷吧。
wdw1600 2008-12-29
  • 打赏
  • 举报
回复
注册表没改,刚刚用非操作系统检测程序检测了,能识别并进行读写SD卡,硬件电路没有问题,但是我发现个问题,我SD驱动里要打印的信息没有打印出来,我把SD卡取了也没有打印没有SD卡的警告。继续学习哎,现在是白纸一张。
找了个512的,也不行。。。
加载更多回复(3)

19,502

社区成员

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

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