在试SD卡时,只能读不能写。排除本身SD卡锁的可能,卡锁的两个位置都试过了,而且SD卡在PC机上也试过读写正常。SD卡的格式是FAT. 我通PC机与开发板的ActiveSync连接,可以看到SD卡的文件,要删除一个文件时,显示“文件可能位于只读存储器或写保护磁盘中,也可能当前正被其它应用程序使用”. 在开发板直接操作,删除一个sd卡上的文件时,显示无法删除,错误代码19。
这种SD卡座,是那种可弹出式的,SD卡外壳接地良好。
请教各位高手,支招一下,会是哪方面的问题?
11 个解决方案
#1
可能是驱动力写保护了,把写保护去掉就行了~~~
#2
硬件我仔细查过了,没发现什么问题。
我马上去查一下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
谢谢各位,不过你的方法最直接,可以了。有碰到一样问题的朋友,可以这样解决。
#1
可能是驱动力写保护了,把写保护去掉就行了~~~
#2
硬件我仔细查过了,没发现什么问题。
我马上去查一下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
谢谢各位,不过你的方法最直接,可以了。有碰到一样问题的朋友,可以这样解决。