magic2410支持大容量sdhc卡解决办法
这是我第一次在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卡解决办法相关推荐
- WINCE5.0+S3C2440支持大容量SD卡(SDHC卡)
********************************LoongEmbedded************************ 作者:LoongEmbedded(kandi) 时间:201 ...
- xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)
xcode 4.2 不再支持 Window-Based Application 的解决办法: 1.创建空项目 Empty Application.(在Xcode4.2下创建的这个空项目不再有 ...
- [已经验证通过]xp sp2 不支持WPA协议的解决办法
XP SP2 不支持WPA协议的解决办法 接用户反馈,使用笔记本不能连接无线网络, 据用户反映说他在其它地方能正常连接无线,其它同事也能正常连接无线网络,相当于只有他一台电脑不能连接无线网络. 根据用 ...
- 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)
错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构
- 手机吃鸡语音服务器异常是怎么回事,绝地求生语音卡怎么办_绝地求生新版本语音卡解决办法介绍_游戏吧...
绝地求生第21轮更新后,出现了很多问题最常见的就是游戏语音出错以及无法返回大厅.今天游戏吧小编就为大家带来绝地求生新版本语音卡解决办法介绍.希望对大家有所帮助. 在21轮更新后,有小伙伴反应语音时常出 ...
- 关于xlrd最新版本不支持.xlsx文件的解决办法
文章目录 关于xlrd最新版本不支持.xlsx文件的解决办法 解决方案,回退到xlrd1.2.0版本 这是很久之前我就遇到的一个问题,这次又遇到了,发现之前没有写笔记,这次记录一下. 关于xlrd最新 ...
- iphone safari不支持position fixed的解决办法
最近一直在做移动web开发,开发过程中遇到了许多问题,mobile safari不支持position: fixed就是一件很头疼的事情.需求是这样的,许多pc web页面的导航都是固定的,比如goo ...
- 小米手机开发者选项打开usb安装需要SIM卡解决办法
前言 最近在做一些安卓的开发,想用之前用过的小米8做测试 但是打开usb调试的usb安装之后却显示需要插入SIM卡 搜索了一下原因,可能是防止黄牛买来装一大堆第三方APP上去然后打包二次销售,影响消费 ...
- word在使用Endnote时变得非常卡解决办法
最近在撰写论文时用endnote插参考文献,结果每插进去一篇,word都会卡顿半天,严重影响写作效率和心情,后来找到几种解决办法,供大家参考. 1.word的工具栏中,找到Bibliography选项 ...
- Lenovo T420 声音卡解决办法汇总
1.是n记显卡的电源管理作怪,将自动管理改为全功率运行就可以了,自己网上搜吧,有人用检测软件测试过,各个驱动对声音的卡的程度,最后找到的原因,可能是i3,i5等新的能源管理造成的,最后,我把conex ...
最新文章
- cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
- 深入浅出:对MySQL主从配置的一些总结
- maven项目转成web项目
- buildin 字节交换
- P1407-[国家集训队]稳定婚姻【tarjan,强连通分量】
- java web junit_如何使用junit测试javaweb工程
- 第一条Pulsar消息发送
- 【Flink】Flink 基于 MailBox 实现的 StreamTask 线程模型
- 在线JSON校验格式化工具,文本对比工具,截图notepad工具
- Windows-QT安装后,又要安装mingw32/64怎么办?
- 南京年薪10万以上软件人才买房买车可获退税
- 四阶龙格-库塔法求解常微分方程的初值问题
- [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍
- HNUST OJ 2205 队伍能力值
- Java项目:SSM在线二手图书交易商城网站平台
- 小程序 html编辑器,小程序富文本编辑器editor初体验
- VC6.0中单文档程序窗口最大化运行的方法
- 2022-2028全球与中国电子门禁系统市场现状及未来发展趋势
- Downloaded bytes did not match Content-Length解决方案:本地安装
- VueJS 中更好的组件组合方式