多核DSP C6678 SRIO藉口除錯筆記

2021-08-02 15:32:42 字數 661 閱讀 4441

首先,感謝ti論壇提供的srio程式範例,但是其硬體平台是evm板,更多的只能用於loopback測試,但是可以在其基礎上修改。

1.初始化dsp的srio,主要是對serdes進行配置,然後是lane和speed的配置,最後需要等待fpga的link建立,我們在建立時候碰到一點困難,每次建立並不都是4x,一直沒有找到問題,我們使用了乙個別的辦法來保證link為4x。

2.資料傳送,dsp上提供的資料傳送方法主要有兩種,directio和message,主要區別為directio需要tx和rx雙方知道位址對映關係,而message是通過message中mail資訊得到資料需要儲存的位址,我們使用的為directio方法,6678上提供了8組lsu來進行directio資料傳送,每個lsu有6個暫存器,當5th暫存器寫完後,資料會傳送出去,第6個暫存器主要用於檢測當前的lsu狀態。lsu還有16(32)個影子暫存器

3.swrite/nwrite/nread:對dsp來說,初始化完srio後,fpga便可以通過srio來傳送資料,但是要注意,designer並不知道什麼時候fpga會傳送資料,所以通常會先傳送乙個doorbell資訊來告知dsp,fpga要傳送資料了,doorbell可以觸發中斷,對於nread來說,fpga傳送這個命令後,dsp會自動的將請求的資料傳送出去,designer也並不知道資料傳送出去,這些都需要doorbell來支援。

6678 多核啟動

6678多核載入啟動實現主要是通過0核完成。具體實現是dsp上電通過i2c,spi,emif等介面將應用程式載入到核心0執行,然後在核心0執行 裡實現另外7個核的啟動位址指定和傳送ipc中斷喚醒其餘7核。啟動實現詳見如下 1 暫存器定義 corepac0 7 ipc 觸發暫存器 ipcgrx def...

DSP C6678 SRIO介面除錯

設計的板子到了srio除錯階段了,在板子上,一片v6和兩片6678通過4xsrio互聯,中間沒有switch,總算搞定了相互之間的通訊。首先,感謝ti論壇提供的srio程式範例,但是其硬體平台是evm板,更多的只能用於loopback測試,但是可以在其基礎上修改。1.初始化dsp的srio,主要是對...

C6678多核DSP CMD檔案介紹

cmd檔案編寫 cmd 鏈結器配置檔案,存放鏈結器的配置資訊,cmd檔案使開發者可以通過自己定義的儲存器模組來配置系統儲存器,說白點也就是cmd是用來分配rom和ram空間用的,告訴鏈結程式怎樣計算位址和分配空間。memory命令 描述系統實際的硬體資源 section命令 描述 段 如何定位 其中...