經過一個半月的努力,終于調通了七大借口:1、Mcbsp+EDMA3,2、SPI+EDMA3,3、UART+EDMA,4、UPP+EDMA3, 5、EMIF+NANDFLASH, 6、 NET。涉及到dsp,FPGA,單片機。有些注意的問題:
一、BIOS
在Dsp的程序設計時,注意BIOS的配置,這個會影響到HW中斷的使用。
二、edma3
一般就用同步事件來同步,如果數據傳輸是變長的,則可以用外部中斷,在中斷內,用讀取edma的狀態函數,讀出這時的BCNT的值,那么傳輸完的個數就是原來的(bcnt-BCNT),如果是定長的傳輸,那么就用edma傳輸完成中斷,注意每個edma都會進入同一個中斷函數,讀取int或者inth來判斷這個中斷函數是響應哪一個edma的完成。
如果要多次發送同一個edma,要每次都要重新配置edma的參數,不然的話,edma一旦被清理了后就不會再有參數了,無法進行下一次的傳輸。
三、文檔
對每一個接口進行編程時,一定要仔細閱讀文檔,按照文檔的來做。
四、內存
對L1、L2‘DDR3,edma的目標地址不要去直接用它,內存會保護,edma傳輸會失敗,對ddr3要對其初始化。對目的內存操作,最好用memcpy,拷到其他的內存再操作。
五、程序
能用中斷時,盡量不要用輪詢的方式,不然CPU會對其他的操作不能做出及時的響應。程序簡潔,效率高。
六、延時
延時在連續傳輸,連續啟動,while(1),都不能忽視,在DSP中斷點處,edma是能繼續傳輸的,在單片機時,cpu和edma可以同時停住。
七、nand flash
用FPGA配置nand時,其實就是狀態機的書寫。
八、仿真器
接不上ccs,可能是由于沒有共地。
|