1.

更新PB,补丁名称为:

07年12月份的WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi
2.      在platform->setting->environment 中设置IMGSDBUS2 = 1

之所以要设置这个环境变量是因为sdbus2.dll 才支持大容量的SD的。

3、在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

(第三个似乎很多BSP都已经包含了的)

4、修改BSP代码:

在SDHC——》sdhcbase下的sdiocontrollerbase.cpp中,添加两句代码:

第一个在SendCommand函数下:

case ResponseR1:                // Short response required

case ResponseR1b:

case ResponseR3:

case ResponseR4:

case ResponseR5:

case ResponseR6:

case ResponseR7://该句话为添加的代码

第二个在GetCommandResponse函数下:

case ResponseR1:

case ResponseR1b:

case ResponseR7: //该句话为添加的代码

*(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);

主要是增加对CMD8命令,详细请查MMC,SD卡的协议。

pb6已经默认包含了对sd20的支持。pb5在打过2007全年补丁后,就增加了对sd20协议以及SDHC卡的支持,需要设置一个新的环境变量IMGSDBUS2=1.在驱动里面的对应修改非常简单, 就是增加对CMD8命令的响应, 根据sd20协议,cmd8的响应类型是R7, 所以, 简单的在1208和1308行增加case ResponseR7:就可以了。

说明, sdhc是遵循sd20协议, sd20协议和sd11协议的差别不是很大, 主要一个区别是在初始化时候,发送cmd0复位后, 首先发送cmd8进行判断是否支持sd20, 然后才发生cmd2, cmd3, acmd55进行识别。还有一个重大的变化是sd20只能支持512大小的block。 但是对于之前的驱动实现,对于sd11的卡, 默认的也都是使用512,所以这一点不需要额外处理。

经过测试2440可以支持sdhc和sd20. 之前一直担忧2440的sd的fifo的size太小, 仅仅64, 小于一次有效传输的block size, 担忧会导致fifo溢出。 又对比了2450和6410系列的sd部分, fifo都增加到了512, 也许是因应新协议的变化。

我测试的是一张4G class 2的SDHC卡。实际测试, 2440可以使用SDHC。意味着可以支持4G~32G的卡。

转载于:https://www.cnblogs.com/gmh915/archive/2010/08/26/1945405.html

SD卡支持大容量办法(转)相关推荐

  1. 安霸S2LM系列SD卡支持

    1.内核配置 增加驱动: -> Device Drivers                                                                   ...

  2. STM32 通过USB接口读写挂载的SD卡(支持fatfs文件系统)

    通过USB接口读写挂载的SD卡 HAL库 标准库 本文以STM32F407为例分别用HAL库(STM32CubeMX)和标准库实现SD卡对fatfs支持,以及通过USB接口读写SD卡.首先看电路连接: ...

  3. Ubuntu虚拟机识别不了SD卡的解决办法

    问题背景:在Win7上的安装的VMware9,运行Ubuntu12.04,SD卡通过读卡器连接到电脑(ThinkPad E550c)上,使用命令"sudo fdisk -l"列出磁 ...

  4. mini2440 sd卡支持

    内核版本:linux-2.6.32.2        实验平台:mini2440 1. 添加平台设备私有数据定义 static struct s3c24xx_mci_pdata mini2440_mm ...

  5. 关于surface pro更新1903后无法识别SD卡的解决办法

    一.按win+x键----选择设备管理器 二.选择通用串行总线控制器 三.选择带有card的设备 四.选择驱动程序下的驱动设备,然后再选择更新驱动程序 五.选择浏览我的计算机以查找驱动程序软件 六.让 ...

  6. 开源硬件--树莓派 SD卡支持列表

    为什么80%的码农都做不了架构师?>>>    occur. OK Manufacturer Type Size (GB) Class Model Info Logged by ok ...

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

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

  8. 深入理解SD卡基础原理以及内部结构的总结 (转)

    1. 简介:     SD卡(Secure Digital Memory Card)是一种为满足安全性.容量.性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模 ...

  9. S5PV210裸机之SD卡

    主流的外存设备介绍 内存和外存的区别: 一般是把这种RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory, ...

最新文章

  1. 使用Base64加密URL
  2. 当前时间转换的秒数_C++ 日期 amp; 时间
  3. 剥开比原看代码(八):比原的Dashboard是怎么做出来的?
  4. Layui或Layuimini整合Echarts 5
  5. DHCP服务、NFS、vsftp服务的简单搭建
  6. UIWebView与JS的深度交互
  7. 存PHP,数据存储 · PHP – Bmob后端云
  8. [BZOJ4300]绝世好题
  9. 计算机硬盘怎么设置ntfs,如何把计算机硬盘文件系统fat32改为ntfs.doc
  10. 485协议转换器的开发
  11. Python:绘制数学图形
  12. 利用Visual Studio(C++)实现简易计算器(二)
  13. C++学生信息管理系统(有头链表+文件存取)
  14. vs2013 - 高亮设置 括号匹配 (方括号) 大括号匹配 Visual Studio 2013
  15. 已知函数fx=sin(wx+φ)_已知函数fx=Asin(wx+φ) (x∈R,A0,w0,0
  16. 短文本匹配模型-ESIM
  17. FileDetector-基于java开发的照片整理工具
  18. 2012年MacBook更换SSD固态硬盘和16G内存条
  19. 2021-03-25 minio
  20. 关于如何在WPS中生成附图索引

热门文章

  1. Linus 07年在 Google讲座介绍Git的特点和设计思路
  2. Java本地缓存CaffeineCache集成
  3. 最新idea设置默认maven
  4. 实战爬虫-爬取红袖添香并存入数据库
  5. Web 的MSN,可以不用装客户端
  6. odoo之可选择多个内容显示问题
  7. TP3.2项目 MySQL5.7报错1055 group by新特性
  8. SpringBoot之Dubbox
  9. ABP源码分析二十五:EventBus
  10. struts与spring整合方法copy