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

        ?

        自主可控環(huán)境下的集成開(kāi)發(fā)環(huán)境

        2022-06-16 03:29:48陳瑋彤黃天一丁呂繁
        現(xiàn)代計(jì)算機(jī) 2022年7期
        關(guān)鍵詞:嵌入式軟件源代碼插件

        陳瑋彤,黃天一,丁呂繁,楊 曦

        (1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610041;2.成都創(chuàng)騰軟件有限公司,成都 610095)

        0 引言

        自主可控是保障網(wǎng)絡(luò)安全、信息安全的前提,只有提高關(guān)鍵核心技術(shù)的創(chuàng)新能力,關(guān)鍵零部件、各類核心軟件實(shí)現(xiàn)安全可控,我國(guó)數(shù)字經(jīng)濟(jì)發(fā)展才能不受制于人。中興、華為斷供事件作為敲響中國(guó)軟硬件發(fā)展的“警鐘”,使得國(guó)家充分認(rèn)識(shí)到了自主可控的重要性。在各行業(yè)自主研發(fā)的大趨勢(shì)下,國(guó)產(chǎn)CPU、操作系統(tǒng)等技術(shù)已經(jīng)趨于成熟,國(guó)產(chǎn)CPU 公司包括龍芯、飛騰等,國(guó)產(chǎn)操作系統(tǒng)如銀河麒麟等,都在不斷發(fā)展以提高核心競(jìng)爭(zhēng)力,增強(qiáng)自主可控能力。

        本論文研究的課題旨在實(shí)現(xiàn)一個(gè)支持國(guó)產(chǎn)嵌入式、桌面、服務(wù)器操作系統(tǒng)的自主可控的軟件集成開(kāi)發(fā)環(huán)境平臺(tái)。課題的需求包括滿足在飛騰計(jì)算機(jī)平臺(tái)、銀河麒麟操作系統(tǒng)上的運(yùn)行要求,從而解決國(guó)產(chǎn)處理器生態(tài)不成熟、操作系統(tǒng)對(duì)國(guó)產(chǎn)處理器支持薄弱等問(wèn)題,打破國(guó)外組織、機(jī)構(gòu)對(duì)操作系統(tǒng)配套軟件集成開(kāi)發(fā)環(huán)境的壟斷。

        1 自主可控計(jì)算環(huán)境下的集成開(kāi)發(fā)環(huán)境統(tǒng)一架構(gòu)技術(shù)

        本課題的集成開(kāi)發(fā)環(huán)境由滿足工業(yè)嵌入式應(yīng)用軟件開(kāi)發(fā)、滿足工業(yè)桌面操作系統(tǒng)應(yīng)用和滿足工業(yè)服務(wù)器操作系統(tǒng)應(yīng)用開(kāi)發(fā)的一組功能模塊和第三方軟件組成:

        針對(duì)工業(yè)嵌入式軟件開(kāi)發(fā)的特點(diǎn),集成開(kāi)發(fā)環(huán)境集成了多種交叉工具鏈運(yùn)行環(huán)境、多種交叉工具鏈,實(shí)現(xiàn)了上位機(jī)與目標(biāo)機(jī)之間的通信代理,向開(kāi)發(fā)人員提供了項(xiàng)目管理、代碼管理、代碼編輯、交叉編譯器參數(shù)設(shè)置、編譯器調(diào)用、交叉調(diào)試參數(shù)設(shè)置、目標(biāo)機(jī)端程序調(diào)試、文件下載、二進(jìn)制固化等圖形化操作界面,以開(kāi)發(fā)面向多硬件平臺(tái)、工業(yè)嵌入式操作系統(tǒng)的靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)以及應(yīng)用程序。

        針對(duì)工業(yè)桌面操作系統(tǒng)、工業(yè)服務(wù)器操作系統(tǒng)應(yīng)用開(kāi)發(fā)的特點(diǎn),集成開(kāi)發(fā)環(huán)境支持了多種編程語(yǔ)言,集成了多種第三方軟件開(kāi)發(fā)SDK、多種單元測(cè)試框架、性能分析工具、調(diào)試環(huán)境、運(yùn)行環(huán)境、部署環(huán)境以及過(guò)程控制平臺(tái)等,以便支持開(kāi)發(fā)人員進(jìn)行窗體應(yīng)用開(kāi)發(fā)、后臺(tái)應(yīng)用開(kāi)發(fā)、Web 應(yīng)用開(kāi)發(fā),開(kāi)展項(xiàng)目管理、需求分配、任務(wù)管理等活動(dòng)。

        1.1 集成開(kāi)發(fā)環(huán)境組成

        依據(jù)統(tǒng)一、開(kāi)放、靈活的架構(gòu)思路,課題設(shè)計(jì)了集成開(kāi)發(fā)環(huán)境。如圖1所示,組成集成開(kāi)發(fā)環(huán)境的軟件模塊和應(yīng)用遵循OSGi 模塊化規(guī)范、以Equinox平臺(tái)為運(yùn)行時(shí)環(huán)境、以Eclipse開(kāi)發(fā)工具為插件開(kāi)發(fā)環(huán)境。

        圖1 集成開(kāi)發(fā)環(huán)境組成

        1.2 Eclipse平臺(tái)簡(jiǎn)介

        Eclipse 作為一種通用的工具平臺(tái),它將各個(gè)功能模塊連接起來(lái),提供標(biāo)準(zhǔn)的接口,接收各個(gè)模塊的請(qǐng)求并且控制程序的運(yùn)行。整個(gè)Eclipse 平臺(tái)建立在插件機(jī)制之上,除了一些平臺(tái)運(yùn)行時(shí)的內(nèi)核,Eclipse 平臺(tái)所有的功能都由插件實(shí)現(xiàn)。由于課題實(shí)現(xiàn)的工業(yè)嵌入式軟件開(kāi)發(fā)環(huán)境和工業(yè)服務(wù)器操作系統(tǒng)軟件開(kāi)發(fā)環(huán)境都是基于Eclipse 實(shí)現(xiàn)的,因此本小節(jié)主要介紹Eclipse的運(yùn)行機(jī)制和體系結(jié)構(gòu)。

        1.2.1 工作機(jī)制

        Eclipse 平臺(tái)的主要任務(wù)是為開(kāi)發(fā)者提供各種編程工具集成的機(jī)制和規(guī)則,這些機(jī)制通過(guò)應(yīng)用程序接口(API)、類和方法表現(xiàn)出來(lái)。本質(zhì)上,Eclipse 是一組松散綁定、但互相連接的代碼塊。搞清楚這些代碼塊之間的相互調(diào)用和連接方法,也就理解了Eclipse結(jié)構(gòu)的基本原理。Eclipse 平臺(tái)的結(jié)構(gòu)如圖2 所示,它的組件包括平臺(tái)運(yùn)行庫(kù)(platform runtime)、工作臺(tái)(workbench)、工作區(qū)(workspace)、團(tuán)隊(duì)組件(team)、調(diào)試(debug)和幫助(help)。

        圖2 Eclispe體系結(jié)構(gòu)圖

        1.2.2 Eclipse插件機(jī)制

        模塊化的設(shè)計(jì)讓Eclipse 自身被分解為不同的功能塊,這些功能塊能更容易地被重用于創(chuàng)建超出原始開(kāi)發(fā)人員設(shè)想的應(yīng)用程序,就像不同版本的Eclipse 分別為特定的功能而設(shè)計(jì)。Eclipse 附帶了標(biāo)準(zhǔn)的插件集,包括Java 開(kāi)發(fā)工具JDK,還包括插件開(kāi)發(fā)環(huán)境PDE。

        希望被其他插件擴(kuò)展的插件都會(huì)聲明一個(gè)擴(kuò)展點(diǎn),擴(kuò)展點(diǎn)機(jī)制使得Eclipse平臺(tái)架構(gòu)具有更好的靈活性,擴(kuò)展是Eclipse平臺(tái)上提供各種功能的來(lái)源,插件利用擴(kuò)展點(diǎn)向Eclipse新添功能??捎玫牟寮谑孪却_定后,進(jìn)行插件間信息交換,無(wú)需激活它們,平臺(tái)就可以為每個(gè)插件提供豐富的關(guān)于它運(yùn)行的上下文的相關(guān)信息。

        1.3 SWT/JFace與圖形化操作環(huán)境

        SWT具有本地JNI調(diào)用機(jī)制,使得程序具有很快的響應(yīng)速度;輕量級(jí)的API 使得開(kāi)發(fā)人員調(diào)用簡(jiǎn)單、易于上手,因此課題選用SWT/JFace圖形化界面開(kāi)發(fā)框架作為集成開(kāi)發(fā)環(huán)境的統(tǒng)一界面開(kāi)發(fā)框架。

        JFace 用來(lái)在SWT庫(kù)頂部提供常見(jiàn)的應(yīng)用程序用戶界面功能。JFACE 采用MVC 的模式對(duì)SWT 進(jìn)行了封裝,增加了對(duì)復(fù)雜界面組件的支持,并且極大地豐富了SWT 的組件功能。它提供一些類和接口,以處理與使用SWT 來(lái)對(duì)動(dòng)態(tài)用戶界面編程相關(guān)聯(lián)的許多常見(jiàn)任務(wù)。

        2 自主可控環(huán)境下的軟件集成開(kāi)發(fā)環(huán)境總體架構(gòu)

        2.1 嵌入式軟件開(kāi)發(fā)環(huán)境

        本論文實(shí)現(xiàn)的嵌入式軟件開(kāi)發(fā)環(huán)境由兩大部分構(gòu)成,分別為主機(jī)端支撐環(huán)境和圖形化操作系統(tǒng),主要結(jié)構(gòu)如圖3。其中主機(jī)端支撐環(huán)境為交叉工具鏈提供了運(yùn)行環(huán)境、為集成開(kāi)發(fā)環(huán)境提供了與目標(biāo)機(jī)端的通信代理、為集成開(kāi)發(fā)環(huán)境提供了交叉調(diào)試工具。圖形化操作環(huán)境則由一組與嵌入式軟件開(kāi)發(fā)密切相關(guān)的軟件模塊組成。

        圖3 嵌入式軟件集成開(kāi)發(fā)環(huán)境

        2.1.1 嵌入式應(yīng)用軟件調(diào)試模塊

        提供基于匯編的調(diào)試和基于源代碼的調(diào)試;提供任務(wù)棧顯示功能;提供匯編斷點(diǎn)、源代碼斷點(diǎn)管理功能;提供調(diào)試會(huì)話管理功能;提供被調(diào)試的應(yīng)用軟件的內(nèi)存查看、修改功能;提供變量值查看、修改功能;提供表達(dá)式添加、運(yùn)算功能;提供單步、運(yùn)行、掛起功能。

        2.1.2 二進(jìn)制文件下載&運(yùn)行模塊

        提供將主機(jī)端的二進(jìn)制文件下載到目標(biāo)機(jī)端的內(nèi)存或文件系統(tǒng)中的功能;提供從主機(jī)端執(zhí)行目標(biāo)機(jī)端指定文件的功能;提供運(yùn)行參數(shù)設(shè)置功能。

        2.1.3 源代碼編譯模塊

        源代碼編譯模塊根據(jù)開(kāi)發(fā)人員在創(chuàng)建項(xiàng)目時(shí)所指定的編譯信息,調(diào)用主機(jī)端中相關(guān)的工具鏈對(duì)項(xiàng)目中的源代碼進(jìn)行預(yù)處理、編譯、匯編、鏈接生成可執(zhí)行文件或庫(kù)文件。在編譯過(guò)程中,系統(tǒng)會(huì)將工具鏈的輸出信息輸出到界面中進(jìn)行顯示,根據(jù)編譯錯(cuò)誤將錯(cuò)誤信息與源代碼進(jìn)行關(guān)聯(lián)并顯示錯(cuò)誤信息。

        2.1.4 目標(biāo)機(jī)通信管理模塊

        基于主機(jī)端與目標(biāo)機(jī)端的通信協(xié)議,建立主機(jī)端與目標(biāo)機(jī)端的通信通道,向上提供通信接口。

        2.2 桌面和服務(wù)器系統(tǒng)的應(yīng)用開(kāi)發(fā)環(huán)境

        銀河麒麟操作系統(tǒng)下桌面應(yīng)用和服務(wù)器應(yīng)用的開(kāi)發(fā)環(huán)境如圖4所示,其中部分軟件模塊的功能描述如下。

        圖4 銀河麒麟應(yīng)用開(kāi)發(fā)環(huán)境

        2.2.1 項(xiàng)目創(chuàng)建向?qū)?/p>

        為開(kāi)發(fā)人員創(chuàng)建窗體應(yīng)用項(xiàng)目、Web 應(yīng)用項(xiàng)目、控制臺(tái)應(yīng)用項(xiàng)目等類型的項(xiàng)目提供引導(dǎo), 提供項(xiàng)目名稱輸入、項(xiàng)目類型選擇、項(xiàng)目模板選擇等操作界面。

        2.2.2 項(xiàng)目管理

        提供當(dāng)前工作空間中所有項(xiàng)目信息的展示功能;提供項(xiàng)目導(dǎo)入/導(dǎo)出功能;提供項(xiàng)目重命名功能;提供項(xiàng)目刪除功能;提供項(xiàng)目關(guān)閉/打開(kāi)功能等。

        2.2.3 源代碼編譯

        根據(jù)項(xiàng)目類型以及開(kāi)發(fā)人員在創(chuàng)建項(xiàng)目時(shí)所設(shè)置的信息,調(diào)用相應(yīng)的編譯器(如:Python編譯器、Java 編譯器、Qt編譯器)對(duì)源代碼進(jìn)行編譯。

        2.2.4 目標(biāo)機(jī)管理

        管理用于運(yùn)行、調(diào)試、安裝應(yīng)用的目標(biāo)機(jī),并向外提供通信接口供其它模塊調(diào)用。

        3 實(shí)現(xiàn)集成開(kāi)發(fā)環(huán)境的關(guān)鍵技術(shù)

        3.1 crosstool-NG制作交叉編譯工具鏈

        在嵌入式軟件開(kāi)發(fā)過(guò)程中,一個(gè)十分重要的部分是交叉編譯工具的構(gòu)建,課題基于銀河麒麟操作系統(tǒng),使用crosstool-NG 工具實(shí)現(xiàn)了針對(duì)mips架構(gòu)嵌入式開(kāi)發(fā)板的交叉編譯工具鏈。

        使用crosstool-NG 得到需要的交叉編譯工具鏈有以下幾個(gè)步驟:下載crosstool-NG 源碼、編譯crosstool-NG 源碼并安裝、配置需要的交叉工具鏈參數(shù)、編譯生成需要的交叉工具鏈。

        其中,crosstool-NG 工具的源碼下載和安裝過(guò)程,與普通的Linux 環(huán)境下軟件的安裝過(guò)程類似,都需要下載源碼之后在本機(jī)進(jìn)行編譯安裝。

        在使用安裝好的crosstool-NG 生成需要的交叉工具鏈之前,需要進(jìn)行的配置包括宿主機(jī)使用的CPU 架構(gòu)類型、目標(biāo)平臺(tái)的操作系統(tǒng)、使用的C 庫(kù)等。使用ct-ng list-samples 命令查看當(dāng)前已經(jīng)包含了哪些默認(rèn)的示例配置,部分結(jié)果如圖5所示。

        圖5 使用ct-ng list-samples命令的部分結(jié)果

        在所有的配置工作都完成之后,使用ct-ng build命令生成交叉工具鏈。

        3.2 Qt桌面軟件開(kāi)發(fā)框架

        我們使用流行的Qt 框架實(shí)現(xiàn)桌面軟件集成開(kāi)發(fā)環(huán)境,可以較為方便地進(jìn)行銀河麒麟操作系統(tǒng)下桌面軟件的開(kāi)發(fā),開(kāi)始界面如圖6所示。

        圖6 使用Qt框架實(shí)現(xiàn)桌面軟件集成開(kāi)發(fā)環(huán)境的開(kāi)始界面

        Qt 是一個(gè)跨平臺(tái)的C++開(kāi)發(fā)庫(kù),支持市面上大多數(shù)操作系統(tǒng),主要用于開(kāi)發(fā)有圖形化界面的程序,同時(shí)也可以用于命令行程序和服務(wù)器端程序的開(kāi)發(fā)。

        Qt 開(kāi)發(fā)庫(kù)基于現(xiàn)有的一些工具鏈制作,其使用的編譯器、鏈接器、調(diào)試器都是現(xiàn)成的,使用的工具包括GNU 工具集、MinGW、CMake等,Qt 官方的開(kāi)發(fā)環(huán)境安裝包里也內(nèi)置了專門的開(kāi)發(fā)工具。

        Qt的類庫(kù)目錄如圖7所示。

        圖7 Qt的類庫(kù)目錄

        4 結(jié)語(yǔ)

        本課題開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境,基于OSGi 規(guī)范開(kāi)發(fā),運(yùn)行于Equinox 環(huán)境,包括工業(yè)嵌入式軟件開(kāi)發(fā)、工業(yè)桌面軟件開(kāi)發(fā)、工業(yè)服務(wù)器應(yīng)用開(kāi)發(fā)三個(gè)部分,集軟件設(shè)計(jì)、開(kāi)發(fā)、調(diào)試與集成部署為一體,將開(kāi)發(fā)平臺(tái)和運(yùn)行平臺(tái)有機(jī)地結(jié)合在一起。其中嵌入式軟件開(kāi)發(fā)部分基于插件機(jī)制開(kāi)發(fā),支持在銀河麒麟操作系統(tǒng)中開(kāi)發(fā)國(guó)產(chǎn)龍芯、飛騰處理器的應(yīng)用;桌面軟件開(kāi)發(fā)環(huán)境基于Qt 開(kāi)發(fā),支持基于C/C++、Python、Java 的控制臺(tái)應(yīng)用開(kāi)發(fā);服務(wù)器應(yīng)用開(kāi)發(fā)環(huán)境基于插件機(jī)制開(kāi)發(fā),支持Java、HTML、CSS、JavaScript 等語(yǔ)言的程序開(kāi)發(fā)。通過(guò)使用開(kāi)發(fā)集成環(huán)境,用戶可以高效地在銀河麒麟操作系統(tǒng)中進(jìn)行嵌入式軟件、桌面軟件、服務(wù)器軟件的開(kāi)發(fā),課題豐富了銀河麒麟操作系統(tǒng)的軟件生態(tài)。

        猜你喜歡
        嵌入式軟件源代碼插件
        人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
        基于TXL的源代碼插樁技術(shù)研究
        自編插件完善App Inventor與樂(lè)高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        軟件源代碼非公知性司法鑒定方法探析
        實(shí)時(shí)嵌入式軟件的測(cè)試技術(shù)
        全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        揭秘龍湖產(chǎn)品“源代碼”
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Eclipse的航天嵌入式軟件集成開(kāi)發(fā)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)
        航天嵌入式軟件浮點(diǎn)運(yùn)算誤差分析與控制
        亚洲免费一区二区三区四区| 亚洲精品成AV无在线观看| 日韩av无码午夜福利电影| 成人爽a毛片在线播放| 在线播放真实国产乱子伦| 少妇厨房愉情理伦片免费| 在线国产视频精品视频| 亚州中文字幕乱码中文字幕| 国产极品粉嫩福利姬萌白酱| 看曰本女人大战黑人视频| 99久久久精品免费| 青青草视频在线观看精品在线| a级国产乱理伦片| 无码熟熟妇丰满人妻啪啪| 亚洲αv在线精品糸列| 亚洲av在线观看播放| 国产午夜福利在线观看红一片| 最新国产乱视频伦在线| 午夜男女视频一区二区三区| 国产亚洲超级97免费视频| 亚洲精品国偷拍自产在线麻豆| 亚洲精品一二区| 日本女u久久精品视频| 国内精品久久久久久99| 亚洲日韩乱码中文无码蜜桃臀| 黑人巨大亚洲一区二区久| av色一区二区三区精品| 少妇下蹲露大唇无遮挡| 综合91在线精品| 一本色道久久综合亚洲精品不| 国产欧美一区二区三区在线看| 中国精品久久精品三级| 精品人妻一区二区三区av| 日本xxxx色视频在线观看| 超碰97人人做人人爱少妇| 亚洲 美腿 欧美 偷拍| 日本护士口爆吞精视频| 性欧美牲交xxxxx视频欧美| 久草热这里只有精品在线| 五月婷婷开心五月激情| 精品人妻无码视频中文字幕一区二区三区|