亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        lwIP在μTenux實(shí)時(shí)操作系統(tǒng)上的移植※

        2014-08-27 08:34:10王磊吳海洋
        關(guān)鍵詞:信號(hào)量網(wǎng)絡(luò)接口緩沖區(qū)

        王磊,吳海洋

        (大連交通大學(xué)電氣信息學(xué)院,大連116028)

        引 言

        隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,普適計(jì)算理念[1]的深化和大數(shù)據(jù)處理能力的增強(qiáng),更多數(shù)據(jù)將通過網(wǎng)絡(luò)進(jìn)行集中化、智能化處理。在此背景下,對(duì)小型嵌入式設(shè)備提出了具有網(wǎng)絡(luò)通信能力的更高要求[2]。通過在實(shí)時(shí)操作系統(tǒng)上移植網(wǎng)絡(luò)協(xié)議棧lwIP[3],將為此類設(shè)備的研發(fā)提供具有網(wǎng)絡(luò)功能的操作系統(tǒng)支持。

        lwIP是一款優(yōu)秀的輕量級(jí)嵌入式網(wǎng)絡(luò)組件,為各領(lǐng)域眾多嵌入式設(shè)備提供了小容量低成本的TCP/IP 網(wǎng)絡(luò)協(xié)議棧。當(dāng)前眾多知名半導(dǎo)體芯片廠商提供的軟件開發(fā)包中,都毫無例外地選用lwIP為網(wǎng)絡(luò)支持組件[4]。但是,不同芯片廠商的軟件開發(fā)包基于不同的操作系統(tǒng),需要切換不同的嵌入式開發(fā)環(huán)境,給開發(fā)人員學(xué)習(xí)和使用帶來了額外工作量[5],延長(zhǎng)了開發(fā)周期。μTenux作為開源免費(fèi)的實(shí)時(shí)操作系統(tǒng),支持ST、ATMEL、NXP、Freescale、TI等多家芯片廠商ARM Cortex-M 構(gòu)架的主流芯片,應(yīng)用該操作系統(tǒng)進(jìn)行產(chǎn)品研發(fā)可縮短開發(fā)周期,降低商業(yè)成本[6]。

        1 lwIP協(xié)議棧

        lwIP(lightweight IP)是瑞士計(jì)算機(jī)科學(xué)院的Adam Dunkels設(shè)計(jì)編寫而后全世界開源貢獻(xiàn)者共同升級(jí)維護(hù)的開源代碼。該組件沒有嚴(yán)格地遵循TCP/IP 協(xié)議的分層思想,采用各個(gè)協(xié)議層交叉存取和內(nèi)存共享的構(gòu)架方式,是一個(gè)以占用盡量小的資源代價(jià)實(shí)現(xiàn)TCP/IP協(xié)議棧的輕量型中間件。

        lwIP的主要特點(diǎn)如下[7]:

        ①實(shí)現(xiàn)了包括IP、ICMP、UDP、TCP、IGMP、ARP、PPPoS、PPPoE在內(nèi)的諸多網(wǎng)絡(luò)協(xié)議;

        ②協(xié)議棧支持DHCP客戶端,DNS客戶端,AutoIP/APIPA(零配置網(wǎng)絡(luò))和SNMP代理(私有的MIB支持);

        ③擁有增強(qiáng)功能的獨(dú)有API接口和可選的Berkeley風(fēng)格的Socket API接口;

        ④支持多網(wǎng)絡(luò)接口、TCP擁塞控制、延時(shí)估計(jì)和快速恢復(fù)、快速重傳機(jī)制;

        ⑤包含HTTP 服務(wù)器、SNTP 客戶端、SMTP 客戶端、ping、NetBIOS域名解析器等應(yīng)用示例。

        從上述特點(diǎn)可以看出,lwIP 是一個(gè)功能全面的協(xié)議棧。同時(shí),因?yàn)閘wIP僅僅占用RAM 空間幾十KB,ROM空間40KB左右,所以該組件成為ARM 構(gòu)架32位嵌入式設(shè)備中網(wǎng)絡(luò)中間件的首選。

        1.3.2 版本的lwIP從代碼的組織結(jié)構(gòu)上可分為4個(gè)層次,如圖1所示,其中netif是和底層物理環(huán)境緊密相關(guān)的網(wǎng)絡(luò)接口驅(qū)動(dòng)部分,該部分主要實(shí)現(xiàn)網(wǎng)絡(luò)控制器初始化和數(shù)據(jù)包收發(fā)的功能。arch是lwIP 為移植設(shè)計(jì)的操作系統(tǒng)模擬層,移植時(shí)需要?jiǎng)?chuàng)建sys_arch.c文件,并在該文件中實(shí)現(xiàn)多任務(wù),任務(wù)間消息傳遞的郵箱和信號(hào)量,同步以及超時(shí)保護(hù)等機(jī)制。core和api包含了lwIP核心代碼和應(yīng)用編程接口代碼,移植時(shí)不需要修改。值得指出的是,lwIP 在沒有操作系統(tǒng)的支持下也可以運(yùn)行,此時(shí)不需要arch組件的支持,但是lwIP只能運(yùn)行在一個(gè)線程下,會(huì)降低性能。

        圖1 lwIP組件結(jié)構(gòu)圖

        2 μTenux實(shí)時(shí)操作系統(tǒng)

        μTenux是由T-Engine中國(guó)開源社區(qū)研發(fā)推出的適用于32位ARM Cortex-M 系列內(nèi)核的嵌入式多任務(wù)硬實(shí)時(shí)操作系統(tǒng)。該操作系統(tǒng)采用可移植、可裁剪、任務(wù)可剝奪的μT-Kernel作為系統(tǒng)內(nèi)核規(guī)范,允許開發(fā)人員在小規(guī)模嵌入式系統(tǒng)上進(jìn)行優(yōu)化和裁剪。圖2 給出了μTenux操作系統(tǒng)構(gòu)架,其中內(nèi)核μT/Kernel由三部分(μT/OS、μT/SM、μT/DS)構(gòu)成[8],分別為操作系統(tǒng)內(nèi)核、管理內(nèi)核和調(diào)試內(nèi)核。底層包含完整的驅(qū)動(dòng)庫(kù)和標(biāo)準(zhǔn)C 庫(kù)文件,中間件和上層接口采用主流的第三方組件[6]。本文是μTenux中μT/Subass 研發(fā)的一部分,開源代碼會(huì)隨μTenux軟件包一起在T-Engine中國(guó)開源社區(qū)公布并不斷完善升級(jí)。

        圖2 μTenux操作系統(tǒng)構(gòu)架

        3 移植過程

        lwIP基于操作系統(tǒng)的移植主要分為三個(gè)方面[9]:①根據(jù)基于的CPU 構(gòu)架不同,需要定義和硬件相關(guān)的數(shù)據(jù)類型與結(jié)構(gòu)以及調(diào)試、測(cè)量等函數(shù)實(shí)現(xiàn)方法;②實(shí)現(xiàn)操作系統(tǒng)模擬層的多任務(wù)、郵箱、信號(hào)量、同步、時(shí)間超限等函數(shù);③根據(jù)使用的網(wǎng)絡(luò)控制器芯片不同,以及和主控芯片通信的協(xié)議不同,需要對(duì)底層以太網(wǎng)驅(qū)動(dòng)進(jìn)行移植。結(jié)合μTenux操作系統(tǒng)中的對(duì)象特點(diǎn),本部分對(duì)lwIP移植過程中的幾個(gè)要點(diǎn)進(jìn)行分析。

        3.1 lwIP郵箱函數(shù)的移植

        當(dāng)產(chǎn)生一次數(shù)據(jù)包處理時(shí),lwIP 中各個(gè)協(xié)議層之間通過維護(hù)同一個(gè)數(shù)據(jù)空間來減少數(shù)據(jù)包復(fù)制帶來的RAM損耗和時(shí)間損耗,該數(shù)據(jù)包所占空間的起始地址在各個(gè)協(xié)議層之間通過郵箱機(jī)制進(jìn)行傳遞。

        lwIP的郵箱機(jī)制需要實(shí)現(xiàn)郵箱的創(chuàng)建、刪除、發(fā)送(堵塞函數(shù),直到發(fā)送成功)、嘗試發(fā)送(發(fā)送后立即返回狀態(tài))、接收(帶有定時(shí)參數(shù),有時(shí)間限制)、嘗試接收(接收后立即返回狀態(tài))等6 個(gè)函數(shù)。按照lwIP 的移植要求,在sys_arch.c中要實(shí)現(xiàn)以上函數(shù)。μTenux本身的郵箱機(jī)制對(duì)消息結(jié)構(gòu)有特殊規(guī)定,本文采用消息緩沖區(qū)機(jī)制實(shí)現(xiàn)lwIP 的郵箱函數(shù)封裝。μTenux和其他操作系統(tǒng)功能上的區(qū)別可以從消息緩沖區(qū)的實(shí)現(xiàn)機(jī)制上得以體現(xiàn)。μTenux提供的相關(guān)函數(shù)有:建立和刪除消息緩沖區(qū),發(fā)送和接收消息以及查詢消息緩沖區(qū)的狀態(tài)。

        圖3是μTenux緩沖區(qū)機(jī)制消息傳遞過程的示意圖,每個(gè)消息緩沖區(qū)都包含一個(gè)等待發(fā)送消息的任務(wù)隊(duì)列和一個(gè)等待接收消息的任務(wù)隊(duì)列[9]。圖中,以兩個(gè)任務(wù)隊(duì)列各有一個(gè)任務(wù)為例,發(fā)送任務(wù)和接收任務(wù)通過動(dòng)作①和②實(shí)現(xiàn)消息的傳遞。每當(dāng)創(chuàng)建一個(gè)新的消息緩沖區(qū)時(shí)會(huì)產(chǎn)生一個(gè)連續(xù)的空間,內(nèi)核通過MBFCB(消息緩沖區(qū)控制塊)進(jìn)行管理,實(shí)現(xiàn)緩沖區(qū)的環(huán)狀消息結(jié)構(gòu)。在創(chuàng)建、使用和釋放消息緩沖區(qū)的過程中,μT/Kernel內(nèi)核始終對(duì)內(nèi)存進(jìn)行著最優(yōu)的管理,這個(gè)過程中不會(huì)產(chǎn)生內(nèi)存空間碎片。消息緩沖區(qū)機(jī)制可用來傳遞大小可變的消息,因?yàn)橐么藱C(jī)制實(shí)現(xiàn)lwIP的郵箱函數(shù),所以封裝時(shí)對(duì)lwIP的消息取地址,將地址作為μTenux緩沖區(qū)的內(nèi)容傳遞。

        以郵箱的創(chuàng)建為例,可以直接對(duì)tk_cre_mbf函數(shù)進(jìn)行封裝,其中maxmsz(最大消息長(zhǎng)度)的參數(shù)為sizeof(void*),是因?yàn)猷]箱傳遞的參數(shù)是數(shù)據(jù)指針,所以這里最大消息長(zhǎng)度規(guī)定不會(huì)超過這個(gè)長(zhǎng)度。代碼略——編者注。

        圖3 μTenux的消息緩沖區(qū)機(jī)制

        lwIP郵箱的其他實(shí)現(xiàn)函數(shù)也是對(duì)消息緩沖區(qū)相關(guān)函數(shù)的封裝,需要注意兩點(diǎn),μTenux的消息緩沖區(qū)函數(shù)中與時(shí)限有關(guān)的參數(shù)和lwIP中給出的定義不同;使用μTenux消息緩沖區(qū)機(jī)制傳遞的是lwIP郵箱消息的二重指針。

        3.2 lwIP信號(hào)量函數(shù)的移植

        lwIP的信號(hào)量機(jī)制需要實(shí)現(xiàn)信號(hào)量的創(chuàng)建、刪除、占用、等待等4個(gè)函數(shù)。信號(hào)量機(jī)制在操作系統(tǒng)中很常見,它一般用來指示可用資源,并將可用資源以數(shù)值的形式表示出來,多任務(wù)系統(tǒng)可以通過信號(hào)量實(shí)現(xiàn)任務(wù)間的同步和互斥控制。μTenux的信號(hào)量機(jī)制中包含一個(gè)資源計(jì)數(shù)器和一個(gè)等待信號(hào)量的任務(wù)隊(duì)列。一個(gè)任務(wù)可以發(fā)出事件通知,釋放返回m 個(gè)資源,此時(shí),信號(hào)量資源計(jì)數(shù)加m。相反,當(dāng)該任務(wù)正在等待事件獲得n個(gè)資源時(shí),信號(hào)量資源計(jì)數(shù)器將減n。如果信號(hào)量資源的數(shù)量不夠,信號(hào)量計(jì)數(shù)器可以變成負(fù)值,則嘗試獲取資源的任務(wù)進(jìn)入等待狀態(tài),直至下次有資源釋放返回。等待信號(hào)量資源的任務(wù)會(huì)被置入信號(hào)量任務(wù)隊(duì)列中。μTenux為防止過多資源同時(shí)返回到信號(hào)量,在信號(hào)量中設(shè)置一個(gè)最大信號(hào)量計(jì)數(shù)器,當(dāng)返回到信號(hào)量的資源造成最大計(jì)數(shù)的超出時(shí)報(bào)錯(cuò)[8]。lwIP的信號(hào)量實(shí)現(xiàn)可以直接使用μTenux的信號(hào)量機(jī)制。以信號(hào)量的創(chuàng)建為例,可以直接對(duì)tk_cre_sem 函數(shù)進(jìn)行封裝,其中maxsem 由用戶在sys_arch.h中設(shè)定,配置成CFN_M(jìn)AX_SEMID(μTenux 信號(hào)量的配置值),使μTenux 中的資源配置直接用于lwIP。代碼略——編者注。

        lwIP信號(hào)量的其他實(shí)現(xiàn)函數(shù)也是對(duì)相關(guān)函數(shù)的封裝,和郵箱機(jī)制的實(shí)現(xiàn)方法一樣,要考慮時(shí)限的對(duì)應(yīng)關(guān)系。

        3.3 lwIP網(wǎng)絡(luò)控制器驅(qū)動(dòng)函數(shù)的移植

        3.3.1 lwIP協(xié)議棧數(shù)據(jù)包結(jié)構(gòu)

        在lwIP中,每次數(shù)據(jù)包處理時(shí)占用的數(shù)據(jù)空間采用pbuf結(jié)構(gòu)。該結(jié)構(gòu)同BSD中的mbuf結(jié)構(gòu)類似,是網(wǎng)絡(luò)控制器驅(qū)動(dòng)程序?qū)崿F(xiàn)的核心[9]。

        lwIP的實(shí)現(xiàn)同樣基于TCP/IP 協(xié)議的分層思想,在lwIP的core組件中包含單獨(dú)命名的模塊,例如udp.c、tcp.c、dhcp.c等,它們彼此共享一個(gè)共同的數(shù)據(jù)空間,各個(gè)層次之間傳遞的是數(shù)據(jù)地址而不是數(shù)據(jù)本身,這個(gè)數(shù)據(jù)采用的是上文提到的pbuf結(jié)構(gòu),如圖4所示。pbuf結(jié)構(gòu)根據(jù)數(shù)據(jù)所在的內(nèi)存區(qū)域和申請(qǐng)方式不同,有4種不同的類型,本文以典型的PBUF_RAM 類型為例,通過圖4分析pbuf的結(jié)構(gòu)定義。

        圖4 pbuf結(jié)構(gòu)

        pbuf結(jié)構(gòu)中有7個(gè)參數(shù),通過next指針組成pbuf鏈表。一個(gè)數(shù)據(jù)包往往包含多個(gè)pbuf結(jié)構(gòu)的數(shù)據(jù),lwIP在運(yùn)行中涉及消息的接收、發(fā)送、傳遞、丟棄等操作,要通過這幾個(gè)參數(shù)中的長(zhǎng)度和標(biāo)志位來識(shí)別判斷。這種實(shí)現(xiàn)機(jī)制為lwIP協(xié)議棧節(jié)省了內(nèi)存空間和處理時(shí)間,卻為以太網(wǎng)驅(qū)動(dòng)的實(shí)現(xiàn)增加了復(fù)雜度。

        3.3.2 網(wǎng)絡(luò)接口函數(shù)的實(shí)現(xiàn)

        該部分與底層硬件聯(lián)系緊密,需實(shí)現(xiàn)5個(gè)基本函數(shù):網(wǎng)絡(luò)接口初始化函數(shù)、網(wǎng)絡(luò)接口接收函數(shù)、底層網(wǎng)絡(luò)控制器初始化函數(shù)、底層網(wǎng)絡(luò)控制器接收數(shù)據(jù)包函數(shù)、底層網(wǎng)絡(luò)控制器發(fā)送數(shù)據(jù)包函數(shù)。

        本文以Microchip公司生產(chǎn)的基于SPI接口的以太網(wǎng)控制器芯片ENC28J60[11]為例,其基本操作驅(qū)動(dòng)庫(kù)代碼采用美國(guó)SourceForge.net平臺(tái)AVRNET[12]開源項(xiàng)目中的代碼(enc28j60.c)。lwIP 底層網(wǎng)絡(luò)接口文件取名enc28j60if.c,需實(shí)現(xiàn)上面提到的5個(gè)函數(shù)。其中,底層網(wǎng)絡(luò)控制器接收數(shù)據(jù)包函數(shù)和底層網(wǎng)絡(luò)控制器發(fā)送數(shù)據(jù)包函數(shù)由于考慮到lwIP 的pbuf結(jié)構(gòu),所以不能直接使用enc28j60.c中的數(shù)據(jù)包收發(fā)函數(shù),這部分需要進(jìn)行改寫。以底層網(wǎng)絡(luò)控制器接收數(shù)據(jù)包函數(shù)為例,具體實(shí)現(xiàn)分為4步:①判斷enc28j60中是否有數(shù)據(jù)接收;②配置接收緩沖區(qū)大??;③判斷數(shù)據(jù)合法性并申請(qǐng)pbuf結(jié)構(gòu);④接收數(shù)據(jù)到pbuf結(jié)構(gòu)中。代碼略——編者注。

        ENC28J60接收的數(shù)據(jù)包由4部分組成(下一個(gè)數(shù)據(jù)包的指針、接收的狀態(tài)向量、接收的有效數(shù)據(jù)、CRC 校驗(yàn))。底層網(wǎng)絡(luò)控制器發(fā)送數(shù)據(jù)包函數(shù)用到的也是這樣的思想。此外,網(wǎng)絡(luò)接口初始化函數(shù)和網(wǎng)絡(luò)接口接收函數(shù)直接使用lwIP提供的模版函數(shù),底層網(wǎng)絡(luò)控制器初始化函數(shù)配置lwIP的netif接口后調(diào)用enc28j60.c中的初始化函數(shù)即可。

        4 lwIP移植的簡(jiǎn)單測(cè)試用例

        以STM32F407VG[13]和ENC28J60 為例,在μTenux軟件包中,已經(jīng)對(duì)STM32F407VG 的時(shí)鐘和串口進(jìn)行了初始化設(shè)置,添加SPI接口初始化函數(shù)即可進(jìn)行l(wèi)wIP的移植測(cè)試。本部分先介紹lwIP的應(yīng)用編程接口,然后給出測(cè)試實(shí)例和結(jié)果。

        4.1 lwIP的API接口說明

        lwIP為用戶編寫上層應(yīng)用代碼提供了三種不同的API接口,分別是原始API接口、高性能專用的sequential API接口和Berkeley風(fēng)格的Socket API接口。當(dāng)不提供操作系統(tǒng)支持的時(shí)候只能使用原始API接口,當(dāng)提供操作系支持時(shí),三種接口方式都可以使用。

        基于前文,當(dāng)完成了lwIP基于μTenux 的操作系 統(tǒng) 模 擬 層 移 植 和ENC28J60 的以太網(wǎng)網(wǎng)絡(luò)接口的函數(shù)封裝,建立了如圖5所示的依賴關(guān)系,這時(shí)就可以進(jìn)行程序編寫和測(cè)試了。

        圖5 lwIP依賴關(guān)系

        4.2 一個(gè)簡(jiǎn)單的HTTP服務(wù)器實(shí)現(xiàn)

        為了檢驗(yàn)移植后的lwIP是否能夠正常運(yùn)行,使用lwIP的sequential API寫一個(gè)簡(jiǎn)單的HTTP服務(wù)器程序[14]。

        程序中,將html語言的字符串存儲(chǔ)在一個(gè)靜態(tài)變量htmltestdata中,在主函數(shù)中創(chuàng)建一個(gè)名為http_task的進(jìn)程函數(shù),在該進(jìn)程函數(shù)中完成以下幾步:①初始化lwIP協(xié)議棧,注冊(cè)網(wǎng)絡(luò)接口;②允許STM32F407VG 接收SPI外部中斷,使ENC28J60接收到數(shù)據(jù)之后可以馬上處理;③新建一個(gè)TCP鏈接,并監(jiān)聽端口號(hào)80;④當(dāng)監(jiān)聽到客戶端連接后處理客戶端接收到的數(shù)據(jù)。完成上述4步之后,當(dāng)發(fā)現(xiàn)客戶端請(qǐng)求的數(shù)據(jù)并且能正確解析時(shí),則將htmltestdata返回,這樣就實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的HTTP服務(wù)器。

        建立TCP連接部分代碼略——編者注。

        編譯成功并運(yùn)行后,通過在Windows控制臺(tái)上執(zhí)行ping命令,并且打開瀏覽器在地址欄中輸入網(wǎng)絡(luò)接口初始化時(shí)綁定的IP地址,圖6和圖7的測(cè)試結(jié)果表明ARP、ICMP、IP和TCP協(xié)議運(yùn)行正常。

        圖6 ping命令測(cè)試

        結(jié) 語

        lwIP是一款優(yōu)秀的免費(fèi)開源的TCP/IP網(wǎng)絡(luò)中間件,基于μTenux的lwIP移植結(jié)合了操作系統(tǒng)的優(yōu)勢(shì),可以用于嵌入式設(shè)備的產(chǎn)品研發(fā)上。本文下一步研究工作考慮結(jié)合μTenux實(shí)時(shí)系統(tǒng)的消息郵箱和內(nèi)存管理特性,以改進(jìn)lwIP中pbuf結(jié)構(gòu)的內(nèi)存申請(qǐng)方式,縮減移植后的lwIP代碼量,降低運(yùn)行時(shí)ROM 和RAM 占用量,進(jìn)一步優(yōu)化lwIP的實(shí)時(shí)性和穩(wěn)定性。

        圖7 HTTP應(yīng)用示例

        編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

        [1]Wikipedia.Ubiquitous computing[OL].[2013-08].http://en.wikipedia.org/wiki/Ubiquitous_computing.

        [2]張園園.高性能嵌入式系統(tǒng)網(wǎng)絡(luò)協(xié)議棧關(guān)鍵技術(shù)研究與實(shí)踐[D].北京:北京郵電大學(xué),2010.

        [3]Dunkels A.Design and Implementation of the LwIP TCP/IP Stack[D].Stockholm:Swedish Institute of Computer Science,2001.

        [4]李志明.STM32 嵌入式系統(tǒng)開發(fā)實(shí)戰(zhàn)指南:FreeRTOS 與LwIP聯(lián)合移植[M].北京:機(jī)械工業(yè)出版社,2013.

        [5]Scaglia S.嵌入式Internet TCP/IP基礎(chǔ)、實(shí)現(xiàn)及應(yīng)用[M].潘琢金,等譯.北京:北京航空航天大學(xué)出版社,2008.

        [6]T-Engine中國(guó)開源社區(qū).μTenux嵌入式操作系統(tǒng)——μT/Kernel內(nèi)核規(guī)范[OL].[2013-08].http://www.tecoss.org.

        [7]Savannah.lwIP-A Lightweight TCP/IP stack,2013.

        [8]坂村健.嵌入式實(shí)時(shí)操作系統(tǒng)T-Kernel2.0[M].梁青,譯.北京:北京航空航天大學(xué)出版社,2012.

        [9]朱升林.嵌入式網(wǎng)絡(luò)那些事:LwIP 協(xié)議深度剖析與實(shí)戰(zhàn)演練[M].北京:中國(guó)水利水電出版社,2012.

        [10]邱書波,陳偉.基于ARM 的輕量級(jí)TCP/IP協(xié)議棧的研究及移植[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(8):90-92.

        [11]Microchip.ENC28J60,2013.

        [12]Source Forge.AVRnet,2013.

        [13]ST.STM32F407VG,2013.

        [14]Christian L.嵌入式協(xié)議棧μCTCP-IP——基于STM32微控制器[M].鄺堅(jiān),譯.北京:北京航空航天大學(xué)出版社,2013.

        猜你喜歡
        信號(hào)量網(wǎng)絡(luò)接口緩沖區(qū)
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
        基于STM32的mbedOS信號(hào)量調(diào)度機(jī)制剖析
        變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        Nucleus PLUS操作系統(tǒng)信號(hào)量機(jī)制的研究與測(cè)試
        淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
        關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
        網(wǎng)絡(luò)設(shè)置管理
        京滬高鐵GSM-R網(wǎng)絡(luò)接口監(jiān)測(cè)網(wǎng)關(guān)子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        μC/OS- -III對(duì)信號(hào)量的改進(jìn)
        Linux操作系統(tǒng)信號(hào)量機(jī)制的實(shí)時(shí)化改造
        一区二区和激情视频| 亚洲av无码一区二区乱子仑| 亚洲另类激情综合偷自拍图| 国产成人啪精品视频免费软件| 国产av无码专区亚洲av手机麻豆| 国产精品18久久久久久首页| 久久91精品国产91久| 亚洲男人在线天堂av| 美女人妻中出日本人妻| 欧美村妇激情内射| 一本加勒比hezyo无码人妻| 日韩中文字幕不卡网站| 老熟女熟妇嗷嗷叫91| 亚洲av一区二区网址| 国产免费二区三区视频| 在线播放免费人成毛片乱码| 国产精品白丝喷水在线观看| 国产精品午夜波多野结衣性色| 久久精品国产亚洲av桥本有菜| 亚洲精彩av大片在线观看| 四虎影在永久在线观看| 日日碰狠狠添天天爽无码| 亚洲欧洲日产国产AV无码| 男男互吃大丁视频网站| 中美日韩在线一区黄色大片| 免费无遮挡无码永久视频| 性动态图av无码专区| 老熟女一区二区免费| 少妇人妻系列中文在线| 亚洲av无码国产精品久久| 小宝极品内射国产在线| 国产精品国产三级在线高清观看| 中文字幕丰满人妻有码专区| 青青草亚洲视频社区在线播放观看 | 水蜜桃精品一二三| 国产乱人伦偷精品视频免| 69精品人妻一区二区| 国产变态av一区二区三区调教| 内地老熟女老少配视频| 欧美在线资源| 亚洲视一区二区三区四区|