在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            SDIO_FATFS_MDK 調(diào)試記錄

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

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

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

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

            另外一個問題,在寫操作的時候程序會在SD卡的寫操作上面死掉,現(xiàn)在還找到原因,需要仔細看下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))
            {}
            當傳輸結(jié)束并且沒有錯誤的時候進入死循環(huán)?!說不通啊,但是在IAR的編譯器里就可以運行,現(xiàn)在要查找從定義到死循環(huán)之間有沒有什么操作可以改變這兩個變量的值。初步看沒有什么會變化的情況,要對照IAR的仿真運行一起看。

            問題已經(jīng)解決,要謝謝網(wǎng)友stm32!
            要在stm32f10x_it.c里把SDIO的中斷服務函數(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)試記

            評論


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

            關(guān)閉