阅读:1568回复:5
有偿求Wince4.2+PXA255平台下SDMMC驱动程序
压缩包里是串口输出和截取的有关SDMMC的注册表。平台是Wince4.2和PXA255,问题是在平台里看不到sd目录,存储管理器里也看不到任何东西。我曾经请教过一个做PCMCIA驱动的老师,他说是分区驱动没加载上,以至于不能加载文件系统。板子是我们自己做的,BSP修改于wince4.2自带的xsc1bd,sd工作模式,一位线宽,时钟设置为0 (25MHz)或6(312.5KHz)都曾经试过。请求高手指点。
导师要求十一前做出来,所以我现在很着急,如果有人做过这种平台环境下的sdmmc驱动开发,代码好使,而且想出售的话,我想买一下。我的联系方式: yunfeng_zouyf@yahoo.com.cn |
|
|
沙发#
发布于:2007-09-22 11:09
我大概看了一下高度信息,驱动被调到了,
应该还是READ/WRITE有问题,或者打一下信息看看每调的每一个IOCTL是不是都返回了正确的值. 多说一句,做人要诚实,做学问要踏实,你这样糊弄导师,毕业还找工作吗?导师招学生只为了赚钱,而公司招人是为了干活,要求不一样,肚子里没货,怎样才能通过面试啊.听不听由你. 这句话也送给所有看到此贴的人,包括我自己,. |
|
|
板凳#
发布于:2007-09-22 12:47
首先感谢楼上版主的指点!关于read/writer的程序,我一直认为是微软依据SD协议写的,应该是通用的,就没想到修改这部分代码,如果要改动这部分代码,应该从哪方面考虑呢?
另附: 对于楼上版主的批评,我虚心接受。我也想自己弄出来,但估计需要一段时间,项目时间上恐怕不允许,而且导师不是做这方面的,不懂这块,现在是我一个人在这闭门造车,周围无人可问(我们是军校,学校在这方面资源很差。而且周围有几个都是做Liniux,而且都还没做过SD卡的)。买代码自己研究研究,看自己的问题出在哪也是导师授意的。 |
|
地板#
发布于:2007-09-22 18:26
不好意思啦,我还以为是现在那些懒汉呢,我多虑了:)
像你这种问题,买代码也不一定有用,如果你买来的代码是在和你完全相同的板上测过的就可以,否则,花钱买了东西可能根本不能运行. SD在CE中属于存储设备.首先得加上FAT文件系统,storage manger的支持.为了操作方便,也可以在控制面板中加上storage manger,但这不是必须的. 然后在注册表中加上存储设备用的ICLASS,这从其它的DSK设备的注册表下抄一个就行. 名字一定要叫DSK. 这样就能调到我们的驱动了. 一旦能调到驱动的READ/WRITE,流程上就没有问题了.目录不出来或者是存不住文件一般都是读写的时序有问题.读出来数不对或者不能把数据正确的写入. 这种情况下就得仔细调读写的函数.每一个命令发出去以后检查一下状态,状态对了再发下一个,不对就检查为什么不对. 调试信息等对时序影响都很大,一般来说不是系统操作的太快了就是太慢了. 我觉得你可以用RELEASE版调,因为DEBUG调好了RELEASE版不一定行,到时还得折腾很久. 你这个问题可以找做LINUX的哥们调一下,已经与操作系统没有关系了. SD卡我没有具体调过,所以细节上的东西帮不上你,还得靠你自己. profiles下的MountFlags最好去掉吧,我太确定那个东西有什么影响. |
|
|
地下室#
发布于:2007-09-28 12:48
终于做出来了,现在在平台里能看到SD、MMC卡了,也能往卡里读写了,但有个小问题就是,把卡插好后,加电启动平台,有时会卡在卡初始化结束的地方不动了。而不插卡加电启动平台,平台能顺利启动完成,再插卡,卡就能完成初始化,进入正常状态。
|
|
5楼#
发布于:2007-09-28 22:41
恭喜呀,蛮快的。呵呵
这个问题,很容易查的, 初始化结束后会去调用你的DISK_GET_INFO 还有DISK_IOCTL_READ的, 在这里打个断点就知道DOWN到那里了。 另外仔细比较两者的区别,也很容易比较出来的。 |
|
|