★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識(shí)重要,素質(zhì)比智力重要,覺悟比素質(zhì)更重要
          posts - 110,comments - 35,trackbacks - 0

          重利用代碼

             由于嵌入式系統(tǒng)有特殊的需求,以及不同的專門硬件要協(xié)同工作,嵌入式軟件開發(fā)者通常使用非常原始的方法來開發(fā),有時(shí)每一個(gè)新的項(xiàng)目都要從頭再來一遍?,F(xiàn)在,隨著嵌入式技術(shù)的成熟以及系統(tǒng)本身變得更大更優(yōu)化,很多人開始對(duì)于把一個(gè)產(chǎn)品的模塊甚至是全部的應(yīng)用程序用到另一個(gè)產(chǎn)品感興趣。這種可重新利用性使得\"一次開發(fā),多次利用\"成為了可能。
          Java環(huán)境使得一個(gè)模塊可以只要做很少的工作就可以適應(yīng)多個(gè)項(xiàng)目和平臺(tái)。甚至包括有時(shí)客戶需要一個(gè)新的目標(biāo)板,或者采用新的硬件(CPU或外設(shè))和軟件,或者使用不同的Linux都可以進(jìn)行移植。

          集成Java代碼和源代碼

            使用源代碼明顯是指應(yīng)用程序的多可用性以及代碼的重利用能力。在Java應(yīng)用中,一個(gè)設(shè)計(jì)很好的界面,或者虛擬機(jī),或者是底層的硬件都可以很好的兼容到嵌入式系統(tǒng)中。盡管無法移植,對(duì)于很多功能和硬件界面來說,在本地環(huán)境下開發(fā)的代碼也許仍然是最好的解決方案。在C、C++或者匯編語言中,加入標(biāo)準(zhǔn)的通信、接口模塊、用戶界面、安全特性會(huì)花費(fèi)很多時(shí)間與金錢。與之相比較,Java的基本庫本身就提供了這些東西甚至還更多,這樣就可以加速開發(fā)。

          開發(fā)者的興趣和技術(shù)

            很多程序員現(xiàn)在被培養(yǎng)來做Java應(yīng)用開發(fā)。舉個(gè)例子,IBM有幾千個(gè)做Java程序的程序員。隨著大部份培訓(xùn)機(jī)構(gòu)開設(shè)了這種流行的語言和相應(yīng)的開發(fā)環(huán)境的課程,大量的Java開發(fā)人員成長起來。

            下一代的嵌入式項(xiàng)目開發(fā)人員需要有效的配置復(fù)雜的、功能強(qiáng)大的、連接在網(wǎng)絡(luò)上的設(shè)備。既然Linux和Java技術(shù)都能滿足TCP/IP協(xié)議棧,支持通信所需要的大部分工作就已完成了,而且還是根據(jù)標(biāo)準(zhǔn)極好的完成的。

          挑選平臺(tái)-中間層的選擇

            對(duì)于中間層有大量的選擇,大多數(shù)都可作為一個(gè)獨(dú)立的模塊獲得,比如協(xié)議棧,圖形開發(fā)工具,管理工具,特殊的操作系統(tǒng)功能如高可用性和實(shí)時(shí)性等。單獨(dú)的使用其中的任何一種都不太難,但是隨著中間層數(shù)量以及相異性的增加,不可避免的會(huì)對(duì)開發(fā)者的工作產(chǎn)生影響,也會(huì)由于增加了棧的復(fù)雜度而延遲整合、測(cè)試、調(diào)試的進(jìn)度。

            雖然Java最初的設(shè)計(jì)是為了滿足桌面和服務(wù)器市場(chǎng),隨后它卻發(fā)現(xiàn)了在嵌入式項(xiàng)目中作為應(yīng)用環(huán)境有更廣泛的認(rèn)同度。Java技術(shù)的開發(fā)者早就整合了一些標(biāo)準(zhǔn)的功能,包括通訊、安全、模塊管理。這種基于面向?qū)ο蟮腏ava程序的設(shè)計(jì),使這些完全不同的中間服務(wù)能夠有效的合作,同時(shí)可以很好的管理。其余的中間環(huán)境用同樣的方式提供底層的執(zhí)行,但是目前如果沒有主板的支持,我們無法享受到Java技術(shù)帶來的好處。

            最后,可以擴(kuò)展Linux以提供了開發(fā)者所必需的控制,以用來保證實(shí)時(shí)程序執(zhí)行和工作的正確性。有幾種方式可以達(dá)到這個(gè)目的。MontaVista公司對(duì)標(biāo)準(zhǔn)的Linux平臺(tái)進(jìn)行了擴(kuò)展,而不是對(duì)其進(jìn)行規(guī)范。舉個(gè)例子,為了支持實(shí)時(shí)程序的執(zhí)行,MontaVista Linux使用了新的APIs來控制存儲(chǔ)管理、線程執(zhí)行表以及進(jìn)程執(zhí)行。

          有效的應(yīng)用程序的執(zhí)行

            我們應(yīng)該感謝標(biāo)準(zhǔn)的Java類庫結(jié)構(gòu)的建立,它使管理應(yīng)用程序的大小成為了可能。實(shí)際上,研究表明超過500KB大小的應(yīng)用程序采用Java編碼的話會(huì)更復(fù)雜。這是因?yàn)樽止?jié)編碼比大多數(shù)硬件結(jié)構(gòu)的設(shè)置都要復(fù)雜。著名的路由程序如果以類庫的方式編寫,并以字符代碼編譯,則比建立在真實(shí)的機(jī)器并規(guī)范了存儲(chǔ)路徑的程序要易于重復(fù)利用。

            IBM采用了唯一的方式來完成嵌入式Java技術(shù),實(shí)際上是從一個(gè)唯一的根類來創(chuàng)造了J9的所有不同目標(biāo)板的版本以及所有的Java的類庫。IBM的J9和Java類庫的源代碼描述了如何構(gòu)建這些模塊。一個(gè)獨(dú)立的移植層被用來描述唯一的目標(biāo)處理器的特征以及實(shí)時(shí)操作系統(tǒng)接口??梢圆捎貌煌募夹g(shù)來設(shè)計(jì)獨(dú)立的功能模塊,然后用嵌入式Linux實(shí)時(shí)操作系統(tǒng)商所提供的工具來編譯。

            使用即時(shí)編譯技術(shù)和采用充足的高速緩存,程序能夠以接近使用本地機(jī)器語言編譯的程序的速度執(zhí)行。其實(shí)真正重要的是程序運(yùn)行的要足夠快。對(duì)于很多應(yīng)用程序(包括用來作為產(chǎn)品傳感器和控制器的服務(wù)管理的深層嵌入式設(shè)備,以及有用戶界面的設(shè)備)高速的執(zhí)行不是其目的。使用者對(duì)于圖形界面速度的需求遠(yuǎn)遠(yuǎn)低于今天嵌入式處理器上Java編譯器的編譯速度。

          Java 開發(fā)工具

            很多的開發(fā)者和工程師發(fā)現(xiàn),對(duì)于Java應(yīng)用程序的開發(fā)者來說一個(gè)完整的工具包能夠提供非常大的幫助。這些開發(fā)人員中很多都是從企業(yè)項(xiàng)目的開發(fā)轉(zhuǎn)移到嵌入式項(xiàng)目的開發(fā)中來的,其中的很多都是從現(xiàn)在的在線服務(wù)擴(kuò)展產(chǎn)生的。這些開發(fā)人員希望找到有效的開發(fā)工具。他們?cè)瓉砥毡槭褂眉砷_發(fā)環(huán)境,完善的調(diào)式工具,有幫助功能的Java語言幫助工具,以及語言分析成型工具。大部份還有集成版本控制以及發(fā)行管理功能。
          很多開發(fā)Linux下Java應(yīng)用程序的程序員也希望使用Linux作為開發(fā)平臺(tái),以便于創(chuàng)造一個(gè)統(tǒng)一的有效的開發(fā)過程,避免從Windows開發(fā)環(huán)境到Linux環(huán)境的轉(zhuǎn)換。IBM公司和MontaVista公司提供了一個(gè)基于Red Hat操作系統(tǒng)的名為\"VisualAge Micro Edition\"的Java集成開發(fā)環(huán)境及相應(yīng)的工具。它為工程師和開發(fā)人員提供了一個(gè)完全的嵌入式交叉開發(fā)環(huán)境。

             通常,在個(gè)人的電腦上開發(fā)程序,然后通過遠(yuǎn)程調(diào)試的方法在一個(gè)共用的實(shí)驗(yàn)室中的設(shè)備上運(yùn)行是一個(gè)較為有效的開發(fā)方法。\"VisualAge Micro Edition\"提供了遠(yuǎn)程調(diào)試和程序分析工具,以及在開發(fā)主機(jī)和目標(biāo)機(jī)同時(shí)使用相同的文件的技術(shù)?;诠蚕砑夹g(shù)的NFS和LAN使得Java程序能夠即刻直接裝載到遠(yuǎn)程設(shè)備上。
          一旦虛擬機(jī)上的代碼發(fā)生了改變,程序的變化能夠立刻并且毫無改變的反映到開發(fā)主機(jī)的調(diào)式界面上來。這種緊密的聯(lián)系使嵌入式開發(fā)者大大增加了效率。既然Java技術(shù)是基于虛擬機(jī)的技術(shù),代碼的變換都可以用到相連的嵌入式設(shè)備上。這就為嵌入式項(xiàng)目的設(shè)計(jì)者提供了更多的伸縮性和便利性。特別的,這就使得在這些使用了OSGi管理技術(shù)上進(jìn)行功能擴(kuò)展和改變特性成為了可能。

          Java技術(shù)和Linux操作系統(tǒng)的結(jié)合


             一個(gè)完全的嵌入式實(shí)時(shí)操作系統(tǒng)必須是以嵌入式Linux或Java平臺(tái)為核心。嵌入式設(shè)備受到了操作系統(tǒng)、驅(qū)動(dòng)程序和其它的功能模塊的限制和約束。使用一個(gè)與嵌入式目標(biāo)平臺(tái)相統(tǒng)一的Linux版本是非常重要的,并不是所有的Linux都能用。

            嵌入式設(shè)備資源如RAM、ROM、Flash相對(duì)缺乏,需要特別的注意對(duì)其管理。同時(shí)處理器的性能也相對(duì)有缺少(如浮點(diǎn)加速器),這就需要對(duì)不同的設(shè)備提供有針對(duì)性的不同的執(zhí)行程序。

            既然嵌入式Linux必須適應(yīng)目標(biāo)設(shè)備的特定的環(huán)境,快速有效的重組建立Linux操作系統(tǒng)的鏡像就是非常重要的。這樣一旦虛擬機(jī)及Java應(yīng)用程序需要,就能夠讓開發(fā)人員增加、移除、修改Linux特性。在嵌入式開發(fā)中,設(shè)備和應(yīng)用程序的每一方面都必須被考慮到,以便在大小、速度、資源中進(jìn)行權(quán)衡。

            嵌入式平臺(tái)完全不像標(biāo)準(zhǔn)的個(gè)人計(jì)算機(jī)或是工作站。尤其是必須要做一些工作來使嵌入式目標(biāo)板上的設(shè)備運(yùn)行。交互端口、Flash存儲(chǔ)、播放設(shè)備和聲音界面的協(xié)同使用需要設(shè)定才能完成。我們要感謝在傳統(tǒng)的嵌入式操作系統(tǒng)中廣泛的開發(fā)經(jīng)驗(yàn)也可以用到嵌入式Linux開發(fā)中,一些基于嵌入式的標(biāo)準(zhǔn)也用到這些設(shè)備中。這些標(biāo)準(zhǔn)包括以下:

          低成本設(shè)備管理
            這種嵌入式Linux操作系統(tǒng)和Java技術(shù)的統(tǒng)一展開了一個(gè)新的世界,在液晶屏和觸摸屏上的圖性用戶界面能夠更有效的構(gòu)建。這些設(shè)備是低功耗、緊湊的、通常是彩色的,這對(duì)于消費(fèi)者和產(chǎn)品生產(chǎn)者來說都是非常有吸引力的。很多底層的設(shè)計(jì)能使得用戶界面使用到手持設(shè)備或機(jī)頂盒中,這樣就可以控制和顯示大量嵌入式設(shè)備如車載、通訊設(shè)備的底層嵌入式操作系統(tǒng)。

            圖形用戶界面同時(shí)被使用到粗糙的位圖界面和窗口界面中。基于Linux的服務(wù)器和工作站配置\"x-Window\"用戶界面以及一種可選的窗口管理器.與之不同,嵌入式Linux提供一種更有效的直接的方式。舉例來說,MontaVista的Linux操作系統(tǒng)就配置了一個(gè)開放源代碼的\"MicroWindows\"圖形界面包,它可以被移植運(yùn)行到很多處理器平臺(tái)。它運(yùn)行在Linux堆棧的頂部,提供了一個(gè)接近硬件設(shè)備的底層接口。它是為在嵌入式處理器中獲得高性能而特別設(shè)計(jì)的,能夠用來創(chuàng)建一個(gè)高響應(yīng)速度的界面。

            MontaVista的MicroWindows采用了IBM的J9和它的Java類庫。這樣,一些嵌入式目標(biāo)設(shè)備能夠獲得統(tǒng)一的圖形界面的支持。IBM提供了兩個(gè)基本的圖形類庫:簡單圖形工具(\"SWT\")和\"MicroView\"。AWT是為了個(gè)人Java平臺(tái)特別設(shè)計(jì)的,它運(yùn)行在SWT圖形層之上,作為一些瀏覽器及相連的XML翻譯工具。SWT能夠用復(fù)雜的窗口控制創(chuàng)建用戶界面層。簡化的MicroView結(jié)構(gòu)用來創(chuàng)建在低性能的嵌入式設(shè)備上較為粗糙的用戶界面。


          通訊接口
            幾乎每一個(gè)開發(fā)平臺(tái)和嵌入式處理器都包括了通訊接口。在Linux移植中,如果主板上有RS-232串口和以太網(wǎng)口,那么最基本的任務(wù)是寫這兩種設(shè)備的驅(qū)動(dòng)。
           
            通訊是同時(shí)建立在TCP/IP協(xié)議和簡單串口之上的,其中TCP/IP協(xié)議棧是由Linux提供。TCP/IP協(xié)議棧提供了連接互聯(lián)網(wǎng)的權(quán)限,同時(shí)也提供了程序與程序之間基于對(duì)話通訊的socket界面。
           
            Java類庫的衍生庫能夠直接操縱通過特殊通訊總線和設(shè)備相連的串行設(shè)備。這些設(shè)備中就包括符
          合\"CAN\",\"MOST\",或IEEE J-1850標(biāo)準(zhǔn)的自控總線設(shè)備。
           
            在開發(fā)中,一些設(shè)備可以直接通過串行連接直接被訪問到。包括電話、車載收音機(jī)以及GPS單元(衛(wèi)星定位系統(tǒng))。這些設(shè)備能夠通過在串行連接上傳輸?shù)膶iT協(xié)議被控制。但是在產(chǎn)品中,這些設(shè)備實(shí)際上被連接到自動(dòng)通訊總線上。所以,為了控制這些設(shè)備,需要一個(gè)承接層。IBM設(shè)計(jì)了一個(gè)提供硬件模擬的軟件包,它能夠選擇傳輸技術(shù),這樣在開發(fā)平臺(tái)上的程序可以直接被移植到最終的產(chǎn)品中。
          多變性

            使用Java技術(shù)和嵌入式Linux操作系統(tǒng)的結(jié)合現(xiàn)在應(yīng)用到大量的嵌入式目標(biāo)板上。開發(fā)者可以根據(jù)項(xiàng)目的需求配置和添加虛擬機(jī)以及Java類庫的成分,就像Linux的裁減一樣。設(shè)備驅(qū)動(dòng)可以根據(jù)需要選擇,同時(shí)也可以保留應(yīng)用程序?qū)τ诤芏嘞嚓P(guān)設(shè)備開發(fā)和配置的權(quán)限。這種方法可以通過用戶界面以對(duì)大量設(shè)備程序重新使用其代碼。Linux操作系統(tǒng)和Java可以根據(jù)硬件設(shè)備從最小的到最大的進(jìn)行升級(jí)。

          技術(shù)支持

            一個(gè)項(xiàng)目的大部分的花費(fèi)是用在開發(fā)完成、產(chǎn)品上市之后。這種支持的花費(fèi)與產(chǎn)品的用戶在很多方面相關(guān)。
          當(dāng)考慮到嵌入式Java代碼,開發(fā)者與Linux和Java供應(yīng)商的技術(shù)支持的聯(lián)系是關(guān)鍵。舉一個(gè)典型的例子,Java本身的開發(fā)工程師在做最初的虛擬機(jī)端口和用于嵌入式Linux目標(biāo)平臺(tái)的Java庫時(shí),他們是和Linux的供應(yīng)商一起工作的。Linux和Java供應(yīng)商的共同發(fā)展的關(guān)系是最需要被考慮的。特別是在Linux開放源代碼的環(huán)境下,能夠控制Java庫的源代碼也同樣是非常重要的,這樣就可以根據(jù)一個(gè)項(xiàng)目的具體情況進(jìn)行不同的配置。


          結(jié)論

            嵌入式Linux操作系統(tǒng)和Java的結(jié)合為工程師和開發(fā)者對(duì)于不同的項(xiàng)目進(jìn)行配置提供了新的選擇。我們要感謝專業(yè)的Linux技術(shù)支持公司的出現(xiàn),他們解決了嵌入式開發(fā)者遇到的很多問題。大量的連接設(shè)備的平臺(tái)能夠支持Java應(yīng)用程序的執(zhí)行。

            最初,考慮得最多的也許是可以獲得源代碼以及沒有傳統(tǒng)的版權(quán)費(fèi)。因?yàn)閭鹘y(tǒng)的實(shí)時(shí)操作系統(tǒng)的商業(yè)模式是建立在訂購技術(shù)支持和服務(wù)的基礎(chǔ)之上的,這樣嵌入式平臺(tái)相對(duì)來說就較為便宜。

            在Linux平臺(tái)上進(jìn)行工具的改進(jìn),主要考慮的是在嵌入式設(shè)備中,工作是在資源緊缺的環(huán)境下進(jìn)行的。隨著IBM的\"VisualAge Micro Edition\"的出現(xiàn),Java應(yīng)用程序的開發(fā)人員能夠獲得豐富的交互開發(fā)工具的完全支持。

            由于以前很長一段時(shí)間內(nèi)Linux都運(yùn)行在服務(wù)器上,這就使得Linux的內(nèi)核以及相關(guān)的功能在魯棒性上都得到提高。嵌入式Linux也同樣得到了這種性能的提升。今天,Linux被證明是一種非常健壯的環(huán)境,同時(shí)它也隨著時(shí)間和經(jīng)驗(yàn)的增加不斷的得到提高。

            今天,對(duì)嵌入式Linux所做的工作主要是提供配置性更強(qiáng)的、更小的系統(tǒng)成分,這樣就可以加速系統(tǒng)的初始化速度,同時(shí)提升資源的利用。當(dāng)與Java強(qiáng)大的可變的環(huán)境相配合的時(shí)候,項(xiàng)目的管理者和開發(fā)者可以利用這種結(jié)合使他們成功的設(shè)計(jì)和開發(fā)下一代應(yīng)用程序,而且是具有高可信賴性和高可利用性的程序。
          posted on 2006-10-02 08:14 圣域飛俠 閱讀(1017) 評(píng)論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載
          主站蜘蛛池模板: 洛川县| 大厂| 泾阳县| 行唐县| 个旧市| 长岛县| 新营市| 高安市| 肇庆市| 元谋县| 库车县| 霞浦县| 晋江市| 松潘县| 和硕县| 沧源| 康保县| 元氏县| 台南市| 门源| 公安县| 临江市| 中超| 富平县| 侯马市| 桑日县| 灵璧县| 兴隆县| 蓬溪县| 兰溪市| 泽普县| 河北省| 盐津县| 霍林郭勒市| 历史| 根河市| 瓦房店市| 巴青县| 富裕县| 蚌埠市| 蒙山县|