|
學(xué)嵌入式需要看什么書_嵌入式系統(tǒng)高級(jí)編程語言技術(shù)分析,
http://www.liuguo.net 摘要 隨著嵌入式技術(shù)的普及推廣,嵌入式系統(tǒng)高級(jí)語言編程勢(shì)在必行。然而,人們?cè)谶x擇語言系統(tǒng)時(shí)往往具有很大的隨意性。對(duì)價(jià)格、獲取方便性等因素考慮較多,而對(duì)語言本身的技術(shù)因素考慮較少。文章從嵌入式系統(tǒng)高級(jí)編程語言特點(diǎn)入手,對(duì)高級(jí)語言的基本性能作簡要總結(jié),對(duì)目前比較流行的幾種嵌入式系統(tǒng)編程語言——ada、c/c++、modula-2的基本技術(shù)性能進(jìn)行分析比較;對(duì)java作簡要介紹。 關(guān)鍵詞 嵌入式系統(tǒng) 高級(jí)語言 基本性能 編程特點(diǎn)一、 嵌入式系統(tǒng)高級(jí)語言編程特點(diǎn) 隨著嵌入式系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大和嵌入式實(shí)時(shí)操作系統(tǒng)rtos(real time operating system)的廣泛使用,高級(jí)語言編程已是嵌入式系統(tǒng)設(shè)計(jì)的必然趨勢(shì)。因?yàn)閰R編語言和具體的微處理器的硬件結(jié)構(gòu)密切相關(guān),移植性較差,既不宜在復(fù)雜系統(tǒng)中使用,又不便于實(shí)現(xiàn)軟件重用;而高級(jí)語言具有良好的通用性和豐富的軟件支持,便于推廣,易于維護(hù)。因此高級(jí)語言編程具有許多優(yōu)勢(shì)。(1) 通用性強(qiáng)。隨著微處理器技術(shù)的不斷發(fā)展,其功能越來越具體,種類越來越多,而不同種類的微處理器都有自己專用的匯編語言。這就為系統(tǒng)開發(fā)者設(shè)置了一個(gè)巨大的障礙,使得系統(tǒng)編程更加困難,軟件重用無法實(shí)現(xiàn);而高級(jí)語言一般和具體機(jī)器的硬件結(jié)構(gòu)聯(lián)系較少,比較流行的高級(jí)語言對(duì)多數(shù)微處理器都有良好的支持,通用性較好。(2) 容易編程。隨著嵌入式系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大和應(yīng)用層面的不斷深入,系統(tǒng)規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜,設(shè)計(jì)變得越來越困難。一個(gè)系統(tǒng)內(nèi)有多種微處理器已是常見的事情。這時(shí),要用匯編語言編程不僅要求編程人員要對(duì)所有微處理器的匯編語言都了如指掌,而且隨著任務(wù)復(fù)雜程度的不斷提高,用匯編語言實(shí)現(xiàn)規(guī)模較大的任務(wù)難度極大;而高級(jí)語言的語意層次較高,且有豐富的程序庫支持,因此,編寫較復(fù)雜的程序相對(duì)簡單。使用高級(jí)語言編程,不僅能夠加快系統(tǒng)開發(fā)進(jìn)程,節(jié)省大量時(shí)間,同時(shí)也有利于系統(tǒng)調(diào)試及維護(hù)工作。(3) 容易閱讀。由于匯編語言的語意層次較低,在閱讀匯編語言程序時(shí),往往要花費(fèi)大量精力分析“細(xì)節(jié)”問題,如為什么把一個(gè)數(shù)據(jù)傳送給一個(gè)寄存器,為什么把某個(gè)標(biāo)志位清零等。當(dāng)把注意力放在這些“細(xì)節(jié)”上的時(shí)候,往往又把程序的主線忘記了。因此,匯編語言程序不僅難寫,而且難讀。采用高級(jí)語言就可以很好地解決這些問題。因?yàn)楦呒?jí)語言的語意層次較高,表達(dá)方式更接近人們?nèi)粘5乃季S方法,一些數(shù)學(xué)表達(dá)式可以直接用一條語句表達(dá),程序的思路更加清晰、簡捷。因此,程序也就容易閱讀。(4) 可移植性好。由于匯編語言和具體的微處理器密切相關(guān),為某個(gè)微處理器設(shè)計(jì)的程序不能直接移植到另一個(gè)不同種類的微處理器上使用,因此,移植性差;而高級(jí)語言對(duì)所有微處理器都是通用的,因此,程序可以在不同的微處理器上運(yùn)行,可移植性較好。這是實(shí)現(xiàn)軟件重用的基礎(chǔ)。(5) 可維護(hù)性好。高級(jí)語言程序往往是模塊化設(shè)計(jì),各個(gè)模塊之間的接口是固定的。因此,當(dāng)系統(tǒng)出現(xiàn)問題時(shí),可以很快地將問題定位到某個(gè)模塊內(nèi),并盡快得到解決。另外,模塊化設(shè)計(jì)也便于系統(tǒng)功能的擴(kuò)充和升級(jí)。(6) 直接支持中斷管理。中斷是嵌入式系統(tǒng)最重要也是最常用的信息交換方式,因此中斷系統(tǒng)是否靈活,中斷功能是否強(qiáng)大對(duì)系統(tǒng)的性能影響極大。在高級(jí)語言中,一般都有強(qiáng)大的中斷管理機(jī)制,以便構(gòu)建高效靈活的中斷系統(tǒng);而在匯編語言中,一般要由程序設(shè)計(jì)者自己編程來進(jìn)行中斷管理。這不僅增加了編程的難度,而且效果也不一定好。(7) 支持軟件重用。由于匯編語言的可移植性極差,使得其軟件重用性嚴(yán)重受阻;而高級(jí)語言具有較好的通用性和可移植性,這就使得高級(jí)語言程序可以在不同時(shí)間、不同地點(diǎn)、不同系統(tǒng)、不同人員之間分享,實(shí)現(xiàn)軟件重用。這不僅可以提高產(chǎn)品質(zhì)量,縮短開發(fā)周期,降低產(chǎn)品成本,而且還可以使軟件開發(fā)走上正規(guī)化、產(chǎn)業(yè)化的道路[1]。二、 嵌入式系統(tǒng)高級(jí)編程語言概述 在過去40多年,人們開發(fā)研制了幾十種計(jì)算機(jī)語言,但是僅有少數(shù)幾種得到了廣泛應(yīng)用。這就提示我們選擇一個(gè)合適的語言系統(tǒng)并不容易。在小型嵌入式系統(tǒng)中,通常只有一個(gè)微處理器,并且其主要工作往往不是計(jì)算,而是控制,應(yīng)選擇控制能力較強(qiáng)的語言。在大型嵌入式系統(tǒng)中,往往會(huì)有多個(gè)微處理器或計(jì)算機(jī)并行工作,構(gòu)成多機(jī)系統(tǒng)。它們中有些工作于真正的嵌入式模式,有的則為純粹的信息處理。此時(shí),對(duì)系統(tǒng)的編程就變得相當(dāng)復(fù)雜,不同的任務(wù)可能會(huì)用不同的語言編程。因此,大型系統(tǒng)往往是一個(gè)多語言系統(tǒng)。對(duì)于這種“混合”系統(tǒng)的語言選擇更應(yīng)慎重考慮! ∧壳,在嵌入式系統(tǒng)開發(fā)過程中使用的語言種類很多,但僅有少數(shù)幾種語言得到了比較廣泛的應(yīng)用。本文選擇了ada、c/c++、modula-2作為討論對(duì)象,并對(duì)java作簡要介紹! da語 |
|