我的一點(diǎn)經(jīng)驗(yàn)
首先是整個(gè)系統(tǒng)的設(shè)計(jì),大多數(shù)的應(yīng)用應(yīng)該都是包括電源,外部ram,flash,dsp,外部IO芯片看門狗,晶振這幾個(gè)部分。
電源芯片的選擇要看整個(gè)設(shè)計(jì)中需要幾種電源,整個(gè)系統(tǒng)的功耗要大致計(jì)算一下,同時(shí)還要區(qū)分模擬電源與數(shù)字電源,我用了兩個(gè)LM1085分別作為數(shù)字電源和模擬電源,dsp的電源用了一個(gè)tps318。
ram,flash,IO芯片的連接按照地址總線和數(shù)據(jù)總線連接好就可以了,它們的片選和讀寫線接到cpld上面,根據(jù)dsp芯片的程序空間與地址空間的劃分分配好flash,ram的映射關(guān)系。這個(gè)空間的劃分會體現(xiàn)在硬件的連線上,cpld控制的片選,讀寫邏輯實(shí)現(xiàn),以及dsp編程中的memorymap中。
MP/MC的接法:
剛開始做的時(shí)候,我把MP/MC接地了,有的人告訴我說要?jiǎng)澗€了,應(yīng)該做成跳線。幸虧我后來試了一下,發(fā)現(xiàn)還是可以調(diào)試的。我感覺MP/MC接高接低,影響的是系統(tǒng)的復(fù)位,如果接低,復(fù)位時(shí)要求bootload,調(diào)試時(shí)當(dāng)讓不可能成功,于是程序就會掛掉。但如果在調(diào)試程序中合適的加入喂狗操作或者暫時(shí)不接看門狗,調(diào)試應(yīng)該就沒有問題。如果MP/MC接高,復(fù)位時(shí)程序直接從程序區(qū)執(zhí)行,不進(jìn)行bootload,也沒問題。
flash的燒寫:
調(diào)試都完成了,最后一步就是將程序燒進(jìn)flash中,花了一周功夫終于搞定,呵呵,還是在別人寫的代碼基礎(chǔ)上,夠菜的了。我用的方法是將板上的程序和flash燒寫程序分別生成兩個(gè).out文件,先利用ccs的load programme,將板上程序load進(jìn)來,然后再load進(jìn)flash燒寫程序,兩個(gè)都load進(jìn)程序空間由于我的程序比較小,放在程序與數(shù)據(jù)區(qū)共享的dram區(qū)了,然后執(zhí)行flash燒寫程序,就可以將boot表寫進(jìn)flash中了。
還有一些小地方,比如flash要在bootload后從數(shù)據(jù)區(qū)去掉,我用的是xf管腳,上電默認(rèn)為高。bootload完畢我在程序起始的地方用軟件置其為低,就可以實(shí)現(xiàn)了,不知道還有沒有更好的方法。對于IO的操作,以及vectors.asm, cmd文件的編寫,我都是找個(gè)例子看,然后結(jié)合自己的程序改了一下。
感覺還是有進(jìn)步,但很多地方也還是沒有搞的特別清楚,說的不對的請大家指正,希望能和大家多交流!
如果需要我的程序或電路圖,可以聯(lián)系我。sr_sleeper@sohu.com