|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
ZLG/FS文件系統(tǒng)中間件的問(wèn)題! |
| 作者:zenist 欄目:ARM技術(shù) |
我在用EasyARM2131開發(fā)板用ZLG/FS文件系統(tǒng)中間件,讀寫SD卡的時(shí)候遇到如下問(wèn)題: 1.在用同樣的程序循環(huán)寫入兩張不同SD卡,結(jié)果不同,[Canon SD MEMORY Card SDC-32M]這張卡,不能在已有的文件后續(xù)寫數(shù)據(jù),另一張可以,請(qǐng)問(wèn)是不是開發(fā)板對(duì)卡有兼容性一說(shuō)? 2.另一張是 東芝的卡,16M,對(duì)一個(gè)文件寫數(shù)據(jù),最多只能寫入100K,具體是102400字節(jié),請(qǐng)問(wèn),是不是程序中的文件指針有bug阿,我只是最簡(jiǎn)單地調(diào)用了OpenFile,WriteFile,CloseFile,AllCacheWriteBack幾個(gè)函數(shù)而已阿.請(qǐng)教各位大俠,有用過(guò)這個(gè)開發(fā)板,遇到文件系統(tǒng)的問(wèn)題? -------望不吝指教! |
| 2樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 10:37:00 發(fā)布:
====自己頂一下 |
|
| 3樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 16:24:00 發(fā)布:
用過(guò)的用戶有沒(méi)有遇到我這樣的問(wèn)題阿? 用過(guò)的用戶有沒(méi)有遇到我這樣的問(wèn)題阿? 指點(diǎn)一下使用這個(gè)中間件的注意事項(xiàng),就那幾個(gè)函數(shù),我用了幾種情況來(lái)驗(yàn)證,總是摸不著可靠地使用地規(guī)律. FS地代碼看了,總體感覺(jué)不是很簡(jiǎn)練,是不是給客戶的代碼是簡(jiǎn)化版阿? ---ZLG地技術(shù)人員,看了,回一下阿. |
|
| 4樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 16:34:00 發(fā)布:
堅(jiān)持----- 這是一個(gè)很基本的應(yīng)用,參照你們的<<ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例(一)>>也沒(méi)有什么問(wèn)題阿,就是用起來(lái)不是很順. 實(shí)例通過(guò),然后,我添加 了一個(gè)循環(huán),沒(méi)有改變其他的代碼,結(jié)果是寫入了102400字節(jié)不再寫入了. ---雁過(guò)留痕---- ---拜托,買過(guò)ZLG開發(fā)板的大俠,試一下,看結(jié)果如何.正常通過(guò)的,通告一聲. -==謝過(guò)先! |
|
| 5樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/24 17:25:00 發(fā)布:
學(xué)習(xí)過(guò),但沒(méi)用過(guò),用的別的fs 幫你頂一下 |
|
| 6樓: | >>參與討論 |
| 作者: greatbin 于 2006/5/24 17:31:00 發(fā)布:
bangniding |
|
| 7樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 17:31:00 發(fā)布:
To:eleven11 推薦一款FS(好用的)! |
|
| 8樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 17:34:00 發(fā)布:
有用過(guò)的嗎? ZLG/FS應(yīng)該算是ZLG公司比較成熟的中間件,在書中都介紹了,怎么不好用那? |
|
| 9樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/24 17:45:00 發(fā)布:
不是有書嗎 再翻一下舊貼吧,我只是修改一下做了測(cè)試,應(yīng)該還能用的吧,我用的是其它商業(yè)fs(不是ucFS), |
|
| 10樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 17:52:00 發(fā)布:
謝過(guò)! |
|
| 11樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/24 18:04:00 發(fā)布:
對(duì)于zlgfs的代碼沒(méi)有一行行分析 我按照zlg/fs的思想也寫過(guò)fs,不過(guò)對(duì)于zlgfs的代碼沒(méi)有一行航分析,后來(lái)公司用的是買的商業(yè)fs(雖然我認(rèn)為也不是很好) CacheID = SecIndex & CacheMap; 這是我用的cache分配的算法,按區(qū)域進(jìn)行映射,這樣你嫌麻煩的話就不必修改zlgfs的讀寫文件的函數(shù)了 |
|
| 12樓: | >>參與討論 |
| 作者: zenist 于 2006/5/24 18:16:00 發(fā)布:
我修改一下FileWrite()函數(shù)看一下. 看過(guò),樓上關(guān)于FS的帖子,不錯(cuò),多謝指點(diǎn)迷途 |
|
| 13樓: | >>參與討論 |
| 作者: zenist 于 2006/5/25 0:35:00 發(fā)布:
致樓上 能否共享一下你修改的關(guān)于Cache的函數(shù),我修改后,調(diào)試通過(guò),寫少量數(shù)據(jù)通過(guò),寫多了,常出錯(cuò),萬(wàn)分感激@ --->xqzenist@hotmail.com |
|
| 14樓: | >>參與討論 |
| 作者: zenist 于 2006/5/25 0:44:00 發(fā)布:
假設(shè) 請(qǐng)教,如果我用51來(lái)實(shí)現(xiàn)基于優(yōu)盤或是SD卡的文件系統(tǒng),最快的寫入速度大概能達(dá)到多少? -->>假設(shè)的基本前提:W78E58B,22.184MHz |
|
| 15樓: | >>參與討論 |
| 作者: shclark 于 2006/5/25 15:08:00 發(fā)布:
ZLG/FS文件系統(tǒng)中間件的問(wèn)題! 我前兩天仔細(xì)研究了ZLG/FS文件系統(tǒng)中間件(V1.0),感覺(jué)代碼質(zhì)量離商業(yè)應(yīng)用還有一定距離。建議各位同行僅用于學(xué)習(xí)目的。!我現(xiàn)在用的是商業(yè)fs。 |
|
| 16樓: | >>參與討論 |
| 作者: zenist 于 2006/5/25 16:03:00 發(fā)布:
大伙都用過(guò)那些FS阿?介紹一下 |
|
| 17樓: | >>參與討論 |
| 作者: chinagzj 于 2006/5/25 20:33:00 發(fā)布:
ZLG/FS文件系統(tǒng)中間件的問(wèn)題 ZLG/FS 1.0 版有問(wèn)題 老陳說(shuō)1.1的好用,但他們保密,我也想要個(gè)ZLG/FS 1.1 版 請(qǐng)大家?guī)椭幌轮x謝。。 |
|
| 18樓: | >>參與討論 |
| 作者: zenist 于 2006/5/26 8:31:00 發(fā)布:
真黑! 怪不得大伙都說(shuō)作開發(fā)板的都黑! 牛皮吹的大的很,說(shuō)這個(gè)文件系統(tǒng)怎么樣,只能學(xué)習(xí)用,害人,早知買商用的了, -->商用的怎么買阿,價(jià)格如何阿 ? |
|
| 19樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/26 9:45:00 發(fā)布:
畢竟是zlg自己開發(fā)的吧 ucLinux上的軟件是開源免費(fèi)的,但賣ucLinux的很多也就告訴你打幾個(gè)命令掛這個(gè)掛那個(gè),你要用這些協(xié)議就要用Linux,不過(guò)國(guó)內(nèi)盜版ucFS和zlgfs滿天飛,F(xiàn)AT文件系統(tǒng)在中國(guó)不值錢,單獨(dú)的NANDFlash上的寫平衡的文件系統(tǒng)才值錢,不過(guò)這個(gè)都是保密的 |
|
| 20樓: | >>參與討論 |
| 作者: zenist 于 2006/5/26 23:09:00 發(fā)布:
我的關(guān)鍵問(wèn)題 我得問(wèn)題是: 用ZLG/FS能否實(shí)現(xiàn)4字節(jié)/ms的采樣速度,并將之寫入Sd卡? 采樣數(shù)據(jù)速度穩(wěn)定,但不能丟數(shù)據(jù)! |
|
| 21樓: | >>參與討論 |
| 作者: chinagzj 于 2006/5/27 22:54:00 發(fā)布:
ZLG/FS 1.0 版有問(wèn)題 ZLG/FS 1.0 版有問(wèn)題 說(shuō)1.1的好用,但他們保密,我也想要個(gè)ZLG/FS 1.1 版 請(qǐng)大家?guī)椭幌轮x謝ZLG。! 急用!。。! chinagzj@msn.com |
|
| 22樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/28 10:48:00 發(fā)布:
zenist:我的cache文件 給你發(fā)了郵件 * - 本貼最后修改時(shí)間:2006-5-28 11:18:58 修改者:eleven11 |
|
| 23樓: | >>參與討論 |
| 作者: zenist 于 2006/5/28 14:02:00 發(fā)布:
請(qǐng)教大俠:如何購(gòu)買商業(yè)的FS? 請(qǐng)教大俠:如何購(gòu)買商業(yè)的FS(成熟的)? 一般價(jià)格如何? 各位用過(guò)什么FS? 我的要求就是可以在前后臺(tái)系統(tǒng)中,采集數(shù)據(jù),寫入SD卡中的文件. 用過(guò)ZLG的FS,感覺(jué)就是怪,不好用,自己修改過(guò)其中幾個(gè)函數(shù),可以運(yùn)行. 就是怕不可靠, 求助 大俠 介紹用過(guò)的FS,`和怎么樣搞到? |
|
| 24樓: | >>參與討論 |
| 作者: zenist 于 2006/5/28 23:36:00 發(fā)布:
T-->eleven11 請(qǐng)教如何購(gòu)買商業(yè)FS?價(jià)格如何? |
|
| 25樓: | >>參與討論 |
| 作者: liwenz 于 2006/5/29 9:40:00 發(fā)布:
我用zlg-fs寫過(guò)幾m的文件,沒(méi)看到問(wèn)題 但我沒(méi)有測(cè)試過(guò)速度,估計(jì)你那么高的速度是達(dá)不到的,400kbit/s這是串口的速度 |
|
| 26樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/29 10:16:00 發(fā)布:
商業(yè)版本都很貴的 而且api也都不多,每ms向sd寫4字節(jié)?好像不可能,又不是ram,而且也不能一次寫4字節(jié) |
|
| 27樓: | >>參與討論 |
| 作者: zenist 于 2006/5/30 16:07:00 發(fā)布:
樓上 請(qǐng)教如何購(gòu)買其他的商業(yè)FS?價(jià)格如何? |
|
| 28樓: | >>參與討論 |
| 作者: eleven11 于 2006/5/31 7:45:00 發(fā)布:
賣這個(gè)的很多啊 http://embedon.com/soft.asp#2 http://www.bhrtos.com/ 不過(guò)就算他說(shuō)開源了也沒(méi)用,又沒(méi)有給你設(shè)計(jì)文檔,基本沒(méi)能力修改的,如果想定制還的找他付錢,所以要需要自己的功能最還還是選擇zlgfs,畢竟設(shè)計(jì)文檔給你了, |
|
| 29樓: | >>參與討論 |
| 作者: zenist 于 2006/6/3 21:24:00 發(fā)布:
問(wèn)題解決的差不多了,謝謝各位指點(diǎn) 實(shí)測(cè)速度(寫入): 1.Camon卡(32MB) 200KB/S; 2.TOSHIBA(16MB) 22KB/S. 估計(jì)是卡的速度的問(wèn)題,前者是剛買相機(jī)帶的卡,前者比較老. |
|
| 30樓: | >>參與討論 |
| 作者: zenist 于 2006/6/3 21:31:00 發(fā)布:
心得 使用ZLG/FS,要注意Cache的使用,除了FileWrite()之外,其他的沒(méi)有必要改動(dòng),就是要注意使用. 對(duì)各個(gè)函數(shù)改動(dòng)Cache特別注意,適時(shí)回寫. |
|
| 31樓: | >>參與討論 |
| 作者: eleven11 于 2006/6/4 17:07:00 發(fā)布:
別忘了改bug 好像有幾處bug |
|
| 32樓: | >>參與討論 |
| 作者: zenist 于 2006/6/5 9:48:00 發(fā)布:
Thanks to eleven11 for your Email! shu ru fa huai le ! |
|
| 33樓: | >>參與討論 |
| 作者: zenist 于 2006/6/5 9:59:00 發(fā)布:
Bug? (怪,輸入法字庫(kù)丟了,多虧備份了) 什么Bug?你給我的程序,還是ZLG/FS的Bug? 不過(guò),ZLG/FS確實(shí)有Bug, --->為了方便大家使用,少走彎路(我的彎路不少阿)-->建議把Bug總結(jié)一下-->` ==>>最好是ZLG的技術(shù)支持給貼出來(lái) ===>>>小弟代與我同樣遭遇的叩謝先! |
|
| 34樓: | >>參與討論 |
| 作者: liwenz 于 2006/6/5 10:13:00 發(fā)布:
我好想弄清楚zlg/fs的cache 你們說(shuō)要貼出bug ==>>最好是ZLG的技術(shù)支持給貼出來(lái)??? 我估計(jì)是不會(huì)的,zenist你不妨先貼出來(lái) 有些其實(shí)不是bug,只是沒(méi)弄懂。 我做的系統(tǒng),只是一次寫/讀一個(gè)文件 當(dāng)然,fat表肯定要cache,但其他不要 該怎么做? 1 sector or cluster 1個(gè)扇區(qū)還是1族 我對(duì)ram很緊張,所以想只1個(gè)sector,512bytes,可以嗎? |
|
| 35樓: | >>參與討論 |
| 作者: zenist 于 2006/6/5 17:43:00 發(fā)布:
TO==>>liwenz 因?yàn)樵谖业膽?yīng)用中只要求寫入數(shù)據(jù),其他的不需要,我改寫了FileWrite(),FileClose(). *********************************** ** 函數(shù)名稱: FileWriteSD ** 功能描述: 寫一個(gè)扇區(qū)到文件 ** ** 輸 入: src:要寫的數(shù)據(jù) ** Handle:文件句柄 ** 輸 出: RETURN_OK:成功 ** 其它參考fat.h中關(guān)于返回值的說(shuō)明 ** 全局變量: 無(wú) ** 調(diào)用模塊: 無(wú) ** ** 作 者: xuzhenqiu ** 日 期: 2006年5月27日 ********************************************************************************************************/ uint8 FileWriteSD(void *src,HANDLE Handle) { uint32 i,j,SecIndex; MY_FILE *fp; Disk_Info *DiskInfo; uint8 Rt; Disk_RW_Parameter Pa; uint8 *TEMP; TEMP = (uint8 *)src; Rt = PARAMETER_ERR; fp = FileInfo + Handle; if (Handle >= 0 && Handle < MAX_OPEN_FILES) /* Handle是否有效 */ if (((fp->Flags) & FILE_FLAGS_WRITE) != 0) /* 對(duì)應(yīng)的打開文件信息表是否已使用 */ { Rt = FILE_EOF; if (fp->Offset <= fp->FileSize) { Rt = NOT_FIND_DISK; /* 獲取文件所在邏輯盤信息 */ DiskInfo = GetDiskInfo(fp->Drive); if (DiskInfo != NULL) { /* 調(diào)整文件指針 */ j = (fp->Offset) % (DiskInfo->SecPerClus * DiskInfo->BytsPerSec); if (j == 0) { if (fp->Offset < fp->FileSize) { fp->Clus = FATGetNextClus(fp->Drive, fp->Clus); } else { i = FATAddClus(fp->Drive, fp->Clus); if (i >= BAD_CLUS) { return DISK_FULL; } fp->Clus = i; if (fp->FstClus == EMPTY_CLUS) { fp->FstClus = i; } } } /* 計(jì)算數(shù)據(jù)所在扇區(qū) */ i = j / DiskInfo->BytsPerSec; j = j % DiskInfo->BytsPerSec; SecIndex = (fp->Clus - 2) * DiskInfo->SecPerClus + DiskInfo->DataStartSec + i; Rt = SECTOR_READ_ERR; /* 調(diào)整打開文件信息表 */ fp->Offset += 512; if (fp->Offset > fp->FileSize) { fp->FileSize = fp->Offset; } //存儲(chǔ)數(shù)據(jù) if(DiskInfo->DiakCommand != NULL) { Pa.Drive = DiskInfo->Drive; Pa.SectorIndex = SecIndex; &nb |
|
| 36樓: | >>參與討論 |
| 作者: zenist 于 2006/6/5 17:57:00 發(fā)布:
可以 在上面的這個(gè)函數(shù)里就是直接對(duì)SD卡操作,以為我在系統(tǒng)中只是寫數(shù)據(jù). 1個(gè)Cache也可以,主要是在FS內(nèi)部操作FAT,FDT時(shí)使用. 看過(guò)ZLG/FS的代碼就知道,GetCache()在分配Cache時(shí),如果沒(méi)有空閑的Cache,就會(huì)把當(dāng)前Cache回寫的.所以說(shuō),1個(gè)Cache(Sector)是可以的,只是效率不高. 注意,對(duì)文件操作完畢,調(diào)用FileClose()后,如果文件的大小變了,是需要回寫的. 還是那句話,注意適時(shí)回寫,這要靠你仔細(xì)分析FS的代碼了.(我是實(shí)在沒(méi)招了,才這樣的) |
|
| 37樓: | >>參與討論 |
| 作者: liwenz 于 2006/6/6 10:25:00 發(fā)布:
謝謝,不過(guò)我專注于read |
|
| 38樓: | >>參與討論 |
| 作者: zenist 于 2006/6/8 22:40:00 發(fā)布:
都差不多 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |