ccs編譯器怎麼寫函數說明
❶ dsp2812 的ccs 編程中主函數里的這條語句 for(;;) { } 的作用是什麼不寫這句會有什麼影響
這是個死循環,意思是讓程序不斷運行。如果沒有這個死循環,程序運行到main函數的「}」處,程序就會運行結束。
❷ 用ccs中的gel文件里的函數怎麼用
CCS的GEL語言是一種互動式的命令,它是解釋執行的,即不能被編譯成可執行文件。它的作用在於擴展了CCS Studio的功能,可以用gel來調用一些菜單命令,對DSP的存儲器進行初始化配置等。 對於不同型號的DSP,我們應選擇相對應的GEL文件。
當CCS
Studio啟動時,GEL文件載入到PC機的內存中,如果定義了StartUp()函數則執行該函數在CCS
Studio(V2.3或更低的版本中),主機和目標板的初始化工作都在Startup()函數中執行。但是對於支持Connect
/Disconnect的CCS Studio(V2.4或之後的版本,比如3.1版本,3.3版本),GEL文件可能並沒有正確的執行。因為CCS
Studio啟動時和目標處理器之間的連接是斷開的,當Startup()函數試圖訪問目標處理器時會出錯。因此,V2.4或之後的版本,當CCS啟動
時,用一個新的回調函數OnTargetConnect()來執行目標處理器的初始化工作。
對於支持connect/disconnect的CCS環境,Startup()函數中盡量避免Get_Reset()、
GEL_BreakPtAdd()、GEL_TextOUT()和GET_OpenWindow(),因為StartUp()執行時CCSStudio的
任何控制窗口還沒有打開。
我們對兩種不同的gel文件進行對比,讓大家更容易理解。
不支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函數:
StartUp()
{
setup_memory_map();
GEL_Reset(); /* Do not call in StartUp() with CCStudio v2.4 or higher */
init_emif(); /* Do not call in StartUp() with CCStudio v2.4 or higher */
}
支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函數:
StartUp()
{
setup_memory_map();
}
OnTargetConnect()函數在每一次和目標處理器建立連接時都被調用。進行絕對最小的系統初始化處理,保證CCSStudio在目標處
理器上處於一種可信賴的狀態例如:禁止看門狗時鍾、DSP復位結束。
對於某些平台,調用GEL_Reset()函數可使CCSStudio處於一種Good狀態,可以通過測試來確定是否需要調用。
我們可看出後一種僅建立了存儲映射。其他初始化dsp的工作交給了OnTargetConnect()函數去完成。下面我們以6437為例,gel的源碼如下:
StartUp( )
{
Setup_Memory_Map( );
}
OnTargetConnect( )
{
Setup_Cache( );
Setup_Pin_Mux( ); // Setup Pin Mux
Setup_Psc_All_On( ); // Setup Power Domains
Setup_PLL0_594_MHz_OscIn( ); // Setup Pll1 [DSP @ 594 MHz][Core 1.20V]
Setup_PLL1_DDR_135_MHz_OscIn();
Setup_Aemif_8Bit_Bus( ); // Setup Async-EMIF [8-bit bus]
}
注意:GEL文件在CCS啟動後常駐內存,在模擬器和目標系統上電的時候起到初始DSP的作用。在上電後再改變GEL文件將不會對DSP產生影響。