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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于LPC2292嵌入式微處理器的監(jiān)護系統(tǒng)的研究與設計

          基于LPC2292嵌入式微處理器的監(jiān)護系統(tǒng)的研究與設計

          作者: 時間:2010-05-20 來源:網(wǎng)絡 收藏
            本中,存儲器有3個存儲器地址入口,所有的數(shù)據(jù)都需要經(jīng)過這3個地址入口,因此,必須保證此3個地址入口在任何時刻都沒有與其他地址發(fā)生地址交叉的狀況。
            3.4 μC/OS-Ⅱ操作的移植
             μC/OS-Ⅱ實時操作是一種可移植、可固化、可裁剪及可剝奪型的多任務實時內(nèi)核(RTOS),適合應用于各種和微控制器。其性能足可以媲美于各種商用內(nèi)核,在某些方面表現(xiàn)更佳。所有代碼都是采用ANSI的C語言編寫,故具有良好的可移植性。
            μC/OS-Ⅱ不像其他實時操作,他提供給用戶的是一個標準的API函數(shù),程序開發(fā)人員利用操作系統(tǒng)提供的API函數(shù)進行應用程序的開發(fā)。要想在μC/OS-Ⅱ內(nèi)核上進行應用程序的開發(fā),就需要程序開發(fā)人員在實時內(nèi)核基礎上建立自己的實時操作系統(tǒng)。首先,把μC/OS-Ⅱ移植到自己的硬件目標板上,寫出相應的驅動程序以及用戶圖形界面等;在這些接口函數(shù)之上,加上用戶自己的應用程序,就構成了軟件。
            μC/OS-Ⅱ的移植條件是:處理器C編譯器能產(chǎn)生可重入型代碼;處理器支持中斷,并能產(chǎn)生定時中斷;用C語言可以開、關中斷;處理器支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧;處理器有將堆棧指針及其他CPU寄存內(nèi)容讀出,并保存到堆?;騼?nèi)存中的指令這5個方面的要求。Philips公司芯片和ADS1.2的C編譯器一起可以滿足上述5個條件,因此本是完全可以移植操作系統(tǒng),以提高系統(tǒng)的功能。
            μC/OS-Ⅱ軟件的體系結構如圖4所示:
            雖然μC/OS-Ⅱ大部分源代碼是用C語言寫的,但是完成和處理器有關的一些代碼時,還是必須要用匯編語言來實現(xiàn)的。寄存器的讀、寫只能通過匯編語言的存儲和加載指令實現(xiàn)。
            移植μC/OS-Ⅱ到一個新的體系結構上需要對如下3個文件進行修改:
            (1)c語言頭文件OS-CPU.H;
            (2)C語言源文件OS-CPU.C;
            (3)匯編源文件程序OS-CPU-A.ASM。
            該人體生理參數(shù)系統(tǒng)在ARM7的硬件平臺上實現(xiàn),采用當前流行的μC/OS-Ⅱ實時多任務操作系統(tǒng),能實時檢測用戶的心電、血壓、血氧飽和度和體溫,并能對其進行數(shù)據(jù)分析,當出現(xiàn)異常時,能自動報警使用戶得到及時救治。該系統(tǒng)可擴展性比較高,可根據(jù)需要直接在該系統(tǒng)上進行擴展,使其具有GPS,GPRS,CDMA功能的遠程人體生理參數(shù)儀。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();