DSP BIOS實時作業系統介紹

2021-06-19 21:15:15 字數 2942 閱讀 5569

dsp/bios是乙個簡易的嵌入式作業系統,主要是為需要實時排程、同步以及主機-目標系統通訊和實時監測的應用而設計的。dsp/bios整合在ccs中,不需要額外的費用,但不提供原始碼,它是 ti公司倡導的 expressdsp 技術的重要組成部分。

dsp/bios本身只占用很少的資源,而且是可裁減的,它只把直接或間接呼叫的模組和api連線到目標檔案中,最多為6500字,因此在多數應用中是可以接受的。它提供底層的應用程式介面,支援系統實時分析、執行緒管理、呼叫軟體中斷、週期函式與後台執行函式(idel函式)以及外部硬體中斷與多種外設的管理。利用dsp/bios編寫**,借助ccs提供的多種分析與評估工具,如**執行時間統計、顯示輸出、各執行緒占用cpu的時間統計等,可以直觀地了解各部分**的執行開銷,高效地除錯實時應用程式,縮短軟體開發時間,而且dsp/bios是構建於已被證實為有效的技術之上的,建立的應用程式穩定性好,軟體標準化程度高,可重複使用,這也減少了軟體的維護費用。 

dsp/bios元件由以下3部分組成: 

1. dsp/bios實時多工核心與api函式 

使用dsp/bios開發程式主要就是通過呼叫dsp/bios實時庫中的api(應用程式介面)函式來實現的。所有api都提供c語言程式呼叫介面,只要遵從c語言的呼叫約定,彙編**也可以呼叫dsp/bios api。dsp/bios api被分為多個模組,根據應用程式模組的配置和使用情況的不同,dsp/bios api函式**長度從500字到6500字不等。ccs for c6000 v2。2提供的dsp/bios主要的api模組包括以下幾種:clk模組、hst模組、hwi模組、idl模組、log模組、mem模組、pip模組、prd模組、rtdx模組、sts模組、swi模組、dec模組、sio模組、mbx模組、que模組與sem模組。各模組的具體使用方法見參考文獻[5,8]。 

2. sp/bios配置工具 

基於dsp/bios的程式都需要乙個dsp/bios的配置檔案,其擴充套件名為.cdb。dsp/bios配置工具有乙個類似windows資源管理器的介面,它主要有兩個功能: 

* 在執行時設定dsp/bios庫使用的一系列引數; 

* 靜態建立被dsp應用程式呼叫的dsp/bios api函式所使用的執行物件,這些物件包括軟體中斷、任務、週期函式及事件日誌等。 

3. dsp/bios實時分析工具 

dsp/bios分析工具可以輔助ccs環境實現程式的實時除錯,以視覺化的方式觀察程式的效能,並且不影響應用程式的執行。通過ccs下的dsp/bios工具控制面板可以選擇多個實時分析工具,包括cpu負荷圖、程式模組執行狀態圖、主機通道控制、資訊顯示視窗、狀態統計視窗等。與傳統的除錯方法不同的是,程式的實時分析要求在目標處理器上執行監測**,使dsp/bios的api和物件可以自動監測目標處理器,實時採集資訊並通過ccs分析工具上傳到主機。實時分析包括:程式跟蹤、效能監測和檔案服務等。 

三 基於dsp/bios的程式開發 

基於dsp/bios的程式開發是互動式的可反覆的開發模式[參考文獻6、7、8],開發者可以方便地修改執行緒的優先順序和型別,首先生成基本框架,新增演算法之前給程式加上乙個**的運算負荷進行測試,看是否滿足時序要求,然後再新增具體的演算法實現**。 

使用dsp/bios開發軟體需要注意兩點: 

* 所有與硬體相關的操作都需要借助dsp/bios本身提供的函式完成,開發者要避免直接控制硬體資源,如定時器、dma控制器、串列埠、中斷等; 

* 基於dsp/bios的程式執行與傳統的程式有所不同,傳統編寫的dsp程式完全控制dsp,程式依次執行,而基於dsp/bios的程式,由dsp/bios程式控制dsp,使用者程式不是順序執行,而是在dsp/bios的排程下按任務、中斷的優先順序等待執行。 

1. 基於dsp/bios的程式開發流程 

下面以數字影象邊緣檢測(採用sobel演算法)為例,具體分析一下dsp/bios程式的編寫流程,程式的流程圖見圖2。 

基於dsp/bios的程式開發流程一般包括以下幾個步驟: 

* 儲存配置檔案,儲存配置檔案時,配置工具自動生成匹配當前配置的彙編原始檔和標頭檔案以及乙個連線命令檔案。 

* 為應用程式編寫乙個框架,可以使用c、組合語言或c與彙編的混合語言來程式設計,由於目前c++的編譯效率還比較低,在數字影象處理應用中一般不採用c++程式設計。在ccs環境下編譯並連線程式,新增program.cdb和programcfg.cmd到專案工程檔案中,其他的檔案自動連線進應用程式。如果使用者想使用自己的連線命令檔案,則需要在自己的命令檔案的第一行包含語句「-l programcfg.cmd」。 

* 使用**器和dsp/bios分析工具來測試應用程式,本程式中使用xds510pp並口**器通過jteg口連線dm642 evm與pc機進行除錯; 

* 重複上述步驟直至程式執行正確。 

在實際產品開發過程中,當正式產品硬體開發好後,修改配置檔案來支援產品硬體並測試。 

2. dsp/bios程式的啟動過程 

dsp/bios的啟動過程包括以下幾步: 

* 初始化dsp:復位中斷向量指向c_int00位址,dsp/bios程式從入口點c_int00開始執行。對c6000,初試化堆疊指標(b15)和全域性頁指標(b14)分別指向堆疊底部與.bss段的開始,控制暫存器amr、ier和csr也被初始化; 

* 用.cinit段中的記錄來初始化.bss段; 

* 呼叫bios_init初始化dsp/bios模組:bios_init執行基本的模組初始化,然後呼叫mod_init巨集分別初始化每個用到的模組; 

* 處理.pinit表:.pinit表包含了初始化函式的指標; 

* 呼叫應用程式main函式:在所有dsp/bios模組初始化之後,呼叫main函式。由圖2可以看到,本程式在main函式中新增了必要的初始化**。main函式初始化之後cpu的控制權交給dsp/bios。需注意,main函式中一定不能存在無限迴圈,否則整個dsp/bios程式將癱瘓; 

* 呼叫bios_start啟動dsp/bios:bios_start函式是由配置工具產生的,包含在programcfg.s62檔案中,它負責使能dsp/bios模組並為每個用到的模組呼叫mod_startup巨集使其開始工作。 

C OS實時作業系統簡單介紹

c os ii c os ii實時多工作業系統核心。它被廣泛應用於微處理器 微控制器和數字訊號處理器。c os ii 的前身是 c os,最早出自於1992年美國嵌入式系統專家jean j.labrosse 在 嵌入式系統程式設計 雜誌的5月和6月刊上刊登的文章 並把 c os 的原始碼發布在該雜誌...

實時作業系統

所謂 實時作業系統 實際上是指作業系統工作時,其各種資源可以根據需要隨時進行動態分配。由於各種資源可以進行動態分配,因此其處理事務的能力較強 速度較快。無論什麼控制系統一旦弄上 實時 兩個字就是對響應時間有嚴格的要求。實時作業系統貴在實時,要求在規定的時間內完成某種操作。主要用在工業控制中,實時作業...

實時作業系統 RTOS 和非實時作業系統

對於實時作業系統 rtos 和非實時作業系統,你能分別列舉出來多少?實時作業系統 ucos vxworks rtlinux 非實時作業系統 linux windows osx 我也只能列舉出來這麼多了。重點不在這裡,重點在於他們之間的區別,詳見下圖 在上面的圖中右邊的任務優先順序高於左邊的任務,先看...