專案過程中的關於dsp晶元中斷的一些經驗終結:
首先,dsp晶元的csl(片上支援庫)api函式提供了對cpu中斷的管理模組irq,
我們在做turbo編譯碼模組的專案中,在對硬體中斷進行初始化的過程中,使用了irq模組
我對其中的某幾個函式簡要分析一下,
irq_setvecs();//功能:設定中斷向量表的基位址
irq_nmienable();//功能:使能不可遮蔽中斷,不可遮蔽中斷主要是一些比較嚴重的中斷
//如掉電;
irq_map();//功能:將外設的具體中斷中斷事件和該外設相應的中斷選擇號進行繫結,中斷
//選擇號的具體定義可在ti提供的標頭檔案csl_irq.h中查詢
比如我們這個專案用到了edma外設和tcp外設的中斷事件,在使能外設中斷之前,切忌開啟全域性中斷,
不然會沒反應;
dsp在乙個有多種外界非同步事件的環境中工作,因此響應外部中斷事件十分重要,中斷服務的過程包括
儲存當前處理現場,完成中斷任務,恢復各暫存器和現場,返回繼續執行被暫時中斷的程式。
另外,每個dsp晶元的外設的csl模組基本都有api函式,巨集和結構體,巨集可以對該模組的暫存器進行設定,比如mcbsp和edma外設的暫存器設定,api函式可以完成對外設的一些操作,因此在做dsp軟體開發時,熟悉csl技術文件相當重要,呵呵
DSP記憶體管理配置 1
動態分配 dsp中有兩個動態分配的函式 malloc 如果分配成功則返回指向被分配記憶體的指標 此儲存區中的初始值不確定 否則返回空指標null。當記憶體不再使用時,應使用free 函式將記憶體塊釋放。函式返回的指標一定要適當對齊,使其可以用於任何資料物件。calloc 如果呼叫成功,函式mallo...
利用user case管理開發
最近在帶領乙個小組進行乙個系統的開發,由於人手比較緊張,所以系統的架構 設計自己都要做,自然少了很多和成員溝通的地方。要知道,如果管理崗位如果具體做某件事情是很致命的,比如乙個架構師還要負責某個業務模組的開發,但現實就是這樣。為了保證良好的溝通效果與進度控制,除了要認真地制訂出切實執行的計畫外,在工...
利用ACE管理執行緒
我所接觸的ace中對執行緒操作的類主要有兩個,乙個是ace thread,另乙個為ace thread manager ace thread能夠管理所有執行緒,只要你掌握有需要被管理的執行緒的id ace thread manager的乙個物件能夠管理該物件所建立的執行緒。建立乙個執行緒的函式有 通...