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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > FPGA和Nios II軟核的SD卡文件系統(tǒng)實現(xiàn)方法

          FPGA和Nios II軟核的SD卡文件系統(tǒng)實現(xiàn)方法

          作者: 時間:2012-12-06 來源:網(wǎng)絡(luò) 收藏

          3 znFAT32文件系統(tǒng)的嵌入和SD卡的掛載
          3.1 znFAT32文件系統(tǒng)概述
          znFAT32是于振南為小型嵌入式設(shè)備完全獨立編寫,且開放源代碼的FAT32文件系統(tǒng)解決方案。znFAT32能夠支持眾多的存儲設(shè)備(SD卡、CF卡、Flash、U盤等),支持多個存儲器共同工作,可以支持同時訪問多個存儲器對文件的操作。對硬件資源要求低,能夠輕松地移植到51單片機、AVR、ARM、DSP、 II等處理器上,占用資源極少(僅占用800字節(jié)左右的RAM),非常適合嵌入式開發(fā)中文件系統(tǒng)的嵌入。其代碼完全由C語言編寫,能夠輕松閱讀,移植方便。其代碼結(jié)構(gòu)如圖6所示。

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

          h.JPG


          由圖6可知該文件系統(tǒng)包含兩層。
          文件系統(tǒng)代碼層——主要提供對存儲設(shè)備進行操作的各種函數(shù)。
          存儲設(shè)備接口層——主要是為了掛載不同的存儲設(shè)備。
          3.2 文件系統(tǒng)SD卡的掛載
          znFAT32文件系統(tǒng)掛載需要SD卡驅(qū)動層提供的扇區(qū)讀寫函數(shù)。將編寫的扇區(qū)讀寫函數(shù)SD_Read_Sector、SD_Write_Sector取代文件系統(tǒng)中的FAT32_ReadSector與FAT32_WriterSector兩個函數(shù)即可。根據(jù)需要的處理器編寫SD卡驅(qū)動程序十分重要,只有保證驅(qū)動程序的正確性,才能進行文件系統(tǒng)的正確掛接,才能在掛接完成后對SD卡進行文件操作。
          znFAT32文件系統(tǒng)的掛接需要對znFAT32文件系統(tǒng)提供的用于標定存儲設(shè)備的全局變量Dev_No設(shè)備號進行處理,znFAT32文件系統(tǒng)給我們提供的存儲設(shè)備宏定義如下:
          j.JPG
          對不同設(shè)備進行文件操作,需要通過設(shè)備號來選擇不同的設(shè)備驅(qū)動函數(shù)。對SD卡操作需將Dev_NO定義為SDCARD。

          4 文件系統(tǒng)在 II中的應(yīng)用實例
          完成SOPC系統(tǒng)的創(chuàng)建后,在生成的 II系統(tǒng)上通過Nios II EDS編程,便可將SD卡與文件系統(tǒng)掛接。
          4.1 znFAT32文件系統(tǒng)的使用
          znFAT32文件系統(tǒng)為用戶提供的對文件的基本操作函數(shù)讓我們能夠輕松地對文件進行操作。下面列舉了幾個基本函數(shù):
          k.JPG
          通過上面的函數(shù),可以完成對SD卡的文件讀寫、刪除、數(shù)據(jù)添加、目錄創(chuàng)建、文件拷貝、文件重命名等操作。
          4.2 SOPC系統(tǒng)對SD卡文件讀寫操作的驗證
          為了驗證上述系統(tǒng)能否正常實現(xiàn)SD卡讀寫,筆者選用了4 GB容量的金士頓SDHC卡,進行了文件讀寫實驗。圖7為Nios II EDS給出的Deb ug信息窗口。信息顯示了在構(gòu)建的系統(tǒng)上SD卡的初始化(實現(xiàn)文件系統(tǒng)的掛接),接著讀取SD卡的存儲容量、扇區(qū)大小、每簇扇區(qū)數(shù),并在根目錄下面打開名為TEST.TXT的文件,并對該文件的信息進行讀取。在一級子目錄下面,同樣建立一個TEST.TXT的文件,并對文件信息進行讀取。

          e.JPG


          由運行結(jié)果可知,初始化成功并識別此SD卡為SDHC卡,容量為964 256(總簇數(shù))×8(每簇扇區(qū)數(shù))×512(每扇區(qū)字節(jié)數(shù))≈3 968 860 160。根目錄下的TEXT.TXT文件被打開,打開文件成功后在DIR1子目錄下面創(chuàng)建TEST.TXT。由主函數(shù)創(chuàng)建的文件日期在TimeCreat[6]={12,1,4,17,40,28)中存放,文件成功后讀取創(chuàng)建的新文件的詳細信息。
          為了進一步驗證本系統(tǒng)對SD卡的寫入操作,筆者將此SD卡通過讀卡器與PC機連接,在PC機的文件系統(tǒng)下,顯示了相同的結(jié)果。

          結(jié)語
          本文通過在CycloneⅡ系列上構(gòu)建SOPC系統(tǒng),并在該系統(tǒng)上基于NiosⅡ處理器構(gòu)建了。該系統(tǒng)以SPI接口方式與SD卡連接,文件系統(tǒng)是面向嵌入式系統(tǒng)的緊湊型開放源碼的系統(tǒng)。經(jīng)過對SD卡的操作驗證,證明本文提供的方案具有設(shè)計靈活、集成度高、通用性強、移植性好等諸多優(yōu)點。在線陣CCD數(shù)據(jù)采集實驗系統(tǒng)以及數(shù)控貼片控制系統(tǒng)上得到了很好的應(yīng)用。

          fpga相關(guān)文章:fpga是什么


          51單片機相關(guān)文章:51單片機教程


          c語言相關(guān)文章:c語言教程



          上一頁 1 2 3 下一頁

          評論


          相關(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); })();