引言
現(xiàn)在,由于復(fù)雜的硬件功能已經(jīng)集成到標(biāo)準(zhǔn)集成電路中,系統(tǒng)開發(fā)人員首先應(yīng)該知道如何選擇合適的芯片,然后基于此硬件結(jié)構(gòu)設(shè)計(jì)軟件。系統(tǒng)設(shè)計(jì)者有兩種選擇:使用專用集成電路或可編程DSP實(shí)現(xiàn)信號(hào)處理。相比之下,可編程DSP有兩個(gè)優(yōu)點(diǎn):
可擴(kuò)充性:設(shè)計(jì)者可以根據(jù)要求的處理效率,和需要的資源來(lái)量體選用DSP及所需的片數(shù)。
可升級(jí)性:將硬件的升級(jí)轉(zhuǎn)化成比較容易升級(jí)的軟件改動(dòng)。
使用可編程DSP時(shí),必須對(duì)芯片的各種資源(例如CPU,存儲(chǔ)區(qū),外設(shè)等)加以管理規(guī)劃,通過DSP/BIOS可以輕松的完成這些工作。
TI公司TMS320C5000系列都帶有嵌入式DSP/BIOS,它有很強(qiáng)的實(shí)時(shí)分析和任務(wù)實(shí)時(shí)管理能力,可以有效的提高項(xiàng)目的開發(fā)效率,尤其表現(xiàn)在需要實(shí)時(shí)多任務(wù)的大型系統(tǒng)中。圖1為DSP/BIOS的部件結(jié)構(gòu)。
DSP/BIOS II簡(jiǎn)述
TI公司的DSP/BIOS II 是在DSP/BIOS I 基礎(chǔ)上的擴(kuò)展。它支持更多的軟件模塊,通過修改內(nèi)核提供搶先式多任務(wù)服務(wù);它把傳統(tǒng)并行處理系統(tǒng)的內(nèi)核服務(wù)集成為可測(cè)試內(nèi)核;它增加了設(shè)備獨(dú)立的I/O數(shù)據(jù)流模型,繼續(xù)保留已有的數(shù)據(jù)管道;它增加了動(dòng)態(tài)內(nèi)存分配與內(nèi)存管理。
TI的開發(fā)平臺(tái)CCS IDE 2.0中集成了DSP/BIOS II,可以對(duì)程序進(jìn)行實(shí)時(shí)跟蹤與分析,提高應(yīng)用程序開發(fā)的可靠性。可以在CCS插件中實(shí)時(shí)觀察DSP/BIOS內(nèi)核中各線程的執(zhí)行狀態(tài)與對(duì)象的當(dāng)前屬性。通過設(shè)置工具,開發(fā)者可以對(duì)各個(gè)模塊實(shí)行配置。
DSP/BIOS II 核心API技術(shù)
目標(biāo)應(yīng)用程序通過調(diào)用DSP/BIOS II的API來(lái)獲得運(yùn)行時(shí)的服務(wù)。一個(gè)單個(gè)DSP/BIOS II 模塊可以管理多種類的內(nèi)核對(duì)象,并且依據(jù)全局參量的設(shè)定來(lái)控制整個(gè)行為。DSP/BIOS II 可以歸納為六大種類:
內(nèi)核執(zhí)行線程
圖1 DSP/BIOS 部件結(jié)構(gòu)圖
圖2 線程優(yōu)先級(jí)示意圖
圖3 數(shù)據(jù)流示意圖
圖4 數(shù)據(jù)管道示意圖
DSP/BIOS II提供四類不同的執(zhí)行線程。每一類線程又具有不同的執(zhí)行、搶先和懸掛特性。DSP/BIOS II 支持兩個(gè)高優(yōu)先級(jí)的中斷線程和事先備好的后臺(tái)空閑過程循環(huán)。內(nèi)核執(zhí)行線程通過HWI, SWI和IDL模塊進(jìn)行管理。另外,DSP/BIOS II新提供了多任務(wù)線程類,能較好的完成任務(wù)間的同步,它由TSK模塊管理,在任何執(zhí)行時(shí)刻為懸掛和恢復(fù)執(zhí)行同步,包括調(diào)整自身或其他任務(wù)的優(yōu)先級(jí)。這種同步化的任務(wù)給并發(fā)系統(tǒng)設(shè)計(jì)提供了良好的基礎(chǔ)。
硬件抽象
DSP/BIOS II 提供硬件的邏輯接口。它獨(dú)立于硬件實(shí)現(xiàn)。它對(duì)硬件部分的訪問、配置,內(nèi)存映射、片內(nèi)定時(shí)器和硬件中斷等進(jìn)行抽象,簡(jiǎn)化了應(yīng)用的移植。它通過可視化的設(shè)置工具定義內(nèi)存映射、中斷向量表,對(duì)定時(shí)器編程,和完成動(dòng)態(tài)的內(nèi)存分配與釋放。
設(shè)備獨(dú)立I/O
設(shè)備獨(dú)立I/O模塊執(zhí)行數(shù)據(jù)傳輸服務(wù),傳輸可以在DSP與外設(shè)之間和多線程之間進(jìn)行。DSP/BIOS II 支持?jǐn)?shù)據(jù)管道(pipe)和數(shù)據(jù)流(stream)兩種傳送方式。數(shù)據(jù)管道是在讀寫線程之間快速傳送數(shù)據(jù)的小型統(tǒng)一部件。數(shù)據(jù)流為緩沖方案增加了靈活性使之適應(yīng)更廣的需求。數(shù)據(jù)流依靠多個(gè)潛在的設(shè)備驅(qū)動(dòng)器,這種設(shè)備驅(qū)動(dòng)器封裝了設(shè)備獨(dú)立的屬性與方法。在數(shù)據(jù)通過堆疊(stacking)機(jī)制傳送時(shí),設(shè)備驅(qū)動(dòng)器能夠執(zhí)行數(shù)據(jù)處理操作,驅(qū)動(dòng)器在數(shù)據(jù)通道中實(shí)行流水線處理。PIP和SIO模塊分別管理目標(biāo)應(yīng)用中的數(shù)據(jù)管道和流的傳送服務(wù)。SIO同DEV模塊結(jié)合,使DEV通過SIO發(fā)送和接收數(shù)據(jù)。
線程間的通信和同步
DSP/BIOS II 中的線程間通信和同步模塊支持多任務(wù)。信號(hào)量(semaphores)是最主要的同步方式。任務(wù)運(yùn)用信號(hào)量保持同步資源訪問的同步。訪問外設(shè)的數(shù)據(jù)緩沖區(qū),以及訪問共享存儲(chǔ)區(qū)都是資源同步的典型事例。信號(hào)量還控制著多任務(wù)執(zhí)行的同步。信號(hào)量由SEM模塊管理,而LCK模塊提供共享資源的判優(yōu)和互斥。數(shù)據(jù)隊(duì)列可用于線程間通信。郵箱(mailbox)類似于數(shù)據(jù)隊(duì)列,能夠理想的完成任務(wù)通信。數(shù)據(jù)隊(duì)列由QUE模塊管理,郵箱模塊由MBX管理。
實(shí)時(shí)分析
實(shí)時(shí)分析(TRA)模塊在應(yīng)用程序執(zhí)行期間與DSP項(xiàng)目實(shí)時(shí)交互和診斷。LOG,STS和TRC模塊對(duì)這些功能進(jìn)行管理。主機(jī)與目標(biāo)板之間的數(shù)據(jù)傳輸能力對(duì)實(shí)施分析是非常關(guān)鍵的。DSP/BIOS提供HST和RTDX模塊來(lái)管理這些功能。CCS IDE中提供了以下六種實(shí)時(shí)分析工具:
—CPU負(fù)載圖
負(fù)載圖提供的是目標(biāo)CPU的負(fù)載曲線。CPU負(fù)載的定義是除去執(zhí)行最低優(yōu)先級(jí)任務(wù)以外的時(shí)間量。最低優(yōu)先級(jí)任務(wù)是只在其他線程都不運(yùn)行時(shí)才執(zhí)行的任務(wù)。因此,CPU負(fù)載包括從目標(biāo)向主機(jī)傳送數(shù)據(jù)和執(zhí)行附加后臺(tái)任務(wù)所需的時(shí)間。
——執(zhí)行圖示
在執(zhí)行圖示窗口中,我們可以看到各個(gè)線程的活動(dòng)方式。執(zhí)行圖的刷新速率可以通過RTA控制版設(shè)定。圖形中還包括了信號(hào)量的活動(dòng),周期性函數(shù)標(biāo)記(tick),和時(shí)鐘模塊標(biāo)記。執(zhí)行圖示能從整體上看到項(xiàng)目所有線程的活動(dòng)狀態(tài)。
——主機(jī)通道控制
利用信道控制窗口可以把文件綁定在定義的主機(jī)通道上,啟動(dòng)信道上的數(shù)據(jù)傳輸以及監(jiān)測(cè)數(shù)據(jù)傳輸流量。
——信息記錄
選定某一記錄名,從此窗口可看到程序運(yùn)行的信息記錄。主機(jī)從目標(biāo)板獲取DSP/BIOS數(shù)據(jù)期間的記錄信息將顯示在此窗口中。開發(fā)者定義的記錄信息也顯示在窗口中。
——統(tǒng)計(jì)觀察
統(tǒng)計(jì)觀察窗可以計(jì)算出事件、變量出現(xiàn)的次數(shù),給出其最大值,最小值和平均值,監(jiān)測(cè)定時(shí)時(shí)間和變量的增值的實(shí)際值和期望值差。
——實(shí)時(shí)控制面板
它對(duì)運(yùn)行時(shí)間中不同類型進(jìn)行追蹤控制,在默認(rèn)情況下,所有類型的跟蹤都是允許的。為跟蹤任意一種類型,必須使能全局主機(jī)(GLOBAL HOST)。通過實(shí)時(shí)改變控制版的屬性,還可以設(shè)定實(shí)時(shí)分析工具的刷新頻率。