<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于ARM嵌入式系統(tǒng)的軟件相關(guān)知識

          關(guān)于ARM嵌入式系統(tǒng)的軟件相關(guān)知識

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          由于嵌入式系統(tǒng)的差異性很大,對不同的應(yīng)用需求,必須選擇不同的軟件設(shè)計方法、開發(fā)平臺和系統(tǒng)工具。

          本文引用地址:http://www.ex-cimer.com/article/201611/321937.htm

          對于一些不需要復(fù)雜圖形用戶界面、通信協(xié)議和復(fù)雜文件操作(如同時打開多個文件)的應(yīng)用,如果選用CortexM3核的處理器就已可以滿足要求,任務(wù)數(shù)不多,任務(wù)之間的關(guān)系也不復(fù)雜,則不一定需要移植復(fù)雜的操作系統(tǒng)。這樣一方面可以降低系統(tǒng)硬件開銷,也可以獲得更好的實時性和執(zhí)行速度。不過,這樣的軟件開發(fā)方法需要開發(fā)人員有較好的程序設(shè)計思想,對所用器件有深入的了解,并掌握其編程控制方法。若引入一個簡單的操作系統(tǒng),如霤/OS,可以簡化程序結(jié)構(gòu),但開發(fā)者最好熟悉其內(nèi)核結(jié)構(gòu),并有使用經(jīng)驗,否則可能會需要更多的系統(tǒng)開發(fā)、調(diào)試時間。

          如果選擇了帶存儲器管理單元(MMU)的ARM處理器(如ARM920T、CortexA8等),這種應(yīng)用系統(tǒng)根據(jù)應(yīng)用、實時性、開發(fā)環(huán)境等因素,移植一個功能較強的操作系統(tǒng)一般情況下會比較合適,如Linux、WinCE,甚至新的Android等。這種系統(tǒng)的開發(fā)難度主要是在OS的移植以及硬件驅(qū)動程序的開發(fā)上。當(dāng)這二步工作完成后,主要的軟件開發(fā)工作已和在PC機上開發(fā)沒有多大區(qū)別,可以按照一般的軟件工程方法來進(jìn)行,要注意的只是與arm硬件平臺相關(guān)的軟件優(yōu)化問題。

          由于嵌入式系統(tǒng)硬件資源的有限性,嵌入式軟件與其他應(yīng)用軟件的主要區(qū)別,在于嵌入式軟件要有較高的效率,包括執(zhí)行速度和存儲空間,盡管這二者經(jīng)常是相互矛盾的。目前一般要求更多的是速度優(yōu)化。要編寫出高效的ARM程序,需要開發(fā)人員熟悉ARM的體系結(jié)構(gòu),包括內(nèi)核結(jié)構(gòu)、指令系統(tǒng)、Cache與存儲器結(jié)構(gòu)等,還要有好的程序設(shè)計思想,以及對一些常用函數(shù)、算法的深刻理解。這個過程也是arm系統(tǒng)開發(fā)從低級到高級的進(jìn)階之路。

          目前,由于應(yīng)用系統(tǒng)越來越復(fù)雜,嵌入式軟件的移植性和重用性也得到了人們的高度重視,因為它直接影響到嵌入式軟件的開發(fā)效率和質(zhì)量。選擇一種通用的開發(fā)環(huán)境和高級編程語言,使開發(fā)的嵌入式軟件可以方便地移植到不同的硬件平臺,是實現(xiàn)軟件重用的基礎(chǔ)。目前在ARM嵌入式系統(tǒng)開發(fā)中,ARM RealView、Keil以及IAR的EWarm是較好的開發(fā)平臺,C/C++語言是應(yīng)用最廣泛的編程語言,并具有廣泛的庫函數(shù)、程序支持,在今后很長一段時間內(nèi),仍將在嵌入式系統(tǒng)應(yīng)用領(lǐng)域中占重要地位。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();