2. ff14a/source 下就是需要的檔案。
ff.c fatfs模組。
ffconf.h fatfs模組的配置檔案。
ff.h fatfs和應用程式模組的通用包含檔案。
diskio.h fatfs 和disk i / o模組的公用包含檔案。
diskio.c 將現有disk i / o模組連線到fatfs的粘合功能示例。
ffunicode.c 可選的unicode實用程式功能。(中文顯示需要)
ffsystem.c 可選的o / s相關功能的示例。
fatfs 模組提供的是 ff.c 和 ff.h。除非有必要,使用者一般不用修改,使用時將標頭檔案直接包含進去即可。
ffconf.h fatfs模組配置檔案,比如ff_use_fastseek設定為1時,可以使用快速查詢功能。
需要我們編寫移植**的是 fatfs 模組提供的底層介面,它包括儲存媒介讀/寫介面(diski/o)和供給檔案建立修改時間的實時時鐘。即diskio.c 需要使用者自己編寫。
和平台無關的檔案:
diskio.h
ff.c
ff.h
ffconf.h
ffsystem.c
ffunicode.c
和平台有關的檔案
diskio.c
fatfs 模組在移植的時候,我們一般只需要修改 2 個檔案,即 ffconf.h 和 diskio.c。
ffconf.h 的配置,
1. 參看別的專案
2. 官網中,使用者呼叫不同應用函式時,引數設定有具體說明
3. 看fatfs原始碼,根據需要設定
幾個重要的配置選項:
_volumes。用於設定 fatfs 支援的邏輯裝置數目,我們設定為 2,即支援 2 個裝置。
_max_ss。扇區緩衝的最大值,一般設定為 512。
_use_lfn。該選項用於設定是否支援長檔名(還需要_code_page 支援),取值範圍為 0~3。 0,表示不支援長檔名, 1~3 是支援長檔名,但是儲存地方不一樣,我們選擇使用 3,通過 ff_memalloc 函式來動態分配長檔名的儲存區域。
/ 0: disable lfn. ff_max_lfn has no effect.
/ 1: enable lfn with static working buffer on the bss. always not thread-safe.
/ 2: enable lfn with dynamic working buffer on the stack.
/ 3: enable lfn with dynamic working buffer on the heap.
_code_page。這個用於設定語言型別,包括很多選項(見 fatfs 官網說明),我們這裡設定為 936,即簡體中文。
936 - simplified chinese (dbcs)
此選項指定要在目標系統上使用的oem**頁。 錯誤的**頁設定可能導致檔案開啟失敗。
開啟diskio.c 檔案,需要編寫這幾個介面函式
dstatus disk_initialize (byte pdrv);
dstatus disk_status (byte pdrv);
dresult disk_read (byte pdrv, byte* buff, lba_t sector, uint count);
dresult disk_write (byte pdrv, const byte* buff, lba_t sector, uint count);
dresult disk_ioctl (byte pdrv, byte cmd, void* buff);
dword get_fattime (void)
//動態分配記憶體
void *ff_memalloc (uint size)
//釋放記憶體
void ff_memfree (void* mf)
STM32中檔案作業系統FATFS的移植
這裡主要介紹一下 stm32中檔案作業系統fatfs的移植。1.版本 fatfs0.11a 3.將壓縮後將檔案放入user目錄 工程模板選擇spiflash例程模板 1.在mdk工程介面中新建fatfs目錄,新增如下檔案 2.魔術棒中 設定標頭檔案包含 fatfs src 目錄 3.在ffconf....
基於STM32移植LWIP的資料準備
windows作業系統 unix類作業系統都有自己的一套方法來實現tcp ip通訊協議,它們都提供非常完整的tcp ip協議。對於一般的嵌入式裝置,受制於硬體條件沒辦法支援使用在window或unix類作業系統的執行的tcp ip協議棧,一般只能使用簡化版本的tcp ip協議棧,目前開源的適合嵌入式...
stm32移植ucosII成功
osstarthang b osstarthang should never get here 現在做開發真的離不開internet啊 不然我也不可能2.5小時內搞定ucosii的移植。我的硬體版本是 stm32f103c8t6,ucos版本是ucosiiv2.86 另外給大家推薦一本學習ucosi...