久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇DSP專區(qū)DSP系統(tǒng)和硬件開發(fā)討論區(qū) → TI通信開發(fā)套件NDK是什么?


  共有9717人關(guān)注過本帖樹形打印

主題:TI通信開發(fā)套件NDK是什么?

客人(58.34.*.*)
  1樓


TI通信開發(fā)套件NDK是什么?  發(fā)帖心情 Post By:2009-3-10 21:41:44

 

TI通信開發(fā)套件NDK

2.1 NDK開發(fā)套件的高效率設(shè)計(jì)

為了加速其高檔DSP的網(wǎng)絡(luò)化進(jìn)程,TI公司結(jié)合其C6000系列芯片推出了TCP/IP NDK (Network Developer’s Kit)開發(fā)套件。

NDK主要的組件包括:(1)支持TCP/TP協(xié)議棧程序庫。其中主要包含的庫有:支持TCP/IP網(wǎng)絡(luò)工具的庫,支持TCP/IP協(xié)議棧與DSP/BIOS平臺(tái)的庫,網(wǎng)絡(luò)控制以及線程調(diào)度的庫(包括協(xié)議棧的初始化以及網(wǎng)絡(luò)相關(guān)任務(wù)的調(diào)度)(2)示范程序。其中主要包括DHCP/Telnet客戶端,HTTP/數(shù)據(jù)服務(wù)器示范等。(3)支持文檔 包括用戶手冊(cè)、程序員手冊(cè)和平臺(tái)適應(yīng)手冊(cè)。

NDK采用緊湊的設(shè)計(jì)方法,實(shí)現(xiàn)了用較少的資源耗費(fèi)來支持TCP/IP。從實(shí)用效果看,NDK僅用200~250K程序空間和95K數(shù)據(jù)空間即可支持常規(guī)的TCP/IP服務(wù),包括應(yīng)用層的telnet、DHCP、HTTP等。為了最大限度地減少資源消耗,TI為其NDK采用了許多特殊的技巧,重要的有:(1)UDP socket和RAW socket不使用發(fā)送或接收緩沖區(qū);(2)TCP socket使用發(fā)送緩沖區(qū),接收緩沖區(qū)依配置文件而定;(3)低層驅(qū)動(dòng)程序與協(xié)議棧之間通過指針傳遞數(shù)據(jù),不對(duì)包進(jìn)行復(fù)制拷貝;4、設(shè)置專門的線程清除存儲(chǔ)器中的碎片和檢查存儲(chǔ)器泄露。因此,NDK很適合目前嵌入式系統(tǒng)的硬件環(huán)境,是實(shí)現(xiàn)DSP聯(lián)網(wǎng)通信的重要支撐工具。

NDK的軟件開發(fā)環(huán)境是TI的開發(fā)工具CCS(code composer studio)。它包含有實(shí)時(shí)操作系統(tǒng)DSP/BIOS和主機(jī)與目標(biāo)板之間的實(shí)時(shí)數(shù)據(jù)交換軟件RTDX。

2.2  NDK的配置和使用

在CCS下使用NDK需要在以下幾點(diǎn)上做特別處理:

(1)設(shè)置DSP/BIOS

PRD設(shè)置主時(shí)鐘。硬件抽象層的時(shí)鐘驅(qū)動(dòng)需要一個(gè)100ms啟動(dòng)一次的PRD函數(shù)作為主時(shí)鐘,函數(shù)名是llTimerTick()。

HOOK為TCP/IP協(xié)議棧設(shè)置保存的空間。OS庫的任務(wù)調(diào)度模塊需要調(diào)用hook來保存和調(diào)用TCP/IP協(xié)議棧的環(huán)境變量指針,這兩個(gè)hook函數(shù)是NDK_hookInit() 和 NDK_hookCreate()。

(2)包含文件和庫文件

請(qǐng)注意編譯時(shí)需要包含庫文件和文件路徑,一般默認(rèn)為c:\ti\c6000\ndk\inc

(3)CCS工程編譯時(shí)的鏈接順序

CCS一般按照特定的順序來鏈接目標(biāo)函數(shù)和庫文件,NDK是對(duì)這個(gè)鏈接順序很敏感的,錯(cuò)誤的順序可以導(dǎo)致重復(fù)定義符號(hào)甚至不正確執(zhí)行等錯(cuò)誤。為避免這個(gè)情況,可以在CCS里選擇Link Order"-> "build options對(duì)話框,將文件按照一定順序添加并且將庫文件添置到連接順序的最后,推薦的順序?yàn)椋篘ETCTRL.LIB,HAL_xxx.LIB,NETTOOL.LIB,STACK.LIB和OS.LIB。

在初始化啟動(dòng)協(xié)議棧之前,要為其分配一塊工作內(nèi)存(SDRAM),命令是_mmBulkAllocSeg( EXTERN1 )。還要調(diào)用fdOpenSession()來初始化文件指針向量表,否則創(chuàng)建socket的時(shí)候?qū)⒊霈F(xiàn)錯(cuò)誤。

我們將發(fā)送/接收設(shè)置定義為一個(gè)任務(wù),在創(chuàng)建任務(wù)句柄以前,我們應(yīng)該用NC_SystemOpen()打開網(wǎng)絡(luò)功能并進(jìn)行設(shè)置,在系統(tǒng)關(guān)閉前也要進(jìn)行相應(yīng)的處理。

使用NDK提供的socket API函數(shù)需要注意下面一些問題:(1)NDK中對(duì)socket API 通過一個(gè)文件指針接口與操作系統(tǒng)相連接,因此要調(diào)用文件指針向量表初始化和關(guān)閉函數(shù)對(duì)文件系統(tǒng)進(jìn)行相應(yīng)操作。(2)NDK中并沒有提供windows API中強(qiáng)大的select函數(shù),但是可以用fdselect實(shí)現(xiàn)一些相應(yīng)的工程。可以相互對(duì)應(yīng)得API函數(shù)還有NDK中的fdclose 和標(biāo)準(zhǔn)的close, NDK中的fderror和標(biāo)準(zhǔn)的errno.(3) NDK提供了很多網(wǎng)絡(luò)工具的支持的函數(shù),比如和DNS相關(guān)的一些函數(shù),可以代替標(biāo)準(zhǔn)API中的getpeername, gethostname等。另外還有關(guān)于IGMP的一些函數(shù)可以用來支持組播,但是只支持作為組播用戶,不能支持作為組播服務(wù)器。

3NDK傳輸UDP數(shù)據(jù)包效率測試及性能分析

3.1測試平臺(tái)結(jié)構(gòu)

我們研究了在NDK下CPU對(duì)UDP數(shù)據(jù)包發(fā)送接收的效率,這個(gè)測試分成兩部分:一部分是測試從DM642向PC機(jī)發(fā)送UDP數(shù)據(jù)包時(shí),在不同的傳輸速率和不同的L2 cache大小時(shí)的CPU占用率,另一部分是測試DM642接收從PC機(jī)發(fā)送來數(shù)據(jù)包時(shí),在不同的傳輸速率和不同的L2 cache大小時(shí)的CPU占用率。我們所使用的工具是在CCS下的NDK提供的socket API函數(shù)和在visual studio下提供的winsocket API。圖4是測試環(huán)境的示意圖。

圖4:NDK測試環(huán)境示意圖

3.2 測試平臺(tái)的配置和實(shí)現(xiàn)

由于接收和發(fā)送程序十分相似,我們僅以發(fā)送程序舉例。創(chuàng)建發(fā)送數(shù)據(jù)的程序?yàn)橐粋(gè)任務(wù),在DSP/BIOS中,任務(wù)對(duì)象就是被TSK模塊管理的線程。TSK模塊根據(jù)任務(wù)的優(yōu)先級(jí)和當(dāng)前的執(zhí)行狀態(tài)動(dòng)態(tài)的調(diào)度。DSP/BIOS總共有15個(gè)任務(wù)優(yōu)先級(jí)可以使用,并且提供了一組函數(shù)來操縱任務(wù)對(duì)象,包括建立、刪除、設(shè)置任務(wù)對(duì)象。任何任務(wù)對(duì)象都處于下面幾種狀態(tài)之一:運(yùn)行態(tài),就緒態(tài),阻塞態(tài),終止態(tài)。

在這個(gè)工程中,我們?cè)诰W(wǎng)絡(luò)控制的程序中進(jìn)行任務(wù)的創(chuàng)建,圖5是創(chuàng)建任務(wù)的流程圖:

圖5:傳輸任務(wù)創(chuàng)建流程圖

其中創(chuàng)建任務(wù)的語句為:TaskCreate( tsk_udp, "udp_video", 5, 0x1000, peer_addr , 12345, 12345 )。理論上,可以通過設(shè)置兩個(gè)task的方法來增加數(shù)據(jù)傳輸?shù)乃俾剩亲⒁膺@兩個(gè)task應(yīng)該用不同的端口進(jìn)行傳送。任務(wù)調(diào)度的應(yīng)用程序?yàn)椋?/p>

static void tsk_udp( IPN IPAddr, int PeerPort , int LocalPort)

{        ……

// 創(chuàng)建 socket

s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

……

// 設(shè)置要綁定的地址端口屬性

bzero( &sin1, sizeof(struct sockaddr_in) );

sin1.sin_family      = AF_INET;

sin1.sin_len         = sizeof( sin1 );

sin1.sin_port        = htons(LocalPort);

//綁定IP地址和端口

if( bind( s, (PSA) &sin1, sizeof(sin1) ) < 0 )

{ goto exit_tsk;}

//設(shè)定目的地址端口屬性

bzero( &sin1, sizeof(struct sockaddr_in) );

sin1.sin_family    = AF_INET;

sin1.sin_len       = sizeof( sin1 );

sin1.sin_addr.s_addr = IPAddr;

sin1.sin_port      = htons(PeerPort);

……

// 分配工作緩沖區(qū)

if( !(pBuf = mmBulkAlloc( 1024 )) )

{goto exit_tsk;}

// 一下開始發(fā)送數(shù)據(jù)

for(;;)

{        // 填充發(fā)送數(shù)據(jù)的緩沖區(qū)

*(int*)pBuf=send_udp_count++

// 發(fā)送數(shù)據(jù)

if( sendto( s, pBuf, 1000, 0, &sin1, sizeof(sin1) ) < 0 )

         { goto exit_tsk;//break;}

// 清空數(shù)據(jù)區(qū)

mmZeroInit( pBuf, (uint)test );

//設(shè)置發(fā)送數(shù)據(jù)率

       TaskSleep(8);    // 1Mbit/s

}

……

}

測試?yán)锩嬗袃蓚(gè)關(guān)鍵參數(shù)需要設(shè)置,一個(gè)是發(fā)送(接收)的數(shù)據(jù)率和DM642內(nèi)部第二級(jí)緩存的大小。收發(fā)的數(shù)據(jù)率可以通過改變?nèi)蝿?wù)掛起的時(shí)間間隔長度來改變。系統(tǒng)函數(shù)TaskSleep(n)表示每隔n毫秒執(zhí)行一次發(fā)送,我們?cè)O(shè)定每次發(fā)送1000 Byte的數(shù)據(jù),這樣TaskSleep(8)表示1Mbit/s的傳輸速率,TaskSleep(4)表示2Mbit/s的傳輸速率,以此類推。

而L2 cache大小的改變可以通過以下語句來設(shè)置:

CACHE_setL2Mode(CACHE_64KCACHE)表示設(shè)置了64K L2 Cache;CACHE_setL2Mode(CACHE_128KCACHE)表示設(shè)置了128K L2 Cache,以此類推。

3.3 測試結(jié)果和性能分析

我們?cè)贒M642評(píng)估版上,采用標(biāo)準(zhǔn)的recvfrom函數(shù)進(jìn)行數(shù)據(jù)接收,以無連接的UDP協(xié)議與windows PC進(jìn)行相互傳輸。對(duì)不同傳輸速率和不同大小的二級(jí)緩存下CPU的占用率進(jìn)行了比較。

CPU占用率=空閑周期可完成的低優(yōu)先級(jí)任務(wù)/ 執(zhí)行傳輸任務(wù)時(shí)可完成的低優(yōu)先級(jí)任務(wù)

其中接收和發(fā)送數(shù)據(jù)均設(shè)為每次1000 Byte,評(píng)測結(jié)果在下面四個(gè)圖表里面顯示出來。

傳輸速率(Mbit/s)

64KCache

128KCache

256KCache

0.4

0.29

0.21

0.19

0.8

0.58

0.45

0.38

2

1.1

1.02

0.96

4

2.64

2.26

1.88

8

5.11

4.38

3.64

16

9.86

8.25

6.89

表1:由DM642發(fā)送UDP數(shù)據(jù)包的CPU占用率(%)

圖6:DM642發(fā)送UDP數(shù)據(jù)包CPU占用率比較圖

傳輸速率(Mbit/s)

64KCache

128KCache

256KCache

0.4

0.2

0.13

0.14

0.8

0.35

0.28

0.27

2

0.82

0.7

0.67

4

1.62

1.34

1.34

8

3.65

2.69

2.68

表2:由DM642 UDP數(shù)據(jù)包的CPU占用率(%)

圖7:DM642接收UDP數(shù)據(jù)包CPU占用率比較圖

從上面的比較可以看出 DM642發(fā)送和接收數(shù)據(jù)包時(shí)的CPU占用率均隨著網(wǎng)絡(luò)傳輸速率的增加而提高,而且基本上呈線性關(guān)系。因?yàn)槭瞻l(fā)數(shù)據(jù)是對(duì)數(shù)據(jù)簡單的搬移,它的復(fù)雜度是隨著數(shù)據(jù)的增加而線性增長的,在高速緩存一定得情況下CPU的占用率線性增加。

而第二級(jí)緩存的大小對(duì)CPU的占用率也有影響,一般而言是L2 cache越大,CPU占用率越小,而且隨著收發(fā)數(shù)據(jù)率的變大而顯得更加明顯,這個(gè)得益于DM642兩級(jí)緩存的工作原理和強(qiáng)大的DMA功能。

L2 cache增大帶來的另一個(gè)影響是CPU片內(nèi)存儲(chǔ)容量的減少,使得片內(nèi)能放下的代碼段和數(shù)據(jù)段就比較少,這樣反而會(huì)減緩程序的運(yùn)行速度,這在處理復(fù)雜的編解碼程序,數(shù)據(jù)段和代碼段比較多時(shí)尤為明顯,這就需要程序員根據(jù)實(shí)際情況統(tǒng)籌安排合理配置。

4.總結(jié)與展望

為了研究在嵌入式芯片上進(jìn)行高速多媒體通信的可行性,本文討論了TI DM642上NDK設(shè)計(jì)的原理,并進(jìn)行了與PC機(jī)實(shí)時(shí)數(shù)據(jù)通信的測試。測試表明TI公司推出的NDK套件在DM642芯片上實(shí)現(xiàn)了高效率的TCP/IP傳輸協(xié)議,即使高達(dá)16Mbit/s的傳輸速率,CPU的占用率也不到10%,這使得它完成多路的視頻傳輸也綽綽有余,這是DM642能夠廣泛應(yīng)用于各種多媒體通信設(shè)備和終端的有力保證。再配合DM642芯片強(qiáng)大的多媒體處理功能,使得其在多媒體通信市場上有廣闊的前景。值得我們?nèi)パ芯亢完P(guān)注。


支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

TI通信開發(fā)套件NDK是什么?








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚洲无玛一区| 日韩.欧美.亚洲| 国产精品视频第一区| 久久综合九九| 久久狠狠亚洲综合| 精品国产人成亚洲区| 欧美精品中文字幕一区二区| 老司机精品视频导航| 26uuu另类欧美亚洲曰本| 美媛馆国产精品一区二区| 久色婷婷小香蕉久久| 国产日韩欧美激情| 在线看一区二区| ts人妖另类在线| 男男成人高潮片免费网站| 欧美精品一区二区三区蜜桃| 日韩欧美激情一区二区| 懂色av中文一区二区三区 | 日韩成人av网站| 国产一区三区三区| 日韩一区在线看| 制服丝袜日韩国产| 欧洲一区二区日韩在线视频观看免费 | 欧美日韩高清免费| 国产毛片精品一区| 一区二区三区精品| 日韩欧美国产午夜精品| 无遮挡亚洲一区| 9a蜜桃久久久久久免费| 免费观看一级欧美片| 国产精品久久久久一区二区三区共| 欧美三级资源在线| 欧美精品一区二区三区在线看午夜 | 正在播放一区二区| 日韩精品无码一区二区三区| av不卡在线播放| 美女一区二区在线观看| **欧美大码日韩| 精品国产制服丝袜高跟| 色欧美日韩亚洲| 九九九九精品九九九九| 成人综合日日夜夜| 琪琪久久久久日韩精品| 亚洲欧美自拍偷拍色图| 欧美videofree性高清杂交| 最新不卡av| 欧美日韩电影一区二区三区| 91久色国产| 国产不卡视频一区二区三区| 日本va欧美va瓶| 亚洲伊人伊色伊影伊综合网| 久久精品一二三| 日韩亚洲欧美中文三级| 在线国产电影不卡| 日韩不卡av| 久久精品二区| 国产精品10p综合二区| 成人在线一区二区三区| 捆绑紧缚一区二区三区视频| 亚洲五月六月丁香激情| 国产精品日韩成人| 久久欧美一区二区| 日韩欧美视频在线| 欧美日韩免费视频| 色婷婷久久久综合中文字幕 | 北条麻妃国产九九精品视频| 国产一区二区三区av电影| 日韩精品乱码免费| 亚洲国产日韩在线一区模特| 1区2区3区国产精品| 国产欧美一区二区精品忘忧草 | 欧美第一区第二区| 在线不卡免费av| 欧美午夜片在线看| 91久久精品国产91性色tv| 亚洲欧美影院| 亚洲成色www久久网站| 欧美久久久久久久| 欧美日韩免费精品| 欧美亚洲免费高清在线观看| 精品一区二区三区免费毛片| 国产精品一区二区av| www.久久久| 99国产视频| 97超碰人人看人人| av噜噜色噜噜久久| 超碰97国产在线| 俄罗斯精品一区二区三区| 99久久自偷自偷国产精品不卡| 91麻豆视频网站| 91免费观看| 国产有色视频色综合| 国产在线播放一区二区| 久久精品国产一区二区三区日韩 | 一区二区中文视频| 国产精品久久久久影院老司 | 51午夜精品国产| 91精品在线麻豆| 日韩免费在线观看| 久久婷婷久久一区二区三区| 久久蜜臀中文字幕| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 一区二区三区电影在线播| 亚洲免费电影在线| 亚洲无人区一区| 日韩精品免费专区| 韩国v欧美v亚洲v日本v| 福利一区二区在线| 91在线免费看| 国产精品日本一区二区| 九九九九久久久久| 亚洲二区自拍| 精品视频999| 精品久久久久久久人人人人传媒| 国产婷婷色一区二区三区在线| 亚洲欧洲99久久| 婷婷综合久久一区二区三区| 九色综合国产一区二区三区| 懂色av噜噜一区二区三区av| av免费观看久久| 日韩欧美一区二区在线观看| 欧美午夜一区二区三区| 欧美xxxxxxxx| 最新不卡av在线| 日韩av在线免费观看不卡| 国产精品18久久久| 国产精品制服诱惑| 尤物一区二区三区| 日韩一区二区精品在线观看| 久久老女人爱爱| 一区二区三区久久久| 九九精品一区二区| 91蜜桃免费观看视频| 欧美视频1区| 欧美日韩视频一区二区| 久久网站热最新地址| 一级精品视频在线观看宜春院| 久久狠狠亚洲综合| 91传媒视频免费| 亚洲精品日韩成人| 欧美一级在线视频| 亚洲色图视频网站| 久久精品久久99精品久久| 99精品久久只有精品| 色综合666| 欧美精品一区男女天堂| 亚洲在线视频免费观看| 国产精品白丝av| 麻豆一区区三区四区产品精品蜜桃| 欧美在线看片a免费观看| 国产日韩成人精品| 日韩 欧美一区二区三区| 91丨porny丨蝌蚪视频| 亚洲一区二区在| 久久久久久99精品| 日韩二区三区四区| 51成人做爰www免费看网站| 一区精品视频| 日本一区二区三区久久久久久久久不 | 91入口在线观看| 色综合视频在线观看| 久久综合一区二区| 丝袜亚洲精品中文字幕一区| 99久久99久久免费精品蜜臀| 中国成人在线视频| 日本一区二区三区国色天香| 蜜臀久久久99精品久久久久久| 不卡一区二区三区四区五区| 在线观看av一区二区| 国产精品网站导航| 国产精品自拍三区| 亚洲一区高清| 国产精品国产三级国产aⅴ中文 | 精品综合免费视频观看| 黄色一区三区| 日韩一级黄色片| 亚洲r级在线视频| 成人永久免费| 欧美一区二区视频在线观看2020 | 国产无遮挡一区二区三区毛片日本| 日日噜噜夜夜狠狠视频欧美人| 99超碰麻豆| 91精品欧美综合在线观看最新| 一区av在线播放| 国产精品播放| 欧美精品1区2区3区| 亚洲成人av资源| 国产精品一区二区三区免费观看| 91麻豆精品国产91久久久久| 亚洲第一激情av| 精品国产一区二区三区日日嗨| 欧美sm美女调教| 捆绑调教一区二区三区| 色爱区成人综合网| 国产精品不卡在线| 白白色亚洲国产精品| 在线不卡的av| 蜜臀国产一区二区三区在线播放| 欧美日韩免费高清| 国产精品久久久久影院亚瑟 |