|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | 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 |
直接用MCU或ARM去對(duì)CF卡讀寫,最快速率是多少?哪位做過的說一下 |
| 作者:xinglanp 欄目:ARM技術(shù) |
小弟最近在做帶存儲(chǔ)的板子,在S3C2510上加了個(gè)CF卡作為存儲(chǔ)器,用ARM的MEMORY線對(duì)CF卡讀寫,其他的什么都不做,只是對(duì)CF卡進(jìn)行寫操作,其速率最快只能達(dá)到953KByte/S。用的是CF卡的True IDE方式,使用PIO-4操作的。 不知道有哪位做過的大哥,指點(diǎn)一下,怎樣才能提高其速率,可不可以達(dá)到2MByte/S以上? |
| 2樓: | >>參與討論 |
| 作者: mmd2102 于 2006/8/1 20:14:00 發(fā)布:
2M?非9315了 想要2M/S,非9315了,用PCMCIA轉(zhuǎn)CF,能勉強(qiáng)達(dá)到這個(gè)要求,2510就不清楚了, |
|
| 3樓: | >>參與討論 |
| 作者: 平常人 于 2006/8/1 21:12:00 發(fā)布:
樓主用示波器看過波形嗎? 你用示波器看看,多數(shù)情況下應(yīng)能找到原因,而且可以知道是軟件的問題還是硬件的問題,然后再考慮是否要“洗刷刷”,否則你的口袋先要被洗空了,哈哈...... |
|
| 4樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/2 12:05:00 發(fā)布:
波形看過,也使用過移動(dòng)硬盤 ARM的MEMORY時(shí)序上定義的127.5ns(PIO-4的標(biāo)準(zhǔn)是120ns)上測出來的,即使改成120ns的讀寫周期,速率上提升很少。我用示波器也看過波形,如果按壓降50%算的話,mcs的下拉時(shí)間是127.5ns 左右。 我連續(xù)寫一個(gè)扇區(qū)時(shí),除了mcs的下拉外,中間還有被上拉的時(shí)間,初步判斷應(yīng)該是mcs的掛起時(shí)間,包括ARM這邊執(zhí)行指令的時(shí)間。我寫入一個(gè)扇區(qū),16位操作,使用的是for循環(huán)256次,F(xiàn)在使用的是仿真器運(yùn)行,如果改用燒錄代碼的方式,mcs掛起的時(shí)間會(huì)不會(huì)減少一些?(我是指ARM執(zhí)行for指令及轉(zhuǎn)移數(shù)據(jù)的指令) 還有我用移動(dòng)硬盤試過,使用同樣的程序,速率差不多。 不知道哪位知道,有沒有什么方法可以改善? |
|
| 5樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/2 19:32:00 發(fā)布:
哈哈,今天一同事用燒錄方式試了一下,速率差不多4MB/S,哈哈 |
|
| 6樓: | >>參與討論 |
| 作者: 平常人 于 2006/8/2 21:05:00 發(fā)布:
試試我的招 相信你現(xiàn)在用這個(gè)方法: for (i=0; i<256; i++) OUTPUT one word (2 bytes); 建議你稍微改一下: for (i=0; i<32; i++) { OUTPUT one work(2 bytes); // 1 OUTPUT one work(2 bytes); // 2 OUTPUT one work(2 bytes); // 3 OUTPUT one work(2 bytes); // 4 OUTPUT one work(2 bytes); // 5 OUTPUT one work(2 bytes); // 6 OUTPUT one work(2 bytes); // 7 OUTPUT one work(2 bytes); // 8 } 道理很簡單,ARM的跳轉(zhuǎn)指令要清空指令預(yù)取隊(duì)列,我的辦法大大地減少(224次)跳轉(zhuǎn),也許對(duì)提高你的速度有幫助。當(dāng)然,代碼略長。 |
|
| 7樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/3 11:43:00 發(fā)布:
哈哈,我使用的就是那個(gè)for 256次 之前調(diào)試讀寫穩(wěn)定性時(shí),主管建議過使用多條語句,不使用for,不過,后來我延長了一個(gè)時(shí)鐘后就穩(wěn)定了,所以沒有去測試這種方法的穩(wěn)定性及速率。 按照樓上說的那樣,有影響的話,真的應(yīng)該去試一下,不過目前使用燒錄代碼的方式,速率已經(jīng)達(dá)到要求了(真的用的時(shí)候,還是要進(jìn)行燒錄的),板子已經(jīng)告一段落了,哈哈,只好有空再進(jìn)行嘗試了。 再問一下,使用多條語句的方法,只是對(duì)仿真器環(huán)境下有影響,還是對(duì)燒錄代碼的情況下也有影響呢?(當(dāng)然,不管是什么答案,我都會(huì)試一下的) |
|
| 8樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/3 17:38:00 發(fā)布:
去掉了for,使用256條語句,速率達(dá)2.7MB/s 剛用個(gè)“平常人”的方法試了一下,不過不是for 32次,而是直接復(fù)制了256條單指令,哈哈,速率跑到了2.7MB/s。 用燒錄的方式,for 256次,速率還是跑到了3到4MB/s。 至于具體的原因所在,可能是在仿真器在編譯及執(zhí)行代碼時(shí)的問題吧,哈哈,具體就不是太清楚了,不知道有哪位高手可以說說? |
|
| 9樓: | >>參與討論 |
| 作者: 平常人 于 2006/8/3 17:55:00 發(fā)布:
恭喜樓主,我的辦法還真管用 猜測:仿真器跑得慢可能是它要在每條指令中多加一個(gè)時(shí)鐘周期,多加的時(shí)鐘周期用于內(nèi)部的操作。具體的要問你的芯片供應(yīng)商。 |
|
| 10樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/4 9:22:00 發(fā)布:
仿真器這東西,估計(jì)只是限于仿真功能實(shí)現(xiàn)了,具體還是要燒代碼跑 仿真器這東西還不是太熟,估計(jì)對(duì)于功能性的仿真比較有用,再進(jìn)一步的去測試性能,還是要把代碼燒進(jìn)去,讓它自己跑。 再次感謝樓上啦! |
|
| 11樓: | >>參與討論 |
| 作者: 浪淘沙 于 2006/8/4 10:03:00 發(fā)布:
ST的仿真器與芯片性能無差別 ST的仿真器是使用與所售芯片同時(shí)設(shè)計(jì)的專用仿真芯片,所有仿真功能都是用硬件邏輯實(shí)現(xiàn)的,在性能上尤其是運(yùn)行的時(shí)序上與真實(shí)的芯片沒有任何差別,邏輯上與真實(shí)芯片完全相同,電器特性上達(dá)到與真實(shí)芯片95%以上相同。 |
|
| 12樓: | >>參與討論 |
| 作者: xinglanp 于 2006/8/4 11:50:00 發(fā)布:
樓上說的是專用仿真器吧,我用的是西安傅立葉的,應(yīng)該是通用的 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |