这是我第一次在CSDN上写点东西,接触到CSDN已经有一段时间了,是它给了我很多帮助,是这里面的N多牛人的文章帮我解决了很多问题,在这里先说声谢谢了!对于我个人来说,我觉得我自己的惰性是比较重的,一直想写点东西,记录一下自己的学习过程中的一些问题,可是迟迟没有动手。今天我才发现记录一下之前经验的重要性。于是乎,有了下面的点滴记录。虽然是一些简单的东西,也算是我的一个学习过程吧,望牛人专家们,有什么错误给予指正。O(∩_∩)O哈

进入正题:

硬件平台:magic2410试验箱

软件环境:wince5.0

前段时间接触SDHC卡,想拿到这上面来试试,结果发现不识别,在网上查资料发现原因是:它们所用的协议是不同的,具体可以看看这篇博客:http://www.cnblogs.com/songtitan/archive/2007/02/11/647293.aspx。为了我的平台支持SDHC卡的读写,在网上索罗了很多解决办法,主要参考了一下下面一篇文章:http://www.hzlitai.com.cn/article/ARM9-article/system/1718.html。

我的做法是:1、更新wince.打07,08年的补丁(主要是07年的,里面更新了对于SDHC卡的支持协议)。

2、在PB环境中设置环境变量,platform->setting->environment ,添加IMGSDBUS2 = 1 。

3、设置环境变量完成后,可以通过build os目录下的open release directory中输入set命令查看有没有IMGSDBUS2 = 1该项,有则表示设置成功。

4、修改底层一些程序(很少)。对于SDHC卡的驱动程序在/PUBLIC/COMMON/OAK/CSP/ARM/SAMSUNG/S3C2410X/SDHC目录下。打开SDHCbase文件下的sdiocontrollerbase.cpp文件修改其中两个函数。(1)、在SendCommand(UINT16 Cmd, UINT32 Arg, UINT16 respType, BOOL bDataTransfer)中的 case ResponseR6:  下面添加 case ResponseR7。添加后如下:

case ResponseR1:                // Short response required
    case ResponseR1b:
    case ResponseR3:
    case ResponseR4:
    case ResponseR5:               
    case ResponseR6: 
    case ResponseR7:

(2)、在SD_API_STATUS CSDIOControllerBase::GetCommandResponse(PSD_BUS_REQUEST pRequest)函数里的下面的红色部分:

case ResponseR1:               
        case ResponseR1b:
        case ResponseR7:

5、重新sysgen,到此结束。正常情况下,就可以识别了。理论是可以识别小于32G的,我没试过,只试过8G的。

但是事情往往就没那么简单,我的就按照上面的步骤来的可是不行,出现的问题有:

1、在设置IMGSDBUS2 = 1时多了一个空格,导致没有设置成功,查了我很久,都没照出来,可见小小的空格作用真大啊!这个可以在编译后的CE.BIB文件中查看,若文件中使用到了SDBUS2.DLL的话就成功了,若还是sdbus.dll的话说明没成功。

2、解决完第一个问题,重新试验,还是不能识别,而且出现当试过4Gsdhc卡后连2g的SD卡都不能识别了。之后才发现我的平台的BSP包中也有sd卡的驱动SDMMCloader文件,注册表里也有相应的设置。所以我就在注册表里去掉对SDMMCloder.dll的加载,将DRIVER文件夹下的SDMMCloder文件从dir文件中去除。这次我重新build and sysgen了,不知道和sysgen有没有影响。终于可以了识别SDHC了。

3、识别后当我在storage card中新建文件或删除文件时,弹出错误,说不能新建文件。网上查找发现原来是SDHC驱动中有写保护这项,导致不能对其读写。于是在C:/WINCE500/PUBLIC/COMMON/OAK/CSP/ARM/SAMSUNG/S3C2410X/SDHC/SDHC这个目下的sdiocontroller.cpp文件中找到一个BOOL CSDIOController::IsCardWriteProtected()函数,将其中的内容屏蔽掉,再return false

BOOL CSDIOController::IsCardWriteProtected()
{
   // switch( m_chCardReadWriteGPIO )
   // {
   // case 'A':
   //     return ( ( vm_pIOPreg->GPADAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
   /// case 'B':
    //    return ( ( vm_pIOPreg->GPBDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
   // case 'C':
  //      return ( ( vm_pIOPreg->GPCDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   case 'D':
 //       return ( ( vm_pIOPreg->GPDDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   case 'E':
 //       return ( ( vm_pIOPreg->GPEDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   case 'F':
 //       return ( ( vm_pIOPreg->GPFDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   case 'G':
 //       return ( ( vm_pIOPreg->GPGDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   case 'H':
 //       return ( ( vm_pIOPreg->GPHDAT & m_dwCardReadWriteMask ) == m_dwCardReadWriteFlag ) ? TRUE  : FALSE;
 //   default:
   //     ASSERT(0); // invalid GPIO!  We should never get here
        return false;
    //}
}

.重新sysgen,下载,可以新建文件 删除文件了。

magic2410支持大容量sdhc卡解决办法相关推荐

  1. WINCE5.0+S3C2440支持大容量SD卡(SDHC卡)

    ********************************LoongEmbedded************************ 作者:LoongEmbedded(kandi) 时间:201 ...

  2. xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)

    xcode 4.2 不再支持 Window-Based Application 的解决办法:      1.创建空项目 Empty Application.(在Xcode4.2下创建的这个空项目不再有 ...

  3. [已经验证通过]xp sp2 不支持WPA协议的解决办法

    XP SP2 不支持WPA协议的解决办法 接用户反馈,使用笔记本不能连接无线网络, 据用户反映说他在其它地方能正常连接无线,其它同事也能正常连接无线网络,相当于只有他一台电脑不能连接无线网络. 根据用 ...

  4. 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)

    错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构

  5. 手机吃鸡语音服务器异常是怎么回事,绝地求生语音卡怎么办_绝地求生新版本语音卡解决办法介绍_游戏吧...

    绝地求生第21轮更新后,出现了很多问题最常见的就是游戏语音出错以及无法返回大厅.今天游戏吧小编就为大家带来绝地求生新版本语音卡解决办法介绍.希望对大家有所帮助. 在21轮更新后,有小伙伴反应语音时常出 ...

  6. 关于xlrd最新版本不支持.xlsx文件的解决办法

    文章目录 关于xlrd最新版本不支持.xlsx文件的解决办法 解决方案,回退到xlrd1.2.0版本 这是很久之前我就遇到的一个问题,这次又遇到了,发现之前没有写笔记,这次记录一下. 关于xlrd最新 ...

  7. iphone safari不支持position fixed的解决办法

    最近一直在做移动web开发,开发过程中遇到了许多问题,mobile safari不支持position: fixed就是一件很头疼的事情.需求是这样的,许多pc web页面的导航都是固定的,比如goo ...

  8. 小米手机开发者选项打开usb安装需要SIM卡解决办法

    前言 最近在做一些安卓的开发,想用之前用过的小米8做测试 但是打开usb调试的usb安装之后却显示需要插入SIM卡 搜索了一下原因,可能是防止黄牛买来装一大堆第三方APP上去然后打包二次销售,影响消费 ...

  9. word在使用Endnote时变得非常卡解决办法

    最近在撰写论文时用endnote插参考文献,结果每插进去一篇,word都会卡顿半天,严重影响写作效率和心情,后来找到几种解决办法,供大家参考. 1.word的工具栏中,找到Bibliography选项 ...

  10. Lenovo T420 声音卡解决办法汇总

    1.是n记显卡的电源管理作怪,将自动管理改为全功率运行就可以了,自己网上搜吧,有人用检测软件测试过,各个驱动对声音的卡的程度,最后找到的原因,可能是i3,i5等新的能源管理造成的,最后,我把conex ...

最新文章

  1. cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
  2. 深入浅出:对MySQL主从配置的一些总结
  3. maven项目转成web项目
  4. buildin 字节交换
  5. P1407-[国家集训队]稳定婚姻【tarjan,强连通分量】
  6. java web junit_如何使用junit测试javaweb工程
  7. 第一条Pulsar消息发送
  8. 【Flink】Flink 基于 MailBox 实现的 StreamTask 线程模型
  9. 在线JSON校验格式化工具,文本对比工具,截图notepad工具
  10. Windows-QT安装后,又要安装mingw32/64怎么办?
  11. 南京年薪10万以上软件人才买房买车可获退税
  12. 四阶龙格-库塔法求解常微分方程的初值问题
  13. [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍
  14. HNUST OJ 2205 队伍能力值
  15. Java项目:SSM在线二手图书交易商城网站平台
  16. 小程序 html编辑器,小程序富文本编辑器editor初体验
  17. VC6.0中单文档程序窗口最大化运行的方法
  18. 2022-2028全球与中国电子门禁系统市场现状及未来发展趋势
  19. Downloaded bytes did not match Content-Length解决方案:本地安装
  20. VueJS 中更好的组件组合方式

热门文章

  1. postman请求404
  2. spring事务传播级别
  3. 高密集型工业体系步履蹒跚
  4. 如何在微信中直接下载APK
  5. 微信安卓客户端逆向分析
  6. 澳洲留学生面经,Java后端,阿里、头条、百度、华为、微策略
  7. 手机显示服务器被重置连接断开,手机服务器链接被重置
  8. 【应用统计学】随机变量的概率分布,数学期望和方差及协方差
  9. 编码器解码器网络:神经翻译模型详解
  10. 美创解读|《数据安全法》实施,企业数据安全合规技术能力建设