2440支持大容量SD卡的解决办法
来源:互联网 发布:剪铃声软件 编辑:程序博客网 时间:2024/06/08 18:53
2440支持大容量SD卡的解决办法
// 作者:wogoyixikexie@gliet
// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet
// 平台:wince5.0 2440 5.0 BSP
// 发布日期:2009年5月6日 10:45:54
// 最后修改:
// 注意事项:未经作者同意,不得在转载的时候擅自修改、删除文章的任何部分
//-----------------------------------------------------------------------------------------------------------
上周搞定了摄像头,昨天开始搞SD卡,刚开始挺郁闷,大容量不支持就算了,居然小容量的SD卡能够发现盘符,但是却不能删除和新建文件,后来经过修改,把写保护检测去掉了就可以正常读写了。Google了一下,然后在在群里问了一下,在CSDN搜索了一下,很幸运,很快搞定了大容量的SD卡支持问题。
现在借花献佛,写个详细的做法,希望后人收益。
操作方法:
1. 更新PB. 更新补丁放在//10.1.10.250/software/WinCE50 Update/WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi
2. 在platform->setting->environment 中设置IMGSDBUS2 = 1
之所以要设置这个环境变量是因为sdbus2.dll 才支持大容量的SD的。
在common.bib中
#if defined IMGSDBUS2
; @CESYSGEN IF CE_MODULES_SDBUS2
sdbus.dll $(_FLATRELEASEDIR)/sdbus2.dll NK SH
; @CESYSGEN ENDIF CE_MODULES_SDBUS2
#else
; @CESYSGEN IF CE_MODULES_SDBUS
sdbus.dll $(_FLATRELEASEDIR)/sdbus.dll NK SH
; @CESYSGEN ENDIF CE_MODULES_SDBUS
#endif
3. 修改BSP下的代码
(1)SendCommand(UINT16 Cmd, UINT32 Arg, UINT16 respType, BOOL bDataTransfer)函数里在case ResponseR6:下面加case ResponseR7:
case ResponseR1:
case ResponseR1b:
case ResponseR7: // add by wogo at 2009.05.06添加的地方
//--- SHORT RESPONSE (48 bits total)---
// Format: { START_BIT(1) | TRANSMISSION_BIT(1) | COMMAND_INDEX(6) | CARD_STATUS(32) | CRC7(7) | END_BIT(1) }
// NOTE: START_BIT and TRANSMISSION_BIT = 0, END_BIT = 1
//
*(respBuff ) = (BYTE)(START_BIT | TRANSMISSION_BIT | pRequest->CommandCode);
*(respBuff + 1) = (BYTE)(vm_pSDIReg->SDIRSP0 );
*(respBuff + 2) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 8 );
*(respBuff + 3) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 16);
*(respBuff + 4) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 24);
*(respBuff + 5) = (BYTE)(END_RESERVED | END_BIT);
break;
(2)函数GetCommandResponse(PSD_BUS_REQUEST pRequest)中加在case ResponseR1b:下面
case ResponseR1:
case ResponseR1b:
case ResponseR7: //------------------------添加的地方
//--- SHORT RESPONSE (48 bits total)---
// Format: { START_BIT(1) | TRANSMISSION_BIT(1) | COMMAND_INDEX(6) | CARD_STATUS(32) | CRC7(7) | END_BIT(1) }
// NOTE: START_BIT and TRANSMISSION_BIT = 0, END_BIT = 1
//
*(respBuff ) = (BYTE)(START_BIT | TRANSMISSION_BIT | pRequest->CommandCode);
*(respBuff + 1) = (BYTE)(vm_pSDIReg->SDIRSP0 );
*(respBuff + 2) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 8 );
*(respBuff + 3) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 16);
*(respBuff + 4) = (BYTE)(vm_pSDIReg->SDIRSP0 >> 24);
*(respBuff + 5) = (BYTE)(END_RESERVED | END_BIT);
break;
主要是要添加对cmd7的支持。
然后重新sysgen个工程即可。
==================================完毕!=================================
原文地址:http://blog.csdn.net/gooogleman/article/details/4154020
注:做完以上步骤后,最后一步编译工程我的做法与上面不同。我遇到的情况是这样的,如果我sysgen工程并不识别大容量SD卡,更改无效。如果我选择Build and sysgen current BSP确可以实现预期效果。
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法(转)
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法
- 2440支持大容量SD卡的解决办法
- WinCE支持大容量(4G及以上)SD卡的解决办法
- magic2410支持大容量sdhc卡解决办法
- 别人支持大容量SD的办法——收集
- 别人支持大容量SD的办法——收集
- WINCE5.0+S3C2440支持大容量SD卡(SDHC卡)
- SD卡支持大容量办法(转)
- 如何使PB编译出的NK支持大容量的SD卡?
- 空格带来的郁闷---让Pxa270支持大容量SD卡
- 2410下wince 5.0 大容量SD卡的驱动
- 获取SD卡的容量
- 函 数
- Python备份之Win7源码
- 镍氢电池怎么修复充电
- Word2003及Excel2003打开速度慢,如何解决?
- java强引用(StrongReference),软引用(SoftReference),弱引用(WeakReference),PhantomRefrence(虚引用)的区别
- 2440支持大容量SD卡的解决办法
- C++习题 虚函数-计算图形面积
- 怎样练习一万小时
- Linux 下加载 HI3516 过程
- Struts2中的 配置文件
- python 3.x 与 2.x的区别
- [LeetCode] Gray Code
- spring 配置bean
- linux修改权限