版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
接口。MFS文件系統(tǒng)提供以下功能:MFS文件系統(tǒng)還支持分區(qū),目前在的板子上沒有實現(xiàn)這個功能??梢栽谝粋€介質上(SD卡)SD卡驅動上,而MFSMFS來說,就好像有兩個MQX_FILE_PTR /*[IN]thedeviceonwhichtoinstallMFS /*[IN]thenamethatshouldbegiventomfs(ex:"C:","MFS1:",etc..)*/ /*[IN]thepartitionnumbertoinstallM.0fornopartitions*/)Cpartition_num0與微軟MS-DOS不兼容,安裝出錯化,或者格式化為NTFT2等其他格式。MFS_NOT_INITIALIZED:指定的identifier沒有以:結尾PGMR_INVALID_PARTITION:partition_num參數(shù)無效,沒有指定的分區(qū)該函數(shù)用于在一個指定的設備上安裝MFS文件系統(tǒng)。MFS文件系統(tǒng)支持FAT12,FAT16和FAT32文件系統(tǒng),該函數(shù)會從設備上相關信息,如果它不是FAT文件系統(tǒng),安裝會失敗。你需要先將其格式化為支持的FAT文件系統(tǒng)。MFS支持一個設備上的多個分區(qū),這種情況下,需要一個分區(qū)管理驅動程序來管理分區(qū),而MFS文件系統(tǒng)調用_io_mfs_install函數(shù)將其安裝在分區(qū)驅動上。備的MQX_FILE_PTR指針,該指針作為_io_mfs_install函數(shù)的第一個參數(shù)。 identifier/*[IN]Astringthatidentifiesthedevicetouninstall)identifier:輸入?yún)?shù)。與_io_mfs_install2個參數(shù)對應,指定需要卸載MFS_SHARING_VIOLATION:該設備上仍然有打開的文件,MFS文件系統(tǒng)仍然MQX_FILE_PTRdev_fd, /*[IN]Handleofthedeviceonwhichtoinstallthepartitionmanager*/ identifier,/*[IN]Thenewnameofthepartitionmanagerdevice sector_size/*[IN]Thesizeofsectorsinbytesonthelowerleveldevice)sector_size:輸入?yún)?shù)。設備扇區(qū)的大?。ㄒ宰止?jié)計算)層設備的驅動設備,比如:dev_fd=fopen(“sdcard”,0);,返回的dev_fd是指向底層設備驅動的句柄,該句柄作為_io_part_mgr_install的第一個參數(shù)。第3個參數(shù):sector_size指定設備的扇區(qū)大?。▽τ赟D卡,flash等就是頁大小,如果該參數(shù)為0,則系統(tǒng)將調用底層設備驅動查詢扇區(qū)大小,如果查詢失敗, int_32( /*[IN]Theidentifierstringofthedevice)identifier:被卸載分區(qū)驅動的名稱,即_io_part_mgr_install2個參數(shù)指定的名稱。fclose, MQX_FILE_PTR_io_fopen(/*[IN]thenameofthedevicetoopen*/constchar_PTR_open_type_ptr,/*[IN]I/Oinitializationparametertopasstothedeviceinitialization*/constchar_PTR_open_mode_ptr)MFS文件系統(tǒng),它同樣可以用于打開任何硬件設備,比如串口,I2C,SPI等等。在MFS文件系統(tǒng)中該函數(shù)可以用于打開底層設備(如SD卡)的驅動程序,也可以用于打開分區(qū)管理驅動程序,還可以打開設備上的一個文為了在MFS文件系統(tǒng)上打開文件,需要首先調用該函數(shù)打開底層設備的驅動,然write、ioctl、fclose、fscan、fputc、fputs、fgetc等函數(shù),從而實現(xiàn)對文件的讀寫操作。MFSopen_type_ptr后面自動加上一些字符構成完整文件名,這就要求open_type_ptr15個字節(jié)未用的空間;而且open_type_ptr指定的文件名不能以’\’或’/’ _mqx_int(/*[IN]thestreamtoclose*/MQX_FILE_PTRfile_ptr) /*[IN]thestreamtoperformtheoperationonMQX_FILE_PTR/*[IN]thedatalocationtoreadto*/ /*[IN]thenumberofbytestoread )file_ptrfopen的返回值IO_ERROR:出錯。無效的file_ptr,或者文件系統(tǒng)/底層設備驅動不支持讀操作讀成功,如果小于num,則可能已經讀到文件尾,沒有足夠的數(shù)據(jù)可讀該函數(shù)是一個通用函數(shù),其實fopen,fclose,write等都是通用函數(shù),即它們不僅在MFSfopen打開該文件num指定的字節(jié) _mqx_int(/*[IN]thestreamtoperformtheoperationon*/MQX_FILE_PTRfile_ptr,/*[IN]thedatalocationtowritefrom*/ /*[IN]thenumberofbytestowrite )否則,返回實際寫入的字節(jié)數(shù)(小于等于參數(shù)num)MFS文件系統(tǒng)操作,實際上也可以用于任何設備,比如對一個串口驅動調用write函數(shù),則會觸發(fā)串口發(fā)送數(shù)據(jù)。MFSfopen打開該文num指定的字 /*[IN]thestreamtoperformtheoperationon*/MQX_FILE_PTRfile_ptr,/*[IN]theioctlcommand /*[IN]theioctlparameters*/ )cmd:輸入?yún)?shù)。命令號,具體支持令見下面的ioctl堪稱,幾乎所有通用操作系統(tǒng)都實現(xiàn)了相同的標準API接口,即無論這個標準的接口通常由以下幾個API函數(shù)組成:open,close,read,write,ioctl。其中ioctl的功能最為復雜,可以說,它可以實現(xiàn)任意想要的功能,通常把不方便用 。類似于實現(xiàn)linuxs中的cd命令調用方法:說明:pthname參數(shù)指定新的當前 的路徑,如果以’\’或’/’開頭,則表示一前 徑注意:pathname指定的 調用方法:說明:如果指定的 是以’\’或’/’開頭,則代表一個絕對路徑,否則代表一個前 。rr_oitl(s_f_t_ICT_FFM)說明:命令刪除設備的所文件和。第一參數(shù)用fpn開驅。說明:指定的filename不能有通配符,mfs_fd_ptr則是設備驅動句柄(由fopen返回ioctl命令仍然可以刪除它,這點與windows是不一樣的。MFS_OPERATION_NOT_ALLOWED:說明:這兩個命令用于查找文件,通常是配合起來一起使用。首先調用IO_IOCTL_FIND_FIRST_FILEMFS_NO_ERROR,則可以繼續(xù)調用IO_IOCTL_FIND_NEXT_FILE繼續(xù)查找可以使用通配符來查找文件,但是只允許出現(xiàn)一個’*’,所有在這個’*’ MFS_SEARCH_PARAM的結構體,這ATTRIBUTE指定被查找文件的屬性(即查找什么屬性的文值只查找normal文件,即普通文件(不是 和normal文第2個變量是個指針,指向被查找文件名稱(可以有通配符第3個參數(shù)是個指向MFS_SEARCH_DATA結構體的指針,查找的結果就存放在這個結構體內。 structMFS_SEARCH_DATA{ucharuint_16TIME;uint_16DATA;charNAME[13];}說明:如果FAT表修改了(比如你創(chuàng)建了新文件,比如的刪除了文件,或者往文件中寫入了新數(shù)據(jù)等,可能這些修改還沒有刷新到設備上(仍然保存在RAM中,調用此命令將確保所有改動都會寫入到設備上。MFS_FORMAT_DATAPHYSICAL_DRIVE—0x00:軟盤;0x80:SDCF寸720K磁盤;0xF0:3.5寸1.44M磁盤或其它可移動設備;0xF8:硬盤或其它不BYTES_PER_SECTOR扇區(qū)的大小,通常512字節(jié)SECTORS_PER_TRACKSD1NUMBER_OF_HEADS磁頭的數(shù)目,對SD卡來說設為1NUMBER_OF_SECTORS:設備上的扇區(qū)數(shù)(或page數(shù)目)HIDDEN_SECTORSSD0,對于硬盤指的是從硬說明:用指定的參數(shù)格式化,并且返回壞塊數(shù)(從第3個參數(shù) 說明:如果設備大于4GB,那么調用IO_IOCTL__SPACE會出錯;IO_IOCTL_GET_CLUSTER_SIZEcluster的大小,再調用IO_IOCTL__CLUSTERS得到空閑cluster數(shù),兩者相乘 功能:獲取底層設備驅動的句柄說明:該函數(shù)第3個參數(shù)是一個指向_mfs_cache_枚舉類型的指針。定義write-throughwrite-backwrite-through模式,就是所有的寫入操作都立刻直接刷新到設備上;而write-back模式就是不立設備上(所謂適當時候是指兩種情況:用戶調用ioctlflush顯式的刷新到存儲設備;或者下次讀不同的扇區(qū)的時候?;旌夏J绞且环N加強的write-backwrite-back模式的的兩種刷新情況外,還增加了一種,就是當文件被close的時候,MFS也刷新任何改動到設備。此結構體的兩個變量分別是:NM指定要設置或查詢屬性的文件名(含路徑。RB_PR。說明:第一個參數(shù)是底層設備驅動的句柄(由fopen返回。第3個參數(shù)是一個指針,指向結構體MFS_GET_LFN_STRUCT。該結構體定義為:文件的短文件名(8.3格式的dos文件名。第2個參數(shù)LONG_FILENAME說明:時卷標通過label參數(shù)返回,調用者必須分配好內存,使得/設置文件數(shù)據(jù)和的cache模式,注意:這個和模式,這個是文件系統(tǒng)中文件和的cache模式。說明:第3個參數(shù)即cache模式,如果是IO_IOCTL_GET_WRITE_CACHE_MODE調用,則最后通過第3個參數(shù)返回種模式與前面IO_IOCTL_SET/GET_FAT_CACHE_MODE的那3種模式一樣。說明:第3個參數(shù)就是指定要刪除的子 指向MFS_RENAME_PARAM的結構體。該結構體定義為:3MFS_DATA_TIME_PARAM結構體的指針,該 向PMGR_PART_INFO_STRUCT結構體的指針。定義為:TYPE:分區(qū)類型,取值見下表TYPE三.MFS返回錯誤代碼 MFS_OF:已經到達文件結尾,這不是個錯誤,只是個提示,指示用戶不要繼續(xù)讀這 的磁盤句柄是無效的,即傳給fopen,ioctlMFS_ERROR_INVALID_FILE_HANDLE:MFS的文件句柄無效MFS_ERROR_UNKNOWN_FS_VERSION:無效的文件系統(tǒng)版本,基本上是指設FAT32版本(advancedfat32,MFSFAT文件系統(tǒng),如微軟后來發(fā)展的exFAT是不支持的MFS_INVALID_CLUSTER_NUMBERclustercluster號超過MFS_INVALID_MEMORY_BLOCK_ADDRESS:在 MFS_INVALID_PARAMETER:ioctl函數(shù)傳遞令號是無效的MFS_LOST_CHAIN:這不是致命錯誤,它表示一些cluster鏈丟失了,這種情況下,不MFS_NOT_A_DOS_DISKFAT12/FAT16/FAT32MFS_NOT_INITIALIZED:MFS沒初始化MFS_RI__WD:不允許的操作,指在一個只讀的文件系統(tǒng)中設MFS_AHNOFONMFS_ROOT_DIR_FULL:MFS文件系統(tǒng)的 下已經滿了,不能存放文件或。對于FAT16等文件系統(tǒng),根 下最多只能有512個文件或子 MFS_CRNO_OUD:在寫磁盤時發(fā)生錯誤,可能是磁盤沒有被正確格式化,MFS_SHARING_VIOLATION:共享,可能是下面兩種情況之一:格式化或關閉一MFS可能還會返回其他底層設備驅動返回的錯誤代碼 scaleMQX MFS_DISK_FULL MFS_DISK_IS_WRITE_PROTECTED:MFS_EOF:已經到達文件結尾,這不是個錯誤,只是個提示,指示用戶不要繼續(xù)讀這 MFS_ERROR_INVALID_DRIVE_HANDLEMFS的磁盤句柄是無效的,即傳給fopen,ioctl MFS_ERROR_UNKNOWN_FS_VERSION:無效的文件系統(tǒng)版本,基本上是指設fat32, MFS_FAILED_TO_DELETE_LFN MFS_FILE_EXISTS: MFS_FILE_NOT_FOUN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生局車輛管理制度
- 衛(wèi)生院每日清單制度
- 咖啡廳食品衛(wèi)生管理制度
- 醫(yī)療衛(wèi)生事業(yè)編制度
- 衛(wèi)生院組織分管制度
- 學校衛(wèi)生獎懲制度
- 衛(wèi)生院護理質量管理制度
- 衛(wèi)生院反恐防暴工作制度
- 新衛(wèi)生保健十項制度
- 衛(wèi)生院紀律作風制度
- 全國青少年軟件編程等級考試scratch等級考試三級模擬測試卷2含答案
- 人力資源服務安全培訓
- 生物質能燃料供應合同
- GB/T 45078-2024國家公園入口社區(qū)建設指南
- 安全生產標準化基本規(guī)范評分表
- 附件3:微創(chuàng)介入中心評審實施細則2024年修訂版
- 嗜血細胞綜合征查房
- 財務共享中心招聘筆試環(huán)節(jié)第一部分附有答案
- 安徽紅陽化工有限公司年產1萬噸有機酯(三醋酸甘油酯)、5500噸醋酸鹽系列產品擴建項目環(huán)境影響報告書
- 汽車各工況下輪轂軸承壽命計算公式EXCEL表
- 教務工作的培訓內容
評論
0/150
提交評論