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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于eCos在基于ARM7硬件平臺上的應(yīng)用

          基于eCos在基于ARM7硬件平臺上的應(yīng)用

          作者: 時(shí)間:2010-07-27 來源:網(wǎng)絡(luò) 收藏

            ④ 在組件倉庫ecos.db中為以關(guān)鍵字target添加名為Flow55的新目標(biāo)。在這個(gè)目標(biāo)中還必須用關(guān)鍵字packages包括體系結(jié)構(gòu)層包和AT91M55800變體抽象層包,同時(shí)為了實(shí)現(xiàn)調(diào)試還必須包括串口驅(qū)動(dòng)包和Flash驅(qū)動(dòng)包及其上層驅(qū)動(dòng)包。除了這些被包含的軟件包外,根據(jù)不同的選擇configtool還會為目標(biāo)包添加一些默認(rèn)的包,如內(nèi)核包、數(shù)學(xué)庫包等。另外,還應(yīng)加入一些對該平臺的簡單描述。

            3.2 內(nèi)核的配置

            移植完成以后,一個(gè)最基本的目標(biāo)平臺就產(chǎn)生了。在configtool中可以看到Templates菜單的平臺列表中新增了Flow55目標(biāo)平臺模版,以default方式打開這個(gè)模版。各個(gè)軟件包的CDL腳本中都給出了默認(rèn)的配置值,有些值需要根據(jù)具體的要求重新配置。本系統(tǒng)一些重要的配置情況如下:

            ① 由于系統(tǒng)線程數(shù)量較少(小于10),所以選擇效率更高的位圖調(diào)度器Bitmap scheduler,并將線程數(shù)numbers of priority levels限定為16,以提高任務(wù)切換的速度。當(dāng)點(diǎn)擊位圖調(diào)度器的單選按鈕時(shí),configtool會檢測到一個(gè)配置沖突。由于時(shí)間片輪轉(zhuǎn)是默認(rèn)使能的,而時(shí)間片輪轉(zhuǎn)僅僅對應(yīng)于多級隊(duì)列調(diào)度器,所以出現(xiàn)配置沖突。Configtool會給出一個(gè)推薦的解決沖突的方法,即禁止時(shí)間片輪轉(zhuǎn),按照這個(gè)推薦的解決方法可以安全地解決這個(gè)沖突。這個(gè)地方可以充分體現(xiàn)出強(qiáng)大的可配置性。

           ?、?由于配合RedBoot一起使用,所以內(nèi)核配置為RAM啟動(dòng)方式。這樣,系統(tǒng)上電后程序?qū)⒂蒖edBoot復(fù)制到RAM中運(yùn)行,以提高速度。

            ③ 系統(tǒng)的晶振頻率為16 MHz,經(jīng)PLL倍頻后為32 MHz,所以需將Clock speed配置為32000000;RTC是系統(tǒng)的時(shí)鐘節(jié)拍發(fā)生器,本系統(tǒng)的時(shí)鐘節(jié)拍時(shí)間選為20 ms,所以也需要對RTC相關(guān)項(xiàng)進(jìn)行配置。具體參數(shù)為Realtime clock numerator配置為2000000000,Realtime clock denominator配置為100,Realtime clock period配置為20000。

            其余的配置選項(xiàng)使用默認(rèn)的配置值即可。完成配置工作后,對內(nèi)核進(jìn)行編譯可以產(chǎn)生內(nèi)核庫文件和鏈接腳本以及相關(guān)頭文件。這些生成的文件再同程序一起編譯、鏈接,生成最終的可執(zhí)行映像文件。

            圖4 軟件結(jié)構(gòu)

            3.3 操作系統(tǒng)的應(yīng)用軟件的編寫

            是一個(gè)單進(jìn)程多線程的操作系統(tǒng),多個(gè)線程在宏觀上可以認(rèn)為是并發(fā)運(yùn)行的,而且各線程之間耦合低,便于軟件的編寫和維護(hù)。針對這一特點(diǎn),本系統(tǒng)的軟件結(jié)構(gòu)如圖4所示。

            本系統(tǒng)主要有兩種程序運(yùn)行方式,分別稱為方式A和方式B。方式A中,中斷產(chǎn)生后,相應(yīng)的ISR(Interrupt Service Routine)程序運(yùn)行,由于ISR中是禁止中斷的,所以在ISR中只進(jìn)行最簡單的操作,ISR退出后內(nèi)核調(diào)用相應(yīng)的DSR(Deferred Service Routine)。DSR中中斷是使能的,所以可以進(jìn)行一些稍復(fù)雜的處理,如簡單的數(shù)據(jù)運(yùn)算、內(nèi)核調(diào)用(發(fā)送信號量和郵箱等)。在得到相應(yīng)的信號量或消息郵箱后,相應(yīng)的線程進(jìn)入就緒態(tài)被內(nèi)核調(diào)度運(yùn)行。本系統(tǒng)中對鍵盤的處理就是這種方式――按鍵產(chǎn)生中斷、ISR執(zhí)行,接著在DSR中進(jìn)行相應(yīng)的運(yùn)算得到具體的鍵值后以消息郵箱的方式通知并喚醒鍵盤處理線程,鍵盤處理線程在完成任務(wù)后進(jìn)入休眠直到再次有按鍵發(fā)生而被喚醒。方式B中,各線程只是周期性地被內(nèi)核調(diào)度運(yùn)行,如測量數(shù)據(jù)顯示線程,在顯示一次數(shù)據(jù)后調(diào)用延時(shí)函數(shù)進(jìn)入休眠,直到延時(shí)完畢后再次進(jìn)入就緒態(tài)被內(nèi)核調(diào)用。

            根據(jù)測控系統(tǒng)的實(shí)際情況,具體的線程編寫如下: 方式A為流量計(jì)算線程、溫度測量線程、鍵盤處理線程、USB通信處理線程。方式B為測量數(shù)據(jù)顯示和曲線繪制線程、流量控制線程、初始標(biāo)定線程。

            4 結(jié)論

            經(jīng)過實(shí)踐,本系統(tǒng)運(yùn)行穩(wěn)定,實(shí)時(shí)性能良好。由于eCos的強(qiáng)大可配置性使得系統(tǒng)的軟硬件可維護(hù)性強(qiáng),在進(jìn)行硬件改動(dòng)或應(yīng)用要求改動(dòng)后可方便地進(jìn)行升級。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 基于 應(yīng)用 平臺 ARM7 eCos 硬件

          評論


          相關(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); })();