我用的375B控制U盤讀寫,沒(méi)有相應(yīng)單片機(jī)的軟件庫(kù)可用。所以自己寫的程序 在仿真器上選用12兆晶振或者用戶晶振(就是單片機(jī)板子上的,也是12兆的)運(yùn)行已經(jīng)正常(創(chuàng)建了幾百個(gè)文本文件), 但是燒上片子運(yùn)行就有如下問(wèn)題: 偶爾能成功創(chuàng)建文件(大概%20) 大多數(shù)時(shí)候失敗,并且把U盤插上計(jì)算機(jī)即顯示U盤損壞,或者未格式化 我換過(guò)屏蔽線,改變延時(shí)長(zhǎng)短。都沒(méi)用 經(jīng)檢查,問(wèn)題似乎出在按照LBA地址讀扇區(qū)子程序上 單純的讀寫數(shù)據(jù)口或者命令口沒(méi)有問(wèn)題 一旦執(zhí)行讀扇區(qū)子程序,U盤就多半會(huì)亂 并且我發(fā)現(xiàn)失敗同時(shí),讀出的那個(gè)扇區(qū)內(nèi)容也有錯(cuò)誤(比如FAT表。開(kāi)頭某位變成7F,而不是FF) 請(qǐng)教這是何故? 如何解決? 仿真環(huán)境和實(shí)際環(huán)境到底還有那些差異會(huì)導(dǎo)致失??? 希望幫幫我,我辛苦了大半年 如果不能最后完成,就一切都完了
這個(gè)可能是多方面的,主要有下面幾個(gè)區(qū)別: 1,延時(shí)問(wèn)題,仿真器的延時(shí)時(shí)間比較長(zhǎng),而芯片的延時(shí)相對(duì)來(lái)講會(huì)短點(diǎn)。 2,RAM的問(wèn)題,有的仿真器的RAM會(huì)很大,但是實(shí)際的芯片的RAM并沒(méi)有這么大,這個(gè)問(wèn)題還會(huì)延伸出一個(gè)問(wèn)題,那就是單片機(jī)堆棧的問(wèn)題。 3,時(shí)序問(wèn)題,你需要仔細(xì)檢查下仿真器和單片機(jī)跑的程序上面有什么不一樣。
延時(shí)的長(zhǎng)短我都改變過(guò) RAM大小在仿真器上我也是完全按照實(shí)際單片機(jī)大小出借的 我倒是覺(jué)得第三點(diǎn)極可能,可是比較時(shí)序要哪些硬件或者軟件工具? 請(qǐng)指教一下
時(shí)序的檢查只能是采用示波器來(lái)檢查了。沒(méi)什么其他好的軟件。
也是,謝謝了