第4章 C55x處理器的軟件設(shè)計(jì).ppt_第1頁
第4章 C55x處理器的軟件設(shè)計(jì).ppt_第2頁
第4章 C55x處理器的軟件設(shè)計(jì).ppt_第3頁
第4章 C55x處理器的軟件設(shè)計(jì).ppt_第4頁
第4章 C55x處理器的軟件設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘要:2020年8月2日,TMS320C55x DSP的原理及應(yīng)用,第1章,C55x處理器的軟件設(shè)計(jì),C55x系列處理器具有靈活的應(yīng)用和強(qiáng)大的處理能力,為開發(fā)和使用提供了良好的硬件平臺(tái)。為了使這個(gè)平臺(tái)發(fā)揮更好的作用,高效便捷的軟件設(shè)計(jì)是必不可少的。程序的主框架和實(shí)時(shí)性要求低的部分采用C/C語言,算法實(shí)現(xiàn)采用匯編語言,可以充分發(fā)揮兩者的優(yōu)勢(shì),解決可讀性和效率之間的矛盾。同時(shí),它也提高了軟件的可移植性。軟件移植時(shí),不需要改變程序的主框架,只需為處理器提供相應(yīng)的算法。本章主要介紹C55x處理器的基本程序結(jié)構(gòu)、C語言編程與優(yōu)化、C語言與匯編語言的混合編程以及通用目標(biāo)文件格式。最后,介紹了C55x處理器

2、的數(shù)字信號(hào)處理庫、圖像和視頻處理庫。2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第4章,C55x處理器的軟件設(shè)計(jì),4.1 C55x處理器程序基本結(jié)構(gòu),4.2 C語言程序開發(fā)與優(yōu)化,4.3 C語言與匯編語言混合編程,4.4通用對(duì)象文件格式,4.5 C55x處理器數(shù)字信號(hào)處理庫和圖像與視頻處理庫,2020年8月2日,TMS320C55x DSP原理與應(yīng)用;3、第4章,C55x處理器軟件設(shè)計(jì),C55x處理器軟件開發(fā)流程;2020年8月2日,TMS320C55x數(shù)字信號(hào)處理器原理及應(yīng)用;4,第4章,C55x處理器軟件設(shè)計(jì),匯編程序:將匯編源代碼轉(zhuǎn)換成機(jī)器語言。匯編程序:它將匯編源代碼

3、轉(zhuǎn)換成機(jī)器語言。鏈接器:將多個(gè)目標(biāo)文件合并成一個(gè)可執(zhí)行文件。歸檔器:一組文件可以歸檔到庫中供用戶使用。如果用戶只用匯編語言編寫程序,他將跳過C編譯器,直接通過匯編程序生成目標(biāo)文件。2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,第4章,C55x處理器的軟件設(shè)計(jì),C55x處理器程序的基本結(jié)構(gòu)。根據(jù)任務(wù)調(diào)度方法的不同,C55X處理器程序大致可以分為兩類:(1)由程序本身進(jìn)行任務(wù)調(diào)度,運(yùn)行效率高,對(duì)硬件中斷響應(yīng)快,程序運(yùn)行穩(wěn)定,適用于單個(gè)任務(wù),實(shí)時(shí)性強(qiáng)。(2)任務(wù)調(diào)度是由嵌入式操作系統(tǒng)完成的,但有必要使用嵌入式操作系統(tǒng)同時(shí)完成多個(gè)任務(wù),因?yàn)榍度胧讲僮飨到y(tǒng)可以將應(yīng)用分解成多個(gè)任務(wù),簡(jiǎn)化了

4、應(yīng)用系統(tǒng)的軟件設(shè)計(jì),更重要的是,良好的多任務(wù)設(shè)計(jì)有助于提高系統(tǒng)的穩(wěn)定性和可靠性。2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,第4章,C55x處理器的軟件設(shè)計(jì),以及4.1.1自調(diào)度程序的基本結(jié)構(gòu)。雖然嵌入式操作系統(tǒng)已經(jīng)發(fā)展得比較成熟,但是通過程序本身來完成任務(wù)調(diào)度仍然保持著強(qiáng)大的生命力,因?yàn)檫@種方法適用于需要完成大量實(shí)時(shí)數(shù)據(jù)的順序處理的DSP。自調(diào)度器的基本結(jié)構(gòu)如下。中斷程序1;中斷程序m;主()數(shù)字信號(hào)處理器_整數(shù)();/數(shù)字信號(hào)處理器為()初始化;)/主循環(huán)if(條件1)/判斷條件1處理模塊1;/如果滿足條件,運(yùn)行處理模塊1;如果(條件n)/判斷條件n處理模塊n;/條件滿足

5、運(yùn)行處理模塊n的要求;2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第7章,C55x處理器的軟件設(shè)計(jì),初始化部分通常完成DSP軟硬件的初始化設(shè)置,啟動(dòng)系統(tǒng)硬件,使能DSP中斷,啟動(dòng)DMA傳輸?shù)?。主回路是程序的主要部分,它將完成?shù)據(jù)的輸入、處理和輸出。主循環(huán)由條件判斷和處理模塊組成,當(dāng)條件滿足時(shí)運(yùn)行,如果條件不滿足則自動(dòng)跳轉(zhuǎn)到下一個(gè)判斷條件。中斷器通常不處理數(shù)據(jù),而只是設(shè)置判斷標(biāo)志來影響主回路的運(yùn)行。自調(diào)度器通常由中斷程序部分、初始化部分和主循環(huán)部分組成:4.1.1自調(diào)度器的基本結(jié)構(gòu),TMS320C55x DSP的原理及應(yīng)用2020年8月2日8。第四章C55x處理器的軟件設(shè)計(jì)。為

6、了滿足實(shí)時(shí)操作的要求,自調(diào)度器的主循環(huán)部分必須將處理延遲限制在最大可接受的延遲。具體來說,運(yùn)行主循環(huán)所有分支的總時(shí)間必須小于最大可接受延遲。如果不能滿足這個(gè)條件,在最壞的情況下,數(shù)據(jù)處理將是不連續(xù)的,并且不能實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理。當(dāng)編寫的程序不滿足上述條件時(shí),需要修改處理流程或修改處理算法以滿足條件。4.1.1自調(diào)度程序的基本結(jié)構(gòu),2020年8月2日,TMS320C55x DSP的原理及應(yīng)用,第9章,C55x處理器的軟件設(shè)計(jì),數(shù)字信號(hào)處理器中運(yùn)行的操作系統(tǒng)必須滿足系統(tǒng)的實(shí)時(shí)性要求,操作系統(tǒng)的實(shí)時(shí)模式可分為硬實(shí)時(shí)模式和軟實(shí)時(shí)模式。在軟實(shí)時(shí)系統(tǒng)中,任務(wù)由軟件切換,而在硬實(shí)時(shí)系統(tǒng)中,任務(wù)根據(jù)固定的時(shí)鐘節(jié)

7、拍切換。軟實(shí)時(shí)系統(tǒng)使每個(gè)任務(wù)盡快運(yùn)行,而不限制一個(gè)任務(wù)能完成多長(zhǎng)時(shí)間;在硬實(shí)時(shí)系統(tǒng)中,每個(gè)任務(wù)不僅要正確執(zhí)行,而且要準(zhǔn)時(shí)。4.1.2使用嵌入式操作系統(tǒng),嵌入式實(shí)時(shí)操作系統(tǒng)的功能是合理地調(diào)度和分配任務(wù),使每個(gè)任務(wù)能夠正確、及時(shí)地執(zhí)行。2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第10章,C55x處理器的軟件設(shè)計(jì),嵌入式操作系統(tǒng)的核心是操作系統(tǒng)內(nèi)核。在多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理每個(gè)任務(wù),為每個(gè)任務(wù)分配CPU時(shí)間,在任務(wù)之間進(jìn)行通信和切換任務(wù)。系統(tǒng)中的每個(gè)任務(wù)根據(jù)其重要性被賦予一定的優(yōu)先級(jí),內(nèi)核將根據(jù)其優(yōu)先級(jí)來調(diào)度任務(wù)?;趦?yōu)先級(jí)的內(nèi)核可以分為兩種類型:不可剝奪的和不可剝奪的。4.

8、1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,11,第4章,C55x處理器的軟件設(shè)計(jì),1。不可分割的內(nèi)核,它要求每個(gè)任務(wù)自愿放棄使用中央處理器的權(quán)利。這種任務(wù)調(diào)度方法也可以稱為協(xié)同多任務(wù),其中每個(gè)任務(wù)相互協(xié)作并共享一個(gè)中央處理器。不可分割內(nèi)核中的異步事件由中斷服務(wù)處理,中斷服務(wù)可以將高優(yōu)先級(jí)任務(wù)從掛起狀態(tài)變?yōu)榫途w狀態(tài);但是,在服務(wù)中斷后,中央處理器的使用權(quán)返回給原來被中斷的任務(wù),高優(yōu)先級(jí)的任務(wù)只有在主動(dòng)放棄中央處理器的使用權(quán)后才能進(jìn)入運(yùn)行狀態(tài)。4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,12,第4章,

9、C55x處理器的軟件設(shè)計(jì),該內(nèi)核的優(yōu)點(diǎn)是能快速響應(yīng)中斷,不可分割的內(nèi)核允許任務(wù)使用不可重入函數(shù)。每個(gè)任務(wù)都調(diào)用不可重入的函數(shù),而不用擔(dān)心其他任務(wù)會(huì)使用這個(gè)函數(shù)并導(dǎo)致數(shù)據(jù)破壞。當(dāng)使用不可分割的內(nèi)核時(shí),任務(wù)的響應(yīng)時(shí)間取決于最長(zhǎng)任務(wù)的執(zhí)行時(shí)間。在使用內(nèi)核時(shí),很少需要使用信號(hào)量來保護(hù)共享數(shù)據(jù),因?yàn)檫\(yùn)行的任務(wù)不必?fù)?dān)心其他任務(wù)會(huì)搶占CPU;然而,如果任務(wù)使用共享設(shè)備,它們也應(yīng)該使用互斥信號(hào)量。4.1.2嵌入式操作系統(tǒng)的應(yīng)用,1。不可分割的內(nèi)核,2020年8月2日,TMS320C55x數(shù)字信號(hào)處理器的原理和應(yīng)用,13。第四章,C55x處理器的軟件設(shè)計(jì),不可分割內(nèi)核的缺點(diǎn)是響應(yīng)時(shí)間不確定,并且無法確定具有最高

10、優(yōu)先級(jí)的任務(wù)何時(shí)可以獲得使用CPU的權(quán)利。2.可剝奪內(nèi)核。當(dāng)可剝奪內(nèi)核運(yùn)行時(shí),一旦具有最高優(yōu)先級(jí)的任務(wù)準(zhǔn)備就緒,它總是可以獲得使用中央處理器的權(quán)利。當(dāng)優(yōu)先級(jí)較高的任務(wù)進(jìn)入就緒狀態(tài)時(shí),當(dāng)前運(yùn)行的任務(wù)將被暫停,上級(jí)任務(wù)將立即獲得CPU的使用權(quán)。,1。不可分割的內(nèi)核,4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x數(shù)字信號(hào)處理器的原理與應(yīng)用,14。第四章,C55x處理器的軟件設(shè)計(jì),如果中斷服務(wù)子程序使一個(gè)高優(yōu)先級(jí)任務(wù)進(jìn)入就緒狀態(tài),中斷完成后,中斷的任務(wù)暫停,上級(jí)任務(wù)開始運(yùn)行。通過使用可移動(dòng)內(nèi)核,可以隨時(shí)執(zhí)行最高級(jí)別的任務(wù),這優(yōu)化了任務(wù)的響應(yīng)時(shí)間。使用不可重入內(nèi)核要求應(yīng)用程序不

11、應(yīng)該直接使用不可重入函數(shù),如果它想使用它,它應(yīng)該滿足互斥條件。4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2??蓜儕Z內(nèi)核,2020年8月2日,TMS320C55x數(shù)字信號(hào)處理器原理與應(yīng)用,15。第四章,C55X處理器的軟件設(shè)計(jì),4.1.2嵌入式操作系統(tǒng)的應(yīng)用,內(nèi)核的主要工作是完成任務(wù)調(diào)度,也可以稱為線程,這是一個(gè)簡(jiǎn)單的程序,并且這個(gè)程序認(rèn)為中央處理器屬于完全操作系統(tǒng),要求系統(tǒng)要完成的工作分解成多個(gè)任務(wù),每個(gè)任務(wù)都是應(yīng)用的一部分。任務(wù)被賦予一定的優(yōu)先級(jí),并有自己的一組中央處理器寄存器和堆??臻g。2020年8月2日,TMS320C55x DSP原理與應(yīng)用,16,第4章,C55x處理器的軟件設(shè)計(jì),4.1.2,嵌

12、入式操作系統(tǒng)的應(yīng)用,任務(wù)是一個(gè)無限循環(huán),必須處于以下五種狀態(tài)之一:(1)休眠狀態(tài)是任務(wù)駐留在內(nèi)存中,但沒有被系統(tǒng)內(nèi)核調(diào)用;就緒狀態(tài)是任務(wù)已就緒,但任務(wù)的優(yōu)先級(jí)低于正在運(yùn)行的任務(wù)的優(yōu)先級(jí),因此暫時(shí)無法運(yùn)行;運(yùn)行狀態(tài)是任務(wù)有權(quán)使用中央處理器并且正在運(yùn)行;掛起狀態(tài)是指任務(wù)正在等待一個(gè)事件來結(jié)束當(dāng)前的等待(如等待外設(shè)I/O操作、等待共享資源、等待計(jì)時(shí)或超時(shí)信息等)。);當(dāng)中斷發(fā)生時(shí),中央處理器進(jìn)入中斷服務(wù)程序,但暫時(shí)不能運(yùn)行當(dāng)前任務(wù),任務(wù)進(jìn)入中斷狀態(tài)。2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,第17章,C55x處理器的軟件設(shè)計(jì),第4章,嵌入式操作系統(tǒng),操作系統(tǒng)需要在多個(gè)任務(wù)之間進(jìn)行

13、轉(zhuǎn)換和調(diào)度,因?yàn)镃PU在某個(gè)時(shí)間只能服務(wù)一個(gè)任務(wù),而CPU必須依次服務(wù)一系列任務(wù)。多任務(wù)處理可以最大限度地提高CPU利用率并模塊化應(yīng)用程序。多任務(wù)處理可以使程序更容易設(shè)計(jì)和維護(hù)。當(dāng)任務(wù)從當(dāng)前任務(wù)切換到另一個(gè)任務(wù)時(shí),必須保存正在執(zhí)行的任務(wù)的當(dāng)前狀態(tài)。所謂“任務(wù)的當(dāng)前狀態(tài)”是指中央處理器寄存器中的所有內(nèi)容;這些內(nèi)容保存在任務(wù)自己的堆棧中,以便在下次執(zhí)行任務(wù)時(shí)恢復(fù)當(dāng)前狀態(tài)。保存當(dāng)前任務(wù)后,將下一個(gè)任務(wù)的當(dāng)前狀態(tài)加載到中央處理器寄存器中,開始下一個(gè)任務(wù)。這個(gè)過程被稱為“任務(wù)切換”。2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第18章,C55x處理器的軟件設(shè)計(jì),以及4.1.2嵌入式操作

14、系統(tǒng)的應(yīng)用,每個(gè)任務(wù)都有其優(yōu)先級(jí),而且任務(wù)越重要,優(yōu)先級(jí)越高。如果任務(wù)的優(yōu)先級(jí)在程序執(zhí)行過程中保持不變,則稱為靜態(tài)優(yōu)先級(jí);否則,它被稱為動(dòng)態(tài)優(yōu)先級(jí)。所謂的“任務(wù)管理”意味著任務(wù)在內(nèi)核的控制下在五種狀態(tài)之間切換。2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第19章,C55x處理器的軟件設(shè)計(jì),4.1.2,嵌入式操作系統(tǒng)可能會(huì)在不同的任務(wù)之間使用共同的資源,當(dāng)它們同時(shí)使用共享資源時(shí),可能會(huì)出現(xiàn)錯(cuò)誤。嵌入式操作系統(tǒng)提供了約定的信號(hào)量機(jī)制,通過它可以控制共享資源的使用權(quán)或標(biāo)記事件。信號(hào)量有兩種類型:二進(jìn)制類型和計(jì)數(shù)器類型。事實(shí)上,二進(jìn)制類型可以被視為只有一位的計(jì)數(shù)器類型信號(hào)量。2020

15、年8月2日,TMS320C55x數(shù)字信號(hào)處理器的原理和應(yīng)用,第20章,C55x處理器的軟件設(shè)計(jì),以及4.1.2嵌入式操作系統(tǒng)的應(yīng)用,信號(hào)量可視為一個(gè)關(guān)鍵。當(dāng)任務(wù)要運(yùn)行時(shí),您必須首先獲取該密鑰。如果信號(hào)量已經(jīng)被其他任務(wù)占用,任務(wù)必須暫停并等待當(dāng)前用戶釋放信號(hào)量。,2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第21章,C55x處理器的軟件設(shè)計(jì),4.1.2嵌入式操作系統(tǒng)的應(yīng)用,任務(wù)中應(yīng)該使用信號(hào)量,信號(hào)量應(yīng)該先初始化。如果一個(gè)任務(wù)想要得到一個(gè)信號(hào)量,它必須首先執(zhí)行一個(gè)“等待”操作。如果信號(hào)量有效(信號(hào)量的值大于0),信號(hào)量的大小減少1,任務(wù)可以繼續(xù)執(zhí)行。如果信號(hào)量的值為0,則等待信

16、號(hào)量的任務(wù)列在等待信號(hào)量的任務(wù)表中。2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,第4章,C55x處理器的軟件設(shè)計(jì),如果等待時(shí)間超過某個(gè)設(shè)定值,信號(hào)量仍然無效,等待信號(hào)量的任務(wù)將自動(dòng)進(jìn)入就緒狀態(tài),準(zhǔn)備運(yùn)行,并向系統(tǒng)報(bào)告“超時(shí)錯(cuò)誤”消息。4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x DSP的原理和應(yīng)用,23,第4章,C55x處理器的軟件設(shè)計(jì),實(shí)際上,可能有很多任務(wù)在等待這個(gè)信號(hào)量。在嵌入式操作系統(tǒng)中,通常根據(jù)優(yōu)先級(jí)來決定哪個(gè)任務(wù)獲得信號(hào)量。任務(wù)也可以釋放信號(hào)量。如果有一個(gè)任務(wù)在等待信號(hào)量,那么一個(gè)任務(wù)將進(jìn)入就緒狀態(tài),信號(hào)量的值不會(huì)增加。如果此時(shí)沒有等待

17、信號(hào)量的任務(wù),信號(hào)量的值將增加1。4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x DSP的原理及應(yīng)用,24,第4章,C55x處理器的軟件設(shè)計(jì),4.1.2嵌入式操作系統(tǒng)的應(yīng)用,兩個(gè)任務(wù)可以通過信號(hào)量同步,信號(hào)量可以分為單向同步和雙向同步兩種類型。單向同步意味著一個(gè)任務(wù)用一個(gè)信號(hào)量觸發(fā)另一個(gè)任務(wù)。單向同步,2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第25章,C55x處理器的軟件設(shè)計(jì),當(dāng)兩個(gè)任務(wù)需要相互同步時(shí),需要雙向同步。兩個(gè)任務(wù)的雙向同步,4.1.2嵌入式操作系統(tǒng)的應(yīng)用,2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,26,第4章,C5

18、5x處理器的軟件設(shè)計(jì),4.1.2嵌入式操作系統(tǒng)的應(yīng)用,任務(wù)之間的通信可以通過兩種方式:全局變量或消息。當(dāng)使用全局變量時(shí),必須保證任務(wù)或中斷服務(wù)子程序,并且在使用該變量時(shí),沒有其他任務(wù)或中斷服務(wù)子程序訪問該變量。此外,如果任務(wù)沒有其他機(jī)制來通知其變量已被修改,則任務(wù)只能定期查詢變量值。為避免這種情況,請(qǐng)考慮使用郵件郵箱或郵件隊(duì)列。2020年8月2日,TMS320C55x DSP的原理與應(yīng)用,第4章,C55x處理器的軟件設(shè)計(jì),以及4.1.2嵌入式操作系統(tǒng)的應(yīng)用,消息郵箱是一個(gè)任務(wù)還是一個(gè)中斷程序。通過指針變量將消息(指針)放入郵箱,一個(gè)或多個(gè)任務(wù)可以通過內(nèi)核服務(wù)接收消息。內(nèi)核可以提供以下郵箱服務(wù):初始化郵箱中的消息;將郵件放入郵箱;等待郵件進(jìn)入郵箱;從郵箱中獲取

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論