★33°空間‰


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

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

          重利用代碼

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

          集成Java代碼和源代碼

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

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

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

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

          挑選平臺-中間層的選擇

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

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

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

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

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

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

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

          Java 開發(fā)工具

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

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

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


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

            嵌入式設(shè)備資源如RAM、ROM、Flash相對缺乏,需要特別的注意對其管理。同時處理器的性能也相對有缺少(如浮點(diǎn)加速器),這就需要對不同的設(shè)備提供有針對性的不同的執(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)衡。

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

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

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

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


          通訊接口
            幾乎每一個開發(fā)平臺和嵌入式處理器都包括了通訊接口。在Linux移植中,如果主板上有RS-232串口和以太網(wǎng)口,那么最基本的任務(wù)是寫這兩種設(shè)備的驅(qū)動。
           
            通訊是同時建立在TCP/IP協(xié)議和簡單串口之上的,其中TCP/IP協(xié)議棧是由Linux提供。TCP/IP協(xié)議棧提供了連接互聯(lián)網(wǎng)的權(quán)限,同時也提供了程序與程序之間基于對話通訊的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í)際上被連接到自動通訊總線上。所以,為了控制這些設(shè)備,需要一個承接層。IBM設(shè)計了一個提供硬件模擬的軟件包,它能夠選擇傳輸技術(shù),這樣在開發(fā)平臺上的程序可以直接被移植到最終的產(chǎn)品中。
          多變性

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

          技術(shù)支持

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


          結(jié)論

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

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

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

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

            今天,對嵌入式Linux所做的工作主要是提供配置性更強(qiáng)的、更小的系統(tǒng)成分,這樣就可以加速系統(tǒng)的初始化速度,同時提升資源的利用。當(dāng)與Java強(qiáng)大的可變的環(huán)境相配合的時候,項目的管理者和開發(fā)者可以利用這種結(jié)合使他們成功的設(shè)計和開發(fā)下一代應(yīng)用程序,而且是具有高可信賴性和高可利用性的程序。
          posted on 2006-10-02 08:14 圣域飛俠 閱讀(1021) 評論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載
          主站蜘蛛池模板: 綦江县| 惠东县| 平远县| 华池县| 饶河县| 阿城市| 天水市| 玉门市| 沁阳市| 宁明县| 威信县| 革吉县| 黄大仙区| 东宁县| 青田县| 梧州市| 鹿邑县| 洱源县| 漯河市| 木兰县| 黔东| 若羌县| 安宁市| 南汇区| 新闻| 台山市| 凌源市| 息烽县| 克山县| 榕江县| 南丰县| 江口县| 安庆市| 阳江市| 永济市| 铜山县| 龙海市| 五指山市| 格尔木市| 铜陵市| 南安市|