<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 2440支持大容量SD卡的解決辦法

          2440支持大容量SD卡的解決辦法

          作者: 時(shí)間:2011-02-24 來源:網(wǎng)絡(luò) 收藏
          上周搞定了攝像頭,昨天開始搞SD卡,剛開始挺郁悶,大容量不支持就算了,居然小容量的SD卡能夠發(fā)現(xiàn)盤符,但是卻不能刪除和新建文件,后來經(jīng)過修改,把寫保護(hù)檢測(cè)去掉了就可以正常讀寫了。Google了一下,然后在在群里問了一下,在CSDN搜索了一下,很幸運(yùn),很快搞定了大容量的SD卡支持問題。

          現(xiàn)在借花獻(xiàn)佛,寫個(gè)詳細(xì)的做法,希望后人收益。

          操作方法:

          1. 更新PB. 更新補(bǔ)丁放在\10.1.10.250softwareWinCE50 UpdateWinCEPB50-071231-Product-Update-Rollup-Armv4I.msi
          2. 在platform->setting->environment 中設(shè)置IMGSDBUS2 = 1

          之所以要設(shè)置這個(gè)環(huán)境變量是因?yàn)?SPAN style="COLOR: #ff0000">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)函數(shù)里在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)函數(shù)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;
          主要是要添加對(duì)cmd7的支持。

          然后重新sysgen個(gè)工程即可。

          ==================================完畢!=================================


          4. 重新sysgen platform。

          補(bǔ)充:對(duì)于2410 支持大容量SD問題也是類似 如果是4.2BSP就要修改中斷申請(qǐng)等問題了。4.2BSP支持大容量的SD卡辦法請(qǐng)參考這里

          http://topic.csdn.net/u/20080911/16/111A849C-FD1F-4955-840D-6DDFBA8EE1FA.html

          http://topic.csdn.net/u/20081104/13/5024B712-07F4-4B33-A015-F2D5BAAFA027.html

          http://topic.csdn.net/u/20081021/10/52df6b8b-c69b-4e7b-a278-0816e133f881.html?seed=508798215

          http://topic.csdn.net/u/20080916/16/00D9A2BE-E4F8-4BEA-B892-F25E20AC4C83.html

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();