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

        ?

        基于Android的BSP移植自動(dòng)適配技術(shù)

        2014-06-07 05:53:26楊海民
        計(jì)算機(jī)工程 2014年11期
        關(guān)鍵詞:源碼開發(fā)板驅(qū)動(dòng)程序

        楊海民,張 濤,趙 敏,尤 峻,董 民

        (解放軍理工大學(xué)a.指揮信息系統(tǒng)學(xué)院;b.通信工程學(xué)院,南京210007)

        基于Android的BSP移植自動(dòng)適配技術(shù)

        楊海民a,張 濤a,趙 敏a,尤 峻a,董 民b

        (解放軍理工大學(xué)a.指揮信息系統(tǒng)學(xué)院;b.通信工程學(xué)院,南京210007)

        當(dāng)前Android的板級(jí)支持包(BSP)移植開發(fā)人員不僅需要熟悉具體型號(hào)芯片的開發(fā)手冊(cè),還需要調(diào)整部分驅(qū)動(dòng)封裝代碼,工作效率較低。為此,通過對(duì)Android Linux內(nèi)核源代碼進(jìn)行重構(gòu),設(shè)計(jì)并實(shí)現(xiàn)一種基于源代碼分類管理的Andriod BSP移植管理框架。形式化定義Android Linux內(nèi)核源碼重構(gòu)規(guī)則,基于該規(guī)則對(duì)Android Linux內(nèi)核源碼按照原生Linux內(nèi)核代碼、Google Android驅(qū)動(dòng)程序、廠商板硬件相關(guān)BSP代碼3類進(jìn)行管理,設(shè)計(jì)Android BSP移植自動(dòng)適配工具,實(shí)現(xiàn)面向特定開發(fā)板和特定Linux內(nèi)核版本的Android Linux內(nèi)核源代碼自動(dòng)生成。測(cè)試結(jié)果表明,該管理框架能夠提高BSP移植開發(fā)人員移植和升級(jí)開發(fā)板Android Linux內(nèi)核的工作效率。

        Linux內(nèi)核;Android Linux內(nèi)核源碼;組織結(jié)構(gòu);重構(gòu);板級(jí)支持包移植;自動(dòng)適配技術(shù)

        1 概述

        Google Android自2007年11月首次發(fā)布以來,已經(jīng)歷了數(shù)個(gè)版本更新,市場(chǎng)上采用該系統(tǒng)的移動(dòng)設(shè)備數(shù)量也在飛速增長(zhǎng)。為便于系統(tǒng)的移植和硬件適配,Google Android系統(tǒng)被設(shè)計(jì)成分層的架構(gòu),自底向上分別是Linux內(nèi)核層、本地層(Native)/運(yùn)行時(shí)層 (Runtime)、框架層(Framework)和應(yīng)用層(Application)[1]。Android系統(tǒng)運(yùn)行的基礎(chǔ)是Linux,所有的硬件驅(qū)動(dòng)程序、設(shè)備管理和進(jìn)程間通信機(jī)制都在底層Linux內(nèi)核中實(shí)現(xiàn)。為了在不同架構(gòu)、不同配置的硬件設(shè)備上移植運(yùn)行Android系統(tǒng),針對(duì)底層Linux的移植是最重要的步驟。目前,Android系統(tǒng)Linux內(nèi)核源碼移植適配主要采用人工對(duì)比分析的方式,內(nèi)核移植和升級(jí)過程中的主要技術(shù)難點(diǎn)在于:(1)同一個(gè)Linux內(nèi)核版本需要適配不同處理器和開發(fā)板,需要將不同板級(jí)支持包(Board Support Package,BSP)(主要是廠商的特定硬件的驅(qū)動(dòng)程序)移植到同一版本Linux原生內(nèi)核中;(2)將不同的Linux內(nèi)核版本移植到同一個(gè)開發(fā)板或硬件設(shè)備上,需要將不同版本Linux內(nèi)核源碼和同一BSP源碼進(jìn)行移植合并。當(dāng)前Android Linux內(nèi)核移植和版本升級(jí)工作費(fèi)時(shí)費(fèi)力,工作效率不高,亟待研究一種高效的Android BSP源碼移植適配技術(shù)。

        針對(duì)上述Android Linux內(nèi)核移植過程中的問題,本文形式化定義一套內(nèi)核代碼重構(gòu)規(guī)則,對(duì)Android Linux內(nèi)核源碼進(jìn)行重構(gòu),設(shè)計(jì)一種基于源碼分類管理的BSP移植框架,實(shí)現(xiàn)一個(gè)Android BSP移植自動(dòng)適配工具,從而提高BSP移植開發(fā)人員代碼管理維護(hù)和升級(jí)工作效率,減少BSP移植的難度和工作量。

        2 相關(guān)工作與研究現(xiàn)狀

        近年來,隨著以智能手機(jī)和平板電腦為代表的移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)的迅猛發(fā)展,支撐智能移動(dòng)設(shè)備開發(fā)的關(guān)鍵技術(shù)——嵌入式系統(tǒng)BSP移植開發(fā)方法在工業(yè)界和學(xué)術(shù)界受到的關(guān)注越來越多。一直以來,針對(duì)嵌入式系統(tǒng)BSP移植的研究?jī)?nèi)容主要包括移植的操作系統(tǒng)與硬件設(shè)備的通信協(xié)議研究,以及BSP移植適配軟硬件協(xié)同技術(shù)研究與工具實(shí)現(xiàn)。

        文獻(xiàn)[2]提出ProGram正則語(yǔ)言用來描述硬件和軟件間的通信協(xié)議,該協(xié)議可以被編譯成實(shí)際軟件代碼,但是該協(xié)議不易在Android Linux操作系統(tǒng)環(huán)境中整合使用。文獻(xiàn)[3]引入了一種通過事件驅(qū)動(dòng)狀態(tài)機(jī)來描述硬件設(shè)備行為、通信協(xié)議、規(guī)則聲明和代碼生成的設(shè)備驅(qū)動(dòng)開發(fā)方法,解決了嵌入式系統(tǒng)BSP設(shè)備驅(qū)動(dòng)的移植性問題,但是沒有涉及到處理器各控制器的抽象,此外需要使用一系列的外部工具,并且規(guī)則過于復(fù)雜,在本文討論的Android BSP移植適配環(huán)境下可適用度較低。

        目前基于嵌入式系統(tǒng)的BSP移植工作主要集中在VxWorks[4-6]和Windows CE[7-8]系統(tǒng)上,基于嵌入式Linux系統(tǒng)的BSP移植工作較少。另外,基于嵌入式Linux系統(tǒng)的BSP移植技術(shù)主要是解決硬件初始化、操作系統(tǒng)引導(dǎo)加載、硬件設(shè)備驅(qū)動(dòng)等問題。文獻(xiàn)[9]著眼于解決這些問題,在進(jìn)行比較的基礎(chǔ)上提出了比較完整的BSP解決思路,深入分析和比較了BSP的硬件初始化、引導(dǎo)代碼設(shè)計(jì)、驅(qū)動(dòng)程序框架結(jié)構(gòu)和設(shè)計(jì)思路等。文獻(xiàn)[10]分析比較了BSP技術(shù)和PC機(jī)的BIOS技術(shù)的特點(diǎn),提出了BSP的工作職責(zé),并詳細(xì)介紹描述了嵌入式Linux的引導(dǎo)技術(shù)和設(shè)備驅(qū)動(dòng)程序框架。以上文獻(xiàn)都需要進(jìn)行大量代碼研讀和分析工作,雖然Linux提供了開放的源碼,但其沒有提供完善的開發(fā)文檔支持,另外體系結(jié)構(gòu)的層次劃分、代碼之間的關(guān)聯(lián),以及各種實(shí)現(xiàn)之間的注冊(cè)和調(diào)用關(guān)系等缺乏指導(dǎo)性文檔。

        3 Android Linux內(nèi)核源碼組織結(jié)構(gòu)分析

        如圖1所示,Android Linux內(nèi)核源碼組織結(jié)構(gòu)主要包括3個(gè)部分:原生 Linux內(nèi)核代碼,Google Android驅(qū)動(dòng)程序,廠商板硬件相關(guān)BSP代碼。

        圖1 Android Linux內(nèi)核源碼組織結(jié)構(gòu)

        原生Linux內(nèi)核是Linux操作系統(tǒng)的內(nèi)部核心程序,它向外部提供了對(duì)設(shè)備的核心管理調(diào)用[4]。目前Linux內(nèi)核可以運(yùn)行在很多的硬件上面,另外Linux每隔兩三個(gè)月就會(huì)發(fā)布一個(gè)新版本,新版本會(huì)增加同時(shí)也會(huì)刪除一些特性。

        Google Android是基于Linux內(nèi)核的操作系統(tǒng),可以面向很多不同的硬件平臺(tái),其版本也是快速更新的。雖然Google Android版本并沒有與原生Linux內(nèi)核版本保持一致,但它們是相對(duì)應(yīng)的。Google Android從多個(gè)方面對(duì)原生Linux內(nèi)核進(jìn)行了改動(dòng)與增強(qiáng),例如:它基于ARM構(gòu)架增加的Gold-Fish平臺(tái),以及 YAFFS2(Yet Another Flash File System,2nd edition)Flash文件系統(tǒng)等[11],另外,Google Android還添加了自己特有的驅(qū)動(dòng)程序。

        BSP是用于初始化目標(biāo)板硬件,給嵌入式操作系統(tǒng)提供板上硬件資源信息,并進(jìn)一步裝載、引導(dǎo)嵌入式操作系統(tǒng)運(yùn)行的軟件[12]。它介于底層硬件和上層軟件之間,給上層提供統(tǒng)一接口,同時(shí)提供操作系統(tǒng)的驅(qū)動(dòng)和硬件驅(qū)動(dòng),以及屏蔽各種硬件底層的差異,為操作系統(tǒng)提供了硬件平臺(tái)無關(guān)性。廠商板級(jí)BSP可以分為2類:第1類是與硬件系統(tǒng)結(jié)構(gòu)相關(guān)的部分;第2類是各種不同的驅(qū)動(dòng)部分。

        4 Android Linux內(nèi)核源碼重構(gòu)規(guī)則

        如圖2所示,Android Linux內(nèi)核源碼目錄已經(jīng)考慮到了如何組織是否與架構(gòu)相關(guān)的代碼,arch目錄下存放的是與架構(gòu)相關(guān)的代碼,arch目錄下的每個(gè)目錄與一個(gè)CPU架構(gòu)對(duì)應(yīng);與架構(gòu)無關(guān)的代碼則根據(jù)不同的功能,被存放在不同的目錄下。

        圖2 Android Linux內(nèi)核源碼目錄

        通過對(duì)Android Linux內(nèi)核源碼目錄結(jié)構(gòu)分析發(fā)現(xiàn),對(duì)于組織結(jié)構(gòu)下的原生Linux內(nèi)核代碼、Google Android驅(qū)動(dòng)程序、廠商板硬件相關(guān)BSP代碼,在Android Linux內(nèi)核源碼目錄中這3個(gè)部分是整合到一塊的,并且有的源代碼既可以屬于原生Linux內(nèi)核部分也可以屬于Google Android驅(qū)動(dòng)程序部分,或者是有的源代碼既可以屬于原生Linux內(nèi)核部分也可以屬于廠商板硬件相關(guān)BSP部分。

        Android Linux內(nèi)核源碼組織結(jié)構(gòu)的重構(gòu)過程見圖3。為提高Android Linux中現(xiàn)有源碼的重用度,筆者希望得到如該圖中右圖所示的Android Linux內(nèi)核源碼組織結(jié)構(gòu)。為此,定義了一套重構(gòu)規(guī)則:假設(shè)重構(gòu)前后的原生Linux內(nèi)核代碼、Google Android驅(qū)動(dòng)程序、廠商板硬件相關(guān)BSP代碼分別用集合L,L′,A,A′,B,B′表示。

        圖3 Android Linux內(nèi)核源碼組織結(jié)構(gòu)的重構(gòu)

        規(guī)則1 (L-L∩A-L∩B)?L′,即重構(gòu)后的原生Linux內(nèi)核代碼不包含屬于Google Android驅(qū)動(dòng)程序和廠商板硬件相關(guān)BSP代碼部分。

        規(guī)則2 (A-L∩A-A∩B)?A′,即Google Android添加的驅(qū)動(dòng)屬于Google Android驅(qū)動(dòng)程序部分。

        規(guī)則3 (B-L∩B-A∩B)?B′,即廠商添加的BSP屬于廠商板硬件相關(guān)BSP代碼部分。

        規(guī)則4 (L∩A-A∩B)?A′,即如果Google Android修改了原生Linux內(nèi)核代碼,那么整個(gè)修改的文件屬于Google Android驅(qū)動(dòng)程序部分。

        規(guī)則5L∩B?B′,即如果廠商修改了原生Linux內(nèi)核代碼,那么整個(gè)修改的文件屬于廠商板硬件相關(guān)BSP代碼部分。

        規(guī)則6A∩B?B′,即與廠商開發(fā)板使用的芯片相關(guān)的驅(qū)動(dòng)部分屬于廠商板硬件相關(guān)BSP代碼部分。

        5 BSP移植自動(dòng)適配技術(shù)及實(shí)現(xiàn)

        5.1 重構(gòu)后的Android Linux內(nèi)核源碼結(jié)構(gòu)

        利用重構(gòu)規(guī)則,通過Google Android提供內(nèi)核與未經(jīng)過Google Android改動(dòng)過的Linux內(nèi)核進(jìn)行比較,就可以得到屬于Google Android設(shè)備驅(qū)動(dòng)程序部分的內(nèi)容。另外通過根據(jù)各個(gè)不同驅(qū)動(dòng)的架構(gòu),結(jié)合廠商給出的各個(gè)板子的使用說明、相關(guān)代碼以及相關(guān)的芯片使用手冊(cè),找出與硬件相關(guān)的部分,這部分內(nèi)容就屬于廠商板硬件相關(guān)BSP部分。當(dāng)然,目前這樣的工作還只能通過手工完成。重構(gòu)后的Android Linux內(nèi)核源碼結(jié)構(gòu)如圖4所示。

        圖4 重構(gòu)后的Android Linux內(nèi)核源碼結(jié)構(gòu)

        Config.xml描述了Linux版本適配的Google Android內(nèi)核的版本,當(dāng)版本適配時(shí)核心的代碼不需要調(diào)整,只需調(diào)整部分驅(qū)動(dòng)封裝的代碼。Config.xml代碼如下:

        Board.xml描述了廠商板硬件相關(guān)BSP代碼的信息,包括板子提供商、CPU架構(gòu)類型、BSP version和支持的Linux版本列表等基本信息,還包括與架構(gòu)相關(guān)的Arch文件信息和與驅(qū)動(dòng)相關(guān)的Driver文件信息,Board.xml中Driver結(jié)構(gòu)與Arch結(jié)構(gòu)大體相同。Arch結(jié)構(gòu)中包含了與Linux版本差異相關(guān)的文件和沒有版本差異的文件,Driver結(jié)構(gòu)按<Section>標(biāo)簽分類展開,每個(gè)<Section>標(biāo)簽下包含與Linux版本差異相關(guān)的文件和沒有版本差異的文件。Board.xml中的Arch結(jié)構(gòu)如下:

        5.2 實(shí)現(xiàn)過程

        BSP移植管理工具根據(jù)重構(gòu)后的Android Linux內(nèi)核源碼結(jié)構(gòu)對(duì)原生Linux內(nèi)核代碼、Google Android驅(qū)動(dòng)程序、廠商板硬件相關(guān)BSP代碼進(jìn)行分類管理。工具可以實(shí)現(xiàn)按功能對(duì)廠商板硬件相關(guān)BSP代碼相關(guān)文件進(jìn)行瀏覽,如果需要增加新的開發(fā)板,在確定Linux內(nèi)核版本的基礎(chǔ)上只需要對(duì)Google Android驅(qū)動(dòng)程序和廠商板硬件相關(guān)BSP代碼目錄下的與Linux內(nèi)核版本差異相關(guān)的文件做出相應(yīng)的修改。在面向特定開發(fā)板和特定Linux內(nèi)核版本時(shí),其具體流程如圖5所示。

        圖5 BSP移植自動(dòng)適配技術(shù)的實(shí)現(xiàn)流程

        6 測(cè)試與評(píng)價(jià)

        6.1 測(cè)試環(huán)境設(shè)置

        本文使用上文設(shè)計(jì)并實(shí)現(xiàn)的Android BSP移植自動(dòng)適配工具對(duì)Samsung Real6410嵌入式開發(fā)板的Android Linux內(nèi)核由2.6.28升級(jí)到2.6.36,從而驗(yàn)證了本文提出的框架以及設(shè)計(jì)的自動(dòng)適配工具的有效性。在本文的測(cè)試實(shí)驗(yàn)中,BSP移植自動(dòng)適配工具采用Java SWT技術(shù)開發(fā),運(yùn)行在Ubuntu10.04操作系統(tǒng)上。

        6.2 測(cè)試實(shí)施與結(jié)果評(píng)價(jià)

        本文在進(jìn)行Real6410嵌入式開發(fā)板Android Linux內(nèi)核源碼升級(jí)的BSP移植自動(dòng)適配主要采用了如下的步驟(圖6所示是實(shí)驗(yàn)過程中驅(qū)動(dòng)參數(shù)設(shè)定界面截圖):

        (1)開發(fā)板原始Linux內(nèi)核源碼分類和重構(gòu):該型號(hào)開發(fā)板廠商提供的Linux內(nèi)核源碼為2.6.28,首先需要使用本文提出的規(guī)則對(duì)其代碼進(jìn)行分類和重構(gòu),拆分成原生Linux內(nèi)核代碼、Google Android驅(qū)動(dòng)程序、廠商板硬件相關(guān)BSP代碼。

        (2)開發(fā)板原始Linux內(nèi)核源碼XML描述文件生成:使用本文定義的規(guī)則生成對(duì)該型號(hào)開發(fā)板可以適配的Linux內(nèi)核版本描述的config.xml文件和對(duì)重構(gòu)后的廠商BSP代碼結(jié)構(gòu)描述的Board.xml文件。

        (3)Linux內(nèi)核升級(jí)中的BSP移植自動(dòng)適配:使用本文開發(fā)的BSP移植自動(dòng)適配工具進(jìn)行開發(fā)板Linux內(nèi)核源代碼升級(jí)。首先選定目標(biāo)升級(jí)內(nèi)核版本,其次指定目標(biāo)Linux內(nèi)核源代碼存放目錄,工具會(huì)自動(dòng)配置xml文件并生成目標(biāo)內(nèi)核源碼。

        (4)新的Linux內(nèi)核源碼編譯并燒寫開發(fā)板:對(duì)生成的目標(biāo)Linux內(nèi)核源碼進(jìn)行交叉編譯,并燒寫到開發(fā)板進(jìn)行測(cè)試。

        圖6 驅(qū)動(dòng)參數(shù)定義

        通過上述的測(cè)試驗(yàn)證實(shí)驗(yàn)可以看出,與目前學(xué)術(shù)界和工業(yè)界所普遍采用的移動(dòng)設(shè)備Linux內(nèi)核的BSP移植適配方法相比,本文所提出的移植框架和工具可簡(jiǎn)化Linux內(nèi)核的BSP移植適配工作流程,可大幅提高BSP移植適配的工作效率。

        7 結(jié)束語(yǔ)

        本文設(shè)計(jì)并實(shí)現(xiàn)一種基于源代碼分類管理的Andriod BSP移植管理框架,一定程度上解決了Linux未提供完善開發(fā)文檔支持和Linux體系結(jié)構(gòu)的層次劃分、代碼之間的關(guān)聯(lián),以及各種實(shí)現(xiàn)之間的注冊(cè)和調(diào)用關(guān)系等缺乏指導(dǎo)性文檔問題。測(cè)試結(jié)果表明,本文設(shè)計(jì)的框架和工具可有效提高BSP移植開發(fā)人員移植和升級(jí)開發(fā)板Android Linux內(nèi)核的工作效率。下一步將研究如何減少Android Linux內(nèi)核源碼重構(gòu)的工作量。

        [1] Google.Android Home Page[EB/OL].[2013-11-10].http://www.android.com.

        [2] O'Nils M,Jantseh A.Device Driver and DMA Controller Synthesis from HW/SW Communication Protocol Specifications[J].Design Automation for Embedded Systems, 2001,6(2):177-205.

        [3] Wang Shaojie,Malik S,Bergamaschi R A.Modeling and Integration of Peripheral Devices in Embedded Systems[C]//Proceedings of Conference on Design,Automation and Test in Europe.Munich,Germany:IEEE Press,2003: 136-141.

        [4] 隋 霞,許錄平.基于VxWorks的BSP技術(shù)分析[J].微計(jì)算機(jī)信息,2006,22(8-2):86-88.

        [5] 李 永,孫士明,王愛國(guó).VxWorks操作系統(tǒng)在OMAP平臺(tái)上的移植[J].微計(jì)算機(jī)應(yīng)用,2010,31(8):50-59.

        [6] 陳學(xué)兵,沈毅南,張振華.VxWorks5.5在龍芯2號(hào)處理器的移植和性能分析[J].計(jì)算機(jī)測(cè)量與控制, 2012,20(9):2542-2545.

        [7] 庫(kù)少平,方 俊.基于S3C2410的Windows CE 5.0 BSP移植[J].微計(jì)算機(jī)信息,2008,24(2-2):116-118.

        [8] 韓德強(qiáng),劉立哲,劉 濤,等.基于 OMAP3530的Windows Embedded Compact 7 BSP的開發(fā)與移植[J].電子技術(shù)應(yīng)用,2012,38(2):14-17.

        [9] 丁曉波.基于嵌入式Linux系統(tǒng)的BSP技術(shù)研究[D].成都:電子科技大學(xué),2004.

        [10] 康涌泉.嵌入式LINUX開發(fā)平臺(tái)BSP技術(shù)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006.

        [11] 楊豐盛.Android技術(shù)內(nèi)幕·系統(tǒng)卷[M].北京:機(jī)械工業(yè)出版社,2011.

        [12] Yaghmour K.Building Embedded Linux System[M].[S.l.]:O'Reilly Press,2003.

        編輯 金胡考

        BSP Transplantation Automatically Adapting Technology Based on Android

        YANG Haimina,ZHANG Taoa,ZHAO Mina,YOU Juna,DONG Minb
        (a.Institute of Command Information System;b.Institute of Communication Engineering, PLA University of Science and Technology,Nanjing 210007,China)

        Considering the fact that,Android Board Support Package(BSP)transplantation personnel not only needs to be familiar with the specific model chip development manual over again,but also needs to adjust the package code of some parts of the drivers and other issues,this paper reconstructs Android Linux source code to design and implement a framework of Android BSP transplantation based on the classified management of source code.The framework defines Android Linux kernel source code reconstruction rules.Based on the rules,it manages Android Linux kernel source code in accordance with the native Linux kernel code,Google Android drivers and BSP code associated with manufacturer board.In addition,an Android BSP transplantation automatic adaptation tool is designed which implements the automatic constitution of Android Linux kernel source code.Test result proves that the framework can significantly improve work efficiency of transplanting and upgrading board Android Linux kernel.

        Linux kernel;Android Linux kernel source code;organizational structure;reconstruction;Board Support Package(BSP)transplantation;automatically adapting technology

        1000-3428(2014)11-0245-05

        A

        TP302

        10.3969/j.issn.1000-3428.2014.11.049

        國(guó)家科技重大專項(xiàng)基金資助項(xiàng)目“新一代寬帶無線移動(dòng)通信網(wǎng)”(2011ZX03006-003)。

        楊海民(1990-),男,碩士研究生,主研方向:嵌入式系統(tǒng),信息安全;張 濤,教授;趙 敏、尤 峻、董 民,講師。

        2013-10-28

        2013-12-29E-mail:15150598706@163.com

        中文引用格式:楊海民,張 濤,趙 敏,等.基于Android的BSP移植自動(dòng)適配技術(shù)[J].計(jì)算機(jī)工程,2014, 40(11):245-249.

        英文引用格式:Yang Haimin,Zhang Tao,Zhao Min,et al.BSP Transplantation Automatically Adapting Technology Based on Android[J].Computer Engineering,2014,40(11):245-249.

        猜你喜歡
        源碼開發(fā)板驅(qū)動(dòng)程序
        基于網(wǎng)頁(yè)源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
        基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
        企業(yè)如何保護(hù)源碼
        Microchip最新推出兩款PIC32 Curiosity開發(fā)板
        淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
        電子制作(2017年22期)2017-02-02 07:10:14
        基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
        Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
        Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        亚洲偷自拍国综合第一页| 国产精品久久久久孕妇| 国产日韩午夜视频在线观看| 亚洲综合在不卡在线国产另类| 精品人妻大屁股白浆无码| 国产精品成年片在线观看| 成人无码区免费AⅤ片WWW| 精品国精品自拍自在线| 丰满人妻久久中文字幕| 欧美粗大猛烈老熟妇| 九九九影院| 日本国产精品高清在线| 国产精品私密保养| 国产精品高潮呻吟av久久4虎| 国产高清国内精品福利99久久| 国产成人亚洲综合二区| аⅴ天堂中文在线网| 欧美尺寸又黑又粗又长| 人妖精品视频在线观看| 日本一区二区偷拍视频| 狠狠97人人婷婷五月| 少妇寂寞难耐被黑人中出| 亚洲香蕉毛片久久网站老妇人| 日本一区二区在线播放视频| 欧美成人aaa片一区国产精品| 日韩亚洲中字无码一区二区三区| 中文字幕成人乱码亚洲| 日本二一三区免费在线| 尤物视频在线观看| 久久久久久一级毛片免费无遮挡| 亚洲综合中文日韩字幕| 国产a国产片国产| 亚洲区在线| 亚洲无人区乱码中文字幕| 国产无套乱子伦精彩是白视频| 伊人蕉久中文字幕无码专区| AV中文码一区二区三区| 精品高清免费国产在线| 国产青草视频在线观看| 久久亚洲国产欧洲精品一| 亚洲女厕偷拍一区二区|