欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: vxworks文件系統 EEPROM和RAM文件管理移植 NASA開源的 [打印本頁]

作者: 51黑小牛    時間: 2016-4-10 20:21
標題: vxworks文件系統 EEPROM和RAM文件管理移植 NASA開源的
This is governed by the NASA Open Source Agreement and may be used,distributed and modified only pursuant to the terms of that agreement.
竟然還是NASA開源的 瞬間逼格提升。!
今天下午完成EEPROM 類文件系統的移植,今晚來總結一下移植過程和問題。

最近在考慮能否做一個基于小容量存儲的管理系統,主要用來管理一些隨機的存儲和小容量的存儲。比如EEPROM和部分RAM。但是苦于時間實在不太多,主要是不愛動腦子。所以還是拿來主義吧。于是伸手黨先去找了一下RT的源碼,可惜沒找到關于這方面的,索性翻了一下git果然讓我找到了一個。果斷down下來。

這個文件系統是專門基于RAM和EEPROM的。看了一下簡介似乎是vxworks使用的。


然后里面是一個是libraries一個是drivers還有一個是tools.其他不用管。
看了一下里面確定是GCC編譯的。所以需要移植過來。讓他單獨運行
  
取出庫里面的API和驅動文件夾里面的通用驅動interface 之后加入到工程中,app后來加上用于測試
編譯,編譯出錯,主要分為這么幾類
1、宏
2、編譯器參數
3、頭文件
4、平臺字段重定義
依次處理完成,其中有個名叫fcnl.h的頭文件,只要保留內部所有的和文件相關的宏即可其他無用。

+修改的struct void *全部改為uint8*
+time(NULL)重新修改為        Get_current_time()已完成編譯
/* This macro defines the time interface function.  Defaults to time(NULL)  */
/*reused it to  Get_current_time() that reched complited*/
#define  Get_current_time()          now_systick ()

在編譯 成功后對照API書寫一下應用程序

測試中發現幾個小問題,然后重新修改一下

+修改了read中求長度字節 原因是如果是MIN將無法有效讀取文件。
EEFS_LibRead(myfile, Eepromdata, len);
BytesToRead = EEFS_MAX((EEFS_FileDescriptorTable[FileDescriptor].FileSize - EEFS_FileDescriptorTable[FileDescriptor].ByteOffset), Length);
                           (MIN)
+修改了myfile=EEFS_LibOpen(&myeefsInodeTable, "eeprom", O_CREAT, 1);
中的mode屬性,
原來為:EEFS_FileDescriptorTable[FileDescriptor].Mode = (EEFS_FCREAT | EEFS_FWRITE );
增加讀使能
EEFS_FileDescriptorTable[FileDescriptor].Mode = (EEFS_FCREAT | EEFS_FWRITE | EEFS_FREAD);

最后使用內部RAM 1KB測試OK


最后的最后那就是底層接口啦
底層的接口只有三個程序超級簡單哪!



只要把他們映射到EPROM的驅動上就好了。目前直接用了RAM模擬之。

就可以在EPROM上玩文件鳥 ,but 文件大小還是可以定義的呀

麻雀是小了點但是五臟俱全,文件的句柄和磁盤管理,文件的搜索、屬性、信息的記錄等等都實現了并且
All api functions are designed to be as similar to a standard unix file system api as possible。




再怎么然并卵也得向前走啊
比特
wang




作者: lanxichang    時間: 2021-3-20 11:09
在哪呢? 能不能分享一下呢?




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1