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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM嵌入式系統(tǒng)的軟件開發(fā)方法

          ARM嵌入式系統(tǒng)的軟件開發(fā)方法

          作者: 時(shí)間:2012-11-22 來(lái)源:網(wǎng)絡(luò) 收藏

            在硬件選型和PCB硬件平臺(tái)設(shè)計(jì)完成之后,就可以根據(jù)硬件和應(yīng)用的需求,開始軟件系統(tǒng)的功能和結(jié)構(gòu)設(shè)計(jì)了。一般而言,的軟件可以采用兩種,一種是缺少操作系統(tǒng)的嵌入式控制系統(tǒng)軟件,另一種是在具備嵌入式操作系統(tǒng)情況下的嵌入式軟件。

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

            例如,有些系統(tǒng)的芯片上運(yùn)行Linux等操作系統(tǒng);而另外一些芯片上使用的卻是不帶操作系統(tǒng)的軟件,如使用ADS開發(fā)的ARM Evaluator,其程序的運(yùn)行通過(guò)板載程序配合下載程序?qū)崿F(xiàn)。不過(guò)嵌入式操作系統(tǒng)在中的作用日顯重要,它可以為嵌入式系統(tǒng)開發(fā)人員提供一個(gè)基本的和運(yùn)行的支撐平臺(tái),從而大大減小復(fù)雜嵌入式系統(tǒng)的開發(fā)難度和開發(fā)周期,增強(qiáng)系統(tǒng)的穩(wěn)定性,降低開發(fā)和維護(hù)成本。

            1. 流程

            ARM嵌入式軟件的一般開發(fā)過(guò)程是:設(shè)計(jì)目標(biāo)硬件板,建立嵌入式Linux開發(fā)環(huán)境,編寫、調(diào)試Boot-loader,編寫、調(diào)試Linux內(nèi)核,編寫、調(diào)試應(yīng)用程序,調(diào)試ARM板。Boot-loader用于初始化目標(biāo)板、檢測(cè)目標(biāo)板和引導(dǎo)Linux內(nèi)核。高速BDM(BackgroundDebug Mode,背景調(diào)試模式)/JTAG接口用于目標(biāo)板開發(fā),它可以檢測(cè)目標(biāo)板硬件、初始化目標(biāo)板、調(diào)試Boot-loader和BSP,如圖所示。

            圖 嵌入式流程

            在嵌入式Linux開發(fā)過(guò)程中,選擇好的嵌入式Linux開發(fā)平臺(tái)和調(diào)試工具可以極大地提高嵌入式Linux開發(fā)效率。嵌入式系統(tǒng)的特點(diǎn)是系統(tǒng)資源小,因此具體目標(biāo)板的設(shè)備驅(qū)動(dòng)程序(Device Driver)需要定制,BDM /JTAG調(diào)試工具是開發(fā)Linux內(nèi)核的很好手段。調(diào)試工具利用CPU的JTAG接口,對(duì)運(yùn)行程序進(jìn)行監(jiān)控,不占用系統(tǒng)的其他資源。

          linux相關(guān)文章:linux教程



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(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); })();