版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 C/C+語言程序設(shè)計(jì)6.1 C55X C/C+語言概述6.2 C55X C/C+語言編程基礎(chǔ)6.5 C語言與匯編語言的混合編程 6.5.1 在C語言中直接嵌入?yún)R編語言 6.5.2 C語言調(diào)用匯編模塊的接口補(bǔ)充: TI DSP軟件開發(fā)平臺(tái)第1頁,共82頁。匯編語言依賴于計(jì)算機(jī)硬件,程序的可讀性和可移植性比較差。一般高級(jí)語言具有很好的可移植性,但是難以實(shí)現(xiàn)匯編語言的某些功能(如對(duì)內(nèi)存地址的操作、位操作等)。C/C+語言作為一種高級(jí)語言,既可以訪問物理地址又可以進(jìn)行位操作,能直接對(duì)硬件進(jìn)行操作,適合用作DSP開發(fā)語言。6.1.1 C/C+語言概況6.1 C55X C/C+語言概述第2頁,共8
2、2頁。6.1.2 C55x C/C+語言概況C55x C/C+編譯器全面支持ANSI C/C+語言標(biāo)準(zhǔn),能夠把按照標(biāo)準(zhǔn)ANSI C/C+規(guī)范編寫的源程序進(jìn)行全面優(yōu)化,編譯成C55x 匯編語言源程序。C55x C/C+編譯器工具擁有完整的實(shí)時(shí)運(yùn)行庫,所有的庫函數(shù)均符合ANSI庫標(biāo)準(zhǔn)。第3頁,共82頁。6.2.1 C語言中的數(shù)據(jù)類型 C55x支持下列數(shù)據(jù)類型包括字符、定點(diǎn)數(shù)、浮點(diǎn)數(shù)、指針等。 6.2 C55X C/C+語言編程基礎(chǔ)類型長(zhǎng)度內(nèi)容最小值最大值signed char(有符號(hào)字符)16位ASCII碼-3276832767unsigned char(無符號(hào)字符)16位ASCII碼065535
3、short, signed short(短整型)16位二進(jìn)制補(bǔ)碼-3276832767unsigned short(無符號(hào)短整型)16位二進(jìn)制數(shù)065535第4頁,共82頁。類 型長(zhǎng) 度內(nèi) 容最 小 值最 大 值int, signed int(整型)16位二進(jìn)制補(bǔ)碼3276832767unsigned int(無符號(hào)整型)16位二進(jìn)制數(shù)065535long, signed long(長(zhǎng)整型)32位二進(jìn)制補(bǔ)碼2 147 483 6482 147 483 647unsigned long(無符號(hào)長(zhǎng)整型)32位二進(jìn)制數(shù)04 249 967 295long long(40位長(zhǎng)整型)40位二進(jìn)制補(bǔ)碼54
4、9 755 813 888549 755 813 887unsigned long long(40位無符號(hào)長(zhǎng)整型)40位二進(jìn)制數(shù)01 099 511 627 775emum(枚舉型)16位二進(jìn)制補(bǔ)碼3276832767float(浮點(diǎn)型)32位32位浮點(diǎn)數(shù)1.175 494e383.40 282 346e+38第5頁,共82頁。類 型長(zhǎng) 度內(nèi) 容最 小 值最 大 值double(雙精度浮點(diǎn)數(shù))32位32位浮點(diǎn)數(shù)1.175 494e383.40 282 346e+38long double(長(zhǎng)雙精度浮點(diǎn)數(shù))32位32位浮點(diǎn)數(shù)1.175 494e383.40 282 346e+38大存儲(chǔ)器模式23
5、位二進(jìn)制數(shù)00 x7FFFFFpointers(程序指針)24位二進(jìn)制數(shù)00 xFFFFFF6.2.1 C語言中的數(shù)據(jù)類型 第6頁,共82頁。6.2.2 關(guān)鍵字const C55x C編譯器支持標(biāo)準(zhǔn)C語言的const關(guān)鍵字。將這個(gè)關(guān)鍵字使用到對(duì)任意變量或數(shù)組的定義上可以確保它們的值不改變。如果定義一個(gè)對(duì)象為const,那么const段就會(huì)為該對(duì)象分配存儲(chǔ)空間。使用const關(guān)鍵字可以定義大常數(shù)表并將它們分配到系統(tǒng)ROM中。6.2 C55X C/C+語言編程基礎(chǔ)第7頁,共82頁。例:6.2.2 關(guān)鍵字 int * const p=&x;const int *q=&x;定義指向變量int的常量指針
6、p定義指向常量int的變量指針q第8頁,共82頁。2. ioport關(guān)鍵字 1.ioport關(guān)鍵字可以用在數(shù)組、結(jié)構(gòu)、聯(lián)合以及枚舉類型當(dāng)中。 2. 當(dāng)用在數(shù)組中時(shí),ioport限制的數(shù)組單元而非數(shù)組類型本身; 3. ioport類型只能用來聲明全局或靜態(tài)變量,如果在本地變量中使用ioport類型,則變量必須用指針聲明。6.2.2 關(guān)鍵字 注意:第9頁,共82頁。例,ioport關(guān)鍵字的使用。ioport int k void foo(void)ioport int i ioport int *j 6.2.2 關(guān)鍵字 ; /*正確* /; /*錯(cuò)誤* /; /*正確* /第10頁,共82頁。例:
7、定時(shí)器初始化例程void TIMER_init(void) ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int *prsc0; tim0 = (unsigned int *)0 x1000;prd0 = (unsigned int *)0 x1001;tcr0 = (unsigned int *)0 x1002;prsc0 = (unsigned int *)0 x1003; *tcr0 = 0 x04f0; *tim0 = 0; *prd0 =
8、 0 x0ffff; *prsc0 = 2; *tcr0 = 0 x00e0;第11頁,共82頁。3. interrupt關(guān)鍵字 關(guān)鍵字 “interrupt”-定義中斷函數(shù)注意: 1.當(dāng)C/C+代碼被中斷時(shí),中斷程序必須保存所有與程序有關(guān)的寄存器。 2.當(dāng)使用“interrupt”關(guān)鍵字定義函數(shù)時(shí),中斷函數(shù)必須返回空并且沒有參數(shù)傳遞。 3.中斷函數(shù)可以定義本地變量并且使用堆棧。 4. c_int00是C/C+程序的入口點(diǎn),這個(gè)函數(shù)名被系統(tǒng)復(fù)位中斷保留,該中斷服務(wù)程序用來初始化系統(tǒng)并調(diào)用main函數(shù)。 第12頁,共82頁。關(guān)于中斷的幾個(gè)要點(diǎn):中斷服務(wù)程序不能被普通C代碼調(diào)用。關(guān)鍵字例:中斷服務(wù)
9、程序Void INTR_init( void )IVPD=0 xd0;IVPH=0 xd0;IER0=0 x10;DBIER0 =0 x10;IFR0=0 xffff;asm( BCLR INTM);interrupt void timer( ) .無參數(shù)設(shè)置中斷寄存器IER0保存中斷入口的現(xiàn)場(chǎng)信息(所用寄存器或全部寄存器)第13頁,共82頁。通過.sect指令創(chuàng)建中斷向量表。 .sect .vectors .ref _c_int00 .ref _timer rsv: B _c_int00 NOP .align 8nmi: .loop 8 nop.endloopint0:.loop 8nop.
10、endloopint2: B _timernop.align 8tint:B _timernop.align 8在匯編語言中,中斷程序名前加下劃線,如 _timer。關(guān)于中斷的幾個(gè)要點(diǎn):中斷處理程序可以處理單個(gè)中斷或多個(gè)中斷,c_int00除外保存中斷入口的現(xiàn)場(chǎng)信息 (所用寄存器或全部寄存器)第14頁,共82頁。onchip關(guān)鍵字-定義的指針?biāo)赶虻臄?shù)據(jù)在片上內(nèi)存例:用onchip定義數(shù)組和指針 onchip int x100; /* array declaration */ onchip int *p; /* pointer declaration */ 4 onchip關(guān)鍵字 第15頁,共
11、82頁。6.2.2 關(guān)鍵字volatile-存儲(chǔ)器訪問定義格式: register 變量類型 變量名變量類型:整型、浮點(diǎn)型和指針類型register第16頁,共82頁。6.2.4 asm指令 -插入一條匯編指令指令格式: asm (“assembler text”);main()int i;unsigned int uWork;while ( 1 )for ( i=0;ii,i=T0 RET;在定義匯編函數(shù)時(shí),在函數(shù)名前加下劃線“_”.聲明為外部函數(shù)第53頁,共82頁。3: 在C代碼中訪問匯編語言變量訪問.bss段或.usect段中沒有初始化的變量:使用.bss或.usect指令來定義變量使用
12、.global指令來定義為外部變量在匯編語言中的變量前加下劃線“_”在C代碼中聲明變量為外部變量并正常地訪問它(b)C程序:extern int var;/* 外部變量 */var = 1;/* 使用變量 */(a)匯編語言程序: .bss var,1;定義變量 .gloabal var;聲明變量為外部變量第54頁,共82頁。非.bss段中變量訪問-定義指向該變量的指針定義變量聲明一個(gè)指向該變量起始地址的全局指針在程序中,必須先聲明該對(duì)象為extern型。3: 在C代碼中訪問匯編語言變量(a)匯編程序: .global _sine .sect ”sine_tab”_sine: .float 0
13、.0 .float 0.015987 .float 0.022145 (b)C程序:extern float sine ;float *sine_p=sine;f=sine_p2;第55頁,共82頁。4. 在C語言中訪問匯編語言常數(shù)使用.set和.global指令定義匯編語言全局常數(shù)。使用&運(yùn)算符來取值。(a)匯編語言程序:_table_size .set 10000;定義常量.global _table_size;定義該常量為全局常量例:(b)語言程序:extern int table_size;#define TABLE_SIZE (int)(&table_size)For(i=0;iTA
14、BLE_SIZE;+i)第56頁,共82頁。C和匯編語言的接口注意:(1) 如果用匯編語言編寫中斷例程,則需要保存在中斷例程中使用的所有寄存器。 (2)如果在匯編程序中調(diào)用C/C+函數(shù),則只有特定的寄存器在C/C+中被保存,而其他寄存器則可能被C/C+函數(shù)改變。 (3)編譯器所默認(rèn)的CPL值為1,即采用間接、絕對(duì)方式尋址,如果在匯編函數(shù)中CPL被設(shè)置為0,在函數(shù)返回時(shí)應(yīng)當(dāng)把這個(gè)值改為1。第57頁,共82頁。例:利于混合編程的方式實(shí)現(xiàn)y=a+b,主程序用C實(shí)現(xiàn),子函數(shù)asmf采用匯編語言,已知a,b,y均為整數(shù)。主程序:Main()int a, int b;int y;a=3; b=5;y=as
15、mf(a,b);extern int asmf(int a,int b);匯編源程序:.global _asmf.text_asmf: add T1,T0,T0 RET第58頁,共82頁。習(xí)題:利于混合編程的方式實(shí)現(xiàn) 已知主程序如下,請(qǐng)將匯編源程序補(bǔ)充完整。Main()int anb=2,3,4,5; int xnb=1,2,3,4;int y;y=asmf(&a,&x,nb);extern long asmf(int *,int *,int);主程序:匯編源程序:.global _asmf.text_asmf: . . RET#define nb 5;第59頁,共82頁。P249 作業(yè)3,4
16、,5,6, 7,9,10第60頁,共82頁。小結(jié):軟件開發(fā)過程第一步,分析任務(wù)需求并用高級(jí)語言寫出軟件流程。寫流程可以采用編寫“偽代碼”的方式完成。可以清楚地定義信號(hào)的處理機(jī)制,并為今后程序的調(diào)試和擴(kuò)展預(yù)先留好接口。在流程描述中,可以將每一個(gè)關(guān)鍵的處理環(huán)節(jié)用函數(shù)(或直接用語言描述)來表示,確定軟件的框架。第二步,根據(jù)第一步的工作寫主流程的C或者匯編程序。整個(gè)工作過程可以充分參照例子工程做。第三步,細(xì)化主流程程序,按功能編寫每一個(gè)函數(shù)。第四步,完成中斷服務(wù)程序的編寫。第五步,編寫鏈接用cmd命令文件,確定匯編程序中各段代碼和數(shù)據(jù)擺放的位置。通常情況下,程序放置在SARAM內(nèi),而數(shù)據(jù)放置在DARA
17、M 。注意程序的編制需強(qiáng)調(diào)程序的模塊化、常量的符號(hào)化、變量名有意義等軟件工程的基本要素。在匯編級(jí)編程的時(shí)候,需要做匯編語句級(jí)的優(yōu)化。第61頁,共82頁。小結(jié):軟件開發(fā)過程軟件組成:由代碼和數(shù)據(jù)組成運(yùn)行:要運(yùn)行的程序其代碼和數(shù)據(jù)必須存放在CPU的存儲(chǔ)空間存放:以代碼塊和數(shù)據(jù)塊的形式存放代碼塊和數(shù)據(jù)塊是程序的最小單元一個(gè)代碼塊或數(shù)據(jù)塊在存儲(chǔ)空間中連續(xù)、順序存放不同的代碼塊或數(shù)據(jù)塊,可以存放于不同的存儲(chǔ)空間中定位: 編譯時(shí)定位:MCU系統(tǒng)采用編程時(shí)由ORG語句確定代碼塊和數(shù)據(jù)塊的絕對(duì)地址編譯器以此地址為首地址,連續(xù)、順序地存放該代碼塊或數(shù)據(jù)塊 鏈接時(shí)定位:DSP系統(tǒng)采用編程時(shí)由“SECTION”偽指
18、令,以區(qū)分不同的代碼塊或數(shù)據(jù)塊編譯器每遇到一個(gè)“SECTION”偽指令,從0地址重新開始一個(gè)代碼塊或數(shù)據(jù)塊鏈接器將同名的“SECTION”合并,并按.cmd文件中的“SECTION”命令進(jìn)行實(shí)際的定位 加載時(shí)定位:PC機(jī)系統(tǒng)采用編程、編譯和鏈接時(shí)均未對(duì)程序進(jìn)行絕對(duì)定位程序運(yùn)行前,由操作系統(tǒng)對(duì)程序進(jìn)行重定位,并加載到存儲(chǔ)空間中第62頁,共82頁。DSP C語言:C運(yùn)行環(huán)境(1)存儲(chǔ)模型:C程序的代碼和數(shù)據(jù)如何定位系統(tǒng)定義.cinit存放C程序中的變量初值和常量.const 存放C程序中的字符常量、浮點(diǎn)常量和用const聲明的常量.switch 存放C程序中switch語句的跳針表.text 存放
19、C程序的代碼.bss為C程序中的全局和靜態(tài)變量保留存儲(chǔ)空間.far 為C程序中用far聲明的全局和靜態(tài)變量保留空間.stack 為C程序系統(tǒng)堆棧保留存儲(chǔ)空間,用于保存返回地址、函數(shù)間的參數(shù)傳遞、存儲(chǔ)局部變量和保存中間結(jié)果.sysmem用于C程序中malloc、calloc和realloc函數(shù)動(dòng)態(tài)分配存儲(chǔ)空間用戶定義#pragmaCODE_SECTION (symbol, section name)#pragmaDATA_SECTION (symbol, section name)第63頁,共82頁。DSP C語言:C運(yùn)行環(huán)境()寄存器使用規(guī)則C編譯器如何使用DSP的寄存器函數(shù)進(jìn)入和返回前,寄存
20、器的保護(hù)函數(shù)調(diào)用規(guī)則函數(shù)間的參數(shù)傳遞通過寄存器和系統(tǒng)堆棧進(jìn)行調(diào)用函數(shù)與被調(diào)用函數(shù)必須對(duì)各自的寄存器進(jìn)行保護(hù)從被調(diào)用函數(shù)返回前,被調(diào)用函數(shù)必須歸還所有已占用的堆??臻gC和ASM混合編程C和ASM混合編程時(shí),必須遵循寄存器使用規(guī)則和函數(shù)調(diào)用規(guī)則被C調(diào)用的ASM函數(shù),其函數(shù)名前應(yīng)加“_”中斷服務(wù)程序ASM編寫的中斷服務(wù)程序必須對(duì)所有用到寄存器進(jìn)行保護(hù),以免破壞C運(yùn)行環(huán)境C編寫的中斷服務(wù)程序應(yīng)用interrupt關(guān)鍵字聲明第64頁,共82頁。DSP C語言:C運(yùn)行環(huán)境()系統(tǒng)初試化在運(yùn)行C程序前,必須建立C運(yùn)行環(huán)境,此任務(wù)由C引導(dǎo)程序_c_int00完成;c程序在連接的時(shí)候需要rst.lib庫。_c_
21、int00包含在庫函數(shù)中,build時(shí)自動(dòng)將其鏈接進(jìn)可執(zhí)行程序中,程序的入口地址必須設(shè)為_c_int00起始地址。_c_int00的源程序存放在由rts.src分離出來的boot.asm中,用戶可根據(jù)需要修改設(shè)置堆棧指針,初始化全局變量:將.cinit”段“中數(shù)據(jù)拷貝到.bss”段“中調(diào)用C程序的主函數(shù)main()不同系列的DSP,其C編譯器對(duì)C運(yùn)行環(huán)境的處理略有不同,具體參考各自的Optimizing C Compiler Users Guide第65頁,共82頁。DSP C語言:軟件build流程目標(biāo)文件地址是浮動(dòng)的,能被重定位鏈接器用.cmd文件對(duì)鏈接目標(biāo),進(jìn)行重定位列出目標(biāo)文件、庫文件
22、和鏈接器選項(xiàng)用MEMORY命令描述目標(biāo)系統(tǒng)存儲(chǔ)空間配置用SECTIONS命令描述“段”如何定位Hex轉(zhuǎn)換程序也使用.cmd文件,配置轉(zhuǎn)換選項(xiàng) 第66頁,共82頁。CCS 軟件開發(fā)方法傳統(tǒng)軟件開發(fā)方法用ASM或ASM和C混合編程,從零開始分配存儲(chǔ)器空間編寫硬件資源頭文件DSP片內(nèi)部分:描述片內(nèi)寄存器地址描述片內(nèi)寄存器控制狀態(tài)位域DSP板上資源頭文件描述片外外設(shè)寄存器地址描述片外外設(shè)寄存器控制狀態(tài)位域編寫應(yīng)用專用的外設(shè)驅(qū)動(dòng)程序片內(nèi)片外外設(shè)初試化程序片內(nèi)片外外設(shè)操作程序編寫中斷向量表和中斷服務(wù)程序編寫應(yīng)用專用的算法編寫主控程序順序、死循環(huán)執(zhí)行第67頁,共82頁。TI倡導(dǎo)的DSP軟件架構(gòu)第68頁,共8
23、2頁。TI免費(fèi)提供的基礎(chǔ)軟件CSL庫:Chip Support Library芯片支持庫定義DSP片內(nèi)外設(shè)資源,實(shí)現(xiàn)片內(nèi)外設(shè)基本操作DDK:Driver Development Kit 設(shè)備驅(qū)動(dòng)程序開發(fā)包設(shè)計(jì)標(biāo)準(zhǔn)的設(shè)備驅(qū)動(dòng)程序模型,方便開發(fā)新的設(shè)備驅(qū)動(dòng)程序DSPLIBIMGLIB:Signal Processing Library數(shù)學(xué)運(yùn)算、矩陣運(yùn)算、FFT、濾波、卷積、相關(guān)等信號(hào)處理函數(shù)壓縮、分析、濾波和格式轉(zhuǎn)換等圖像視頻處理函數(shù)DSP/BIOS:嵌入式實(shí)時(shí)、多任務(wù)操作系統(tǒng)實(shí)時(shí)、多任務(wù)內(nèi)核實(shí)時(shí)分析Reference Frameworks:程序參考架構(gòu)C程序初試骨架,通過其可以迅速創(chuàng)建特定的應(yīng)用
24、程序XDAIS:DSP Algorithm Standard,DSP算法標(biāo)準(zhǔn)規(guī)定一系列算法編程規(guī)則,遵循這些規(guī)則的算法,可以相互調(diào)用第69頁,共82頁。DSP/BIOS:功能搶先型實(shí)時(shí)、多任務(wù)操作系統(tǒng)內(nèi)核基于優(yōu)先級(jí)的、搶先型實(shí)時(shí)調(diào)度程序支持多線程管理與調(diào)度支持4種線程類型:HWI、SWI、TSK、IDL支持3種作業(yè)間的通信方式:Mailboxes、Semaphores、Queues支持周期函數(shù),方便實(shí)現(xiàn)固定時(shí)間間隔的數(shù)據(jù)采集,簡(jiǎn)化多速率系統(tǒng)的設(shè)計(jì)提供存儲(chǔ)器管理,實(shí)現(xiàn)動(dòng)態(tài)存儲(chǔ)器分配實(shí)時(shí)分析模塊分析信息實(shí)時(shí)獲取、傳輸和顯示,為早期的系統(tǒng)級(jí)排錯(cuò)提供幫助DSP/BIOS模塊中內(nèi)含分析信息的實(shí)時(shí)獲取功能
25、分析信息的實(shí)時(shí)傳輸由RTDX(Real-Time Data Exchange)技術(shù)實(shí)現(xiàn),完成目標(biāo)DSP與主機(jī)之間的實(shí)時(shí)通信,C6000 RTDX的帶寬為20KByte,RTDX是在idle作業(yè)期間完成,所以對(duì)程序執(zhí)行速度的影響最小主機(jī)可以顯示:事件記錄、線程執(zhí)行順序、執(zhí)行次數(shù)的最大值或平均值和總的CPU負(fù)載等信息第70頁,共82頁。DSP/BIOS:功能為了方便使用,TI 提供一個(gè)可視化的配置工具,用于配置實(shí)際系統(tǒng)中所需的DSP/BIOS模塊;可以在CCS集成環(huán)境中調(diào)用之DSP/BIOS是可裁剪的,只有被應(yīng)用程序使用的模塊才會(huì)被鏈接到應(yīng)用程序中DSP/BIOS開銷?。捍a大小:1K Words
26、CPU占用:1MIPSDSP/BIOS采用標(biāo)準(zhǔn)的API,所以不同系列DSP之間的移植容易DSP/BIOS集成在CCS中,無需使用許可費(fèi)第71頁,共82頁。CSL 庫什么是CSL:Chip Support Library用于配置、控制和管理DSP片上外設(shè)已為C6000和C5000系列DSP設(shè)計(jì)了各自的CSL庫CSL庫函數(shù)大多數(shù)是用C語言編寫的,并已對(duì)代碼的大小和速度進(jìn)行了優(yōu)化CSL庫是可裁剪的:即只有被使用的CSL模塊才會(huì)包含進(jìn)應(yīng)用程序中CSL庫是可擴(kuò)展的:每個(gè)片上外設(shè)的API相互獨(dú)立,增加新的API,對(duì)其他片上外設(shè)沒有影響為什么要設(shè)計(jì)CSLDSP片上外設(shè)種類及其應(yīng)用日趨復(fù)雜提供一組標(biāo)準(zhǔn)的方法用
27、于訪問和控制片上外設(shè)免除用戶編寫配置和控制片上外設(shè)所必需的定義和代碼第72頁,共82頁。CSL:特點(diǎn)片上外設(shè)編程的標(biāo)準(zhǔn)協(xié)議:定義一組標(biāo)準(zhǔn)的APIs:函數(shù)、數(shù)據(jù)類型、宏對(duì)硬件進(jìn)行抽象,提取符號(hào)化的片上外設(shè)描述定義一組宏,用于訪問和建立寄存器及其域值基本的資源管理對(duì)多資源的片上外設(shè)進(jìn)行管理已集成到DSP/BIOS中通過圖形用戶接口GUI對(duì)CSL進(jìn)行配置使片上外設(shè)容易使用縮短開發(fā)時(shí)間,增加可移植性第73頁,共82頁。CSL:片上外設(shè)第74頁,共82頁。DDK(Driver Development Kit )TI提供DDK的目的標(biāo)準(zhǔn)的設(shè)備驅(qū)動(dòng)程序模型,用戶無需從零開始編寫設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序模型(
28、IOM)將設(shè)備驅(qū)動(dòng)程序分為2個(gè)部分與設(shè)備相關(guān)的:“迷你”驅(qū)動(dòng)程序(mini-driver)與設(shè)備無關(guān)的:“類”驅(qū)動(dòng)程序(class-driver)“類”驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的上層抽象,使其與特定設(shè)備無關(guān),為應(yīng)用程序提供通用的接口3大類“類”驅(qū)動(dòng)程序:SIO、PIP和GIOSIO:流I/O接口,由SIO和DIO組成,DIO負(fù)責(zé)緩沖器管理、信號(hào)同步以及底層“迷你”驅(qū)動(dòng)程序接口PIP:管道接口,有PIP和PIO組成,PIO負(fù)責(zé)緩沖器管理、信號(hào)同步以及底層“迷你”驅(qū)動(dòng)程序接口GIO:通用I/O,允許進(jìn)行塊讀塊寫,可以用其新的用戶驅(qū)動(dòng)程序“迷你”驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的底層抽象,與特定設(shè)備有關(guān),對(duì)設(shè)計(jì)硬件
29、設(shè)備進(jìn)行操作,DDK規(guī)定一組標(biāo)準(zhǔn)的API,函數(shù)體由用戶根據(jù)實(shí)際硬件設(shè)備編寫DDK是在CSL基礎(chǔ)上對(duì)外設(shè)I/O進(jìn)行更高層次的抽象TI免費(fèi)提供DDK的源代碼、庫及相關(guān)文檔,可從TI網(wǎng)站上免費(fèi)下載第75頁,共82頁。Signal Processing LibraryC6000系列DSP基本的信號(hào)處理庫DSPLIB提供數(shù)學(xué)運(yùn)算、矩陣運(yùn)算、FFT、濾波、卷積等常用的信號(hào)處理函數(shù)TMS320C62x DSPLIB:專門為C62x系列DSP進(jìn)行優(yōu)化TMS320C67x DSPLIB:專門為C67x系列DSP進(jìn)行優(yōu)化TMS320C64x DSPLIB:專門為C64x系列DSP進(jìn)行優(yōu)化FastRTS:提供快速的
30、單精度雙精度浮點(diǎn)數(shù)學(xué)運(yùn)算和轉(zhuǎn)換函數(shù)TMS320C62xC64x FastRTS:專門為C62xC64x系列DSP進(jìn)行優(yōu)化TMS320C67x FastRTS:專門為C67x系列DSP進(jìn)行優(yōu)化IMGLIB:提供壓縮、分析、濾波和公司轉(zhuǎn)換等常用的圖像視頻處理函數(shù)TMS320C62x IMGLIB:專門為C62x系列DSP進(jìn)行優(yōu)化TMS320C64x IMGLIB:專門為C64x系列DSP進(jìn)行優(yōu)化C5000系列DSP基本的信號(hào)處理庫DSPLIB:提供數(shù)學(xué)運(yùn)算、矩陣運(yùn)算、FFT、濾波、卷積等常用的信號(hào)處理函數(shù)TMS320C54x DSPLIB:專門為C54x系列DSP進(jìn)行優(yōu)化TMS320C55x DSPLIB:專門為C55x系列DSP進(jìn)行優(yōu)化IMGLIB:提供壓縮、分析、濾波和公司轉(zhuǎn)換等常用的圖像視頻處理函數(shù)TMS320C55x IMGLIB:專門為C55x系列DSP進(jìn)行優(yōu)化第76頁,共82頁。Reference FrameworkTI提供軟件參考架構(gòu),目的:DSP系統(tǒng)日趨復(fù)雜包含多個(gè)算法(如:同時(shí)包含音頻算法和視頻算法)同一個(gè)算法可能需要多道運(yùn)行(如:對(duì)多個(gè)視頻流進(jìn)行處理)不同算法或通道所需的數(shù)據(jù)或幀率可能不同(如:音頻幀和視頻幀幀率不同)某些DSP硬件系統(tǒng)的存儲(chǔ)容量有限(如:C54x系統(tǒng))軟件對(duì)象可能需要?jiǎng)討B(tài)地創(chuàng)建和刪除,導(dǎo)致存儲(chǔ)器需要進(jìn)行動(dòng)態(tài)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成都市雙流區(qū)川大江安小學(xué)教師招聘11人備考題庫有答案詳解
- 2025年隨州市中心醫(yī)院衛(wèi)生專業(yè)技術(shù)人員專項(xiàng)招聘21人備考題庫完整答案詳解
- 2025年拱北海關(guān)公開招聘協(xié)管員備考題庫及參考答案詳解一套
- 2025年清遠(yuǎn)市連山壯族瑤族自治縣赴高校招聘教師29人備考題庫附答案詳解
- 江西萍鄉(xiāng)人才發(fā)展集團(tuán)招聘考試真題2024
- 2025年陜西空天絲路文化運(yùn)營(yíng)管理有限責(zé)任公司社會(huì)招聘?jìng)淇碱}庫及答案詳解參考
- 2026年長(zhǎng)寧區(qū)教育系統(tǒng)教師招聘?jìng)淇碱}庫及參考答案詳解
- 銀聯(lián)企業(yè)服務(wù)(上海)有限公司2026年度招聘?jìng)淇碱}庫完整參考答案詳解
- 2025年廣州南沙人力資源發(fā)展有限公司招聘公辦幼兒園編外工作人員備考題庫及完整答案詳解一套
- 2025年清華大學(xué)軟件學(xué)院教師崗位招聘?jìng)淇碱}庫及參考答案詳解
- 畫法幾何知到章節(jié)答案智慧樹2023年浙江大學(xué)
- 少年宮剪紙社團(tuán)活動(dòng)記錄
- 生命科學(xué)前沿技術(shù)智慧樹知到答案章節(jié)測(cè)試2023年蘇州大學(xué)
- GB/T 16102-1995車間空氣中硝基苯的鹽酸萘乙二胺分光光度測(cè)定方法
- GB/T 15171-1994軟包裝件密封性能試驗(yàn)方法
- 外科護(hù)理學(xué)期末試卷3套18p
- 人員出車次數(shù)統(tǒng)計(jì)表
- 飛行區(qū)培訓(xùn)題庫
- 新蘇教版2022-2023六年級(jí)科學(xué)上冊(cè)《專項(xiàng)學(xué)習(xí):像工程師那樣》課件
- 幕墻裝飾施工組織設(shè)計(jì)
- 科傻軟件使用說明書
評(píng)論
0/150
提交評(píng)論