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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SDIO_FATFS_MDK 調(diào)試記錄

          SDIO_FATFS_MDK 調(diào)試記錄

          作者: 時(shí)間:2016-12-03 來源:網(wǎng)絡(luò) 收藏
          現(xiàn)在已經(jīng)調(diào)通,把文件系統(tǒng)的各個(gè)操作也基本測(cè)試了一遍,代碼還有待于整理。

          本文引用地址:http://www.ex-cimer.com/article/201612/325143.htm

          首先要說一個(gè)問題,就是在寫文件(f_write)的時(shí)候跳硬件中斷的問題。堆棧不夠,使用的開發(fā)板是奮斗v3.0,芯片是stm32f103vet6,有64K的ram,但是在startup_stm32f10x_hd.s的啟動(dòng)代碼文件里對(duì)堆棧的定義卻很小,不知道為什么,是因?yàn)閯e的硬件資源自己去分配么?現(xiàn)在還沒有搞明白。下面有圖為證:

          原來是512個(gè)字節(jié),現(xiàn)在我把他修改成了2048個(gè)字節(jié)(2kb)。就可以使用了,在Fatfs操作過程中,他的每一個(gè)寫操作的單位就是512字節(jié),堆棧也是512字節(jié),自然會(huì)溢出沒得說,然后程序就會(huì)跳到硬件中斷那里歇著去了。

          另外一個(gè)問題,在寫操作的時(shí)候程序會(huì)在SD卡的寫操作上面死掉,現(xiàn)在還找到原因,需要仔細(xì)看下DMA和SDIO直接的訪問情況。

          給注釋掉就可以正常的寫文件了。

          2011年1月12日 11:40:54
          下面寫下我的理解和解決辦法:
          首先分析了下代碼造成在上述地方程序死循環(huán)的不是下面的讀操作而是寫操作的f_close()函數(shù)。
          在sdcard.c文件的開始定義了volatile SD_Error TransferError = SD_OK;(即0x2A)
          那么分析這句話的意思
          while ((TransferEnd == 0) && (TransferError == SD_OK))
          {}
          當(dāng)傳輸結(jié)束并且沒有錯(cuò)誤的時(shí)候進(jìn)入死循環(huán)?!說不通啊,但是在IAR的編譯器里就可以運(yùn)行,現(xiàn)在要查找從定義到死循環(huán)之間有沒有什么操作可以改變這兩個(gè)變量的值。初步看沒有什么會(huì)變化的情況,要對(duì)照IAR的仿真運(yùn)行一起看。

          問題已經(jīng)解決,要謝謝網(wǎng)友stm32!
          要在stm32f10x_it.c里把SDIO的中斷服務(wù)函數(shù)加上,
          /*******************************************************************************
          * Function Name : SDIO_IRQHandler
          * Description : This function handles SDIO global interrupt request.
          * Input : None
          * Output : None
          * Return : None
          *******************************************************************************/
          void SDIO_IRQHandler(void)
          {
          SD_ProcessIRQSrc();
          }
          然后就ok了。


          關(guān)鍵詞: SDIOFATFSMDK調(diào)試記

          評(píng)論


          技術(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); })();