2440 wince5.0 SD卡可读不可写

时间:2022-06-18 01:33:04
2440开发板,wince5.0
在试SD卡时,只能读不能写。排除本身SD卡锁的可能,卡锁的两个位置都试过了,而且SD卡在PC机上也试过读写正常。SD卡的格式是FAT. 我通PC机与开发板的ActiveSync连接,可以看到SD卡的文件,要删除一个文件时,显示“文件可能位于只读存储器或写保护磁盘中,也可能当前正被其它应用程序使用”. 在开发板直接操作,删除一个sd卡上的文件时,显示无法删除,错误代码19。
这种SD卡座,是那种可弹出式的,SD卡外壳接地良好。
请教各位高手,支招一下,会是哪方面的问题?

11 个解决方案

#1


可能是驱动力写保护了,把写保护去掉就行了~~~

#2


引用 1 楼 hao507 的回复:
可能是驱动力写保护了,把写保护去掉就行了~~~

硬件我仔细查过了,没发现什么问题。
我马上去查一下SD卡的驱动,哪里可以写保护,你能再更进一步指点一下吗?

#3


手头上没有原来的BSP了,我记得好像是一开始平台初始化的地方吧,你找找

#4


在SD卡的驱动中有函数

BOOL CSDIOController::IsCardWriteProtected()
{
   。。。。。。。。。。。
   case ....
}

直接改为

BOOL CSDIOController::IsCardWriteProtected()
{
   return false;
}

就去掉写保护了

#5


是不是 Card Present 引脚出问题了?

#6


19 错误是 The media is write protected. 你可以叫一条调试语句看看 写保护IO的状态..如果没问题就要检查IsCardWriteProtected()函数的逻辑问题了.
 

#7


检查一下卡座的WP写保护脚,好像如果为高的话肯定就不能写了

#8


要不是卡锁就要看代码

#9


2440的代码就是只可读,不可写的。。。驱动里面不支持写的。。。

#10


写保护磁盘是支持的

#11


引用 4 楼 y2dg4lf 的回复:
在SD卡的驱动中有函数
C/C++ code
BOOL CSDIOController::IsCardWriteProtected()
{
   。。。。。。。。。。。case ....
}
直接改为
C/C++ code
BOOL CSDIOController::IsCardWriteProtected()
{returnfalse;
}
就去掉写保护了

谢谢各位,不过你的方法最直接,可以了。有碰到一样问题的朋友,可以这样解决。

#1


可能是驱动力写保护了,把写保护去掉就行了~~~

#2


引用 1 楼 hao507 的回复:
可能是驱动力写保护了,把写保护去掉就行了~~~

硬件我仔细查过了,没发现什么问题。
我马上去查一下SD卡的驱动,哪里可以写保护,你能再更进一步指点一下吗?

#3


手头上没有原来的BSP了,我记得好像是一开始平台初始化的地方吧,你找找

#4


在SD卡的驱动中有函数

BOOL CSDIOController::IsCardWriteProtected()
{
   。。。。。。。。。。。
   case ....
}

直接改为

BOOL CSDIOController::IsCardWriteProtected()
{
   return false;
}

就去掉写保护了

#5


是不是 Card Present 引脚出问题了?

#6


19 错误是 The media is write protected. 你可以叫一条调试语句看看 写保护IO的状态..如果没问题就要检查IsCardWriteProtected()函数的逻辑问题了.
 

#7


检查一下卡座的WP写保护脚,好像如果为高的话肯定就不能写了

#8


要不是卡锁就要看代码

#9


2440的代码就是只可读,不可写的。。。驱动里面不支持写的。。。

#10


写保护磁盘是支持的

#11


引用 4 楼 y2dg4lf 的回复:
在SD卡的驱动中有函数
C/C++ code
BOOL CSDIOController::IsCardWriteProtected()
{
   。。。。。。。。。。。case ....
}
直接改为
C/C++ code
BOOL CSDIOController::IsCardWriteProtected()
{returnfalse;
}
就去掉写保护了

谢谢各位,不过你的方法最直接,可以了。有碰到一样问题的朋友,可以这样解决。