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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式微處理器的嵌入式操作系統(tǒng)-uClinux

          嵌入式微處理器的嵌入式操作系統(tǒng)-uClinux

          ——
          作者:michael Hennerich 時(shí)間:2005-09-02 來源:EDN電子設(shè)計(jì)技術(shù) 收藏
          嵌入式微處理器的嵌入式操作系統(tǒng)-uClinux
           序言
            在過去的兩年中,隨著嵌入式設(shè)備的發(fā)展改進(jìn),Linux操作系統(tǒng)受到了越來越多的青睞,尤其是用于消費(fèi)產(chǎn)品、電訊路由器和交換機(jī)、網(wǎng)絡(luò)產(chǎn)品、工業(yè)和汽車等應(yīng)用。
            最近,一些大的消費(fèi)電子公司達(dá)成協(xié)作,建立消費(fèi)者電子Linux論壇(CELF),以進(jìn)一步開發(fā)家庭數(shù)字電子設(shè)備的Linux平臺(tái)。CELF的發(fā)起者(Matsushita Electric、Sony、Hitachi、NEC、Royal Philips Electronics、Samsung、Sharp和Toshiba)將重點(diǎn)放在Linux的改進(jìn)上,使之成為消費(fèi)電子設(shè)備的開放源代碼平臺(tái)。同樣,他們對(duì)開放源代碼協(xié)會(huì)的精神也給予了積極的支持和發(fā)揚(yáng)( 要獲得更多信息,請(qǐng)?jiān)L問www.celinuxforum.org) 。
            嵌入式Linux的優(yōu)點(diǎn)在于它的版權(quán)免費(fèi)、源碼開放、結(jié)構(gòu)緊湊,這為日益增長(zhǎng)的應(yīng)用軟件基礎(chǔ)提供了堅(jiān)實(shí)的后盾。Linux是一個(gè)全功能的操作系統(tǒng),支持各種網(wǎng)絡(luò)和文件處理協(xié)議,這對(duì)嵌入式系統(tǒng)來說是很重要的,因?yàn)樗仨?在任何時(shí)間任何地點(diǎn)進(jìn)行計(jì)算"。Linux采用模塊化結(jié)構(gòu),通過去除嵌入式系統(tǒng)中不必要的實(shí)用程序、工具和其它系統(tǒng)服務(wù),它可以很方便地實(shí)現(xiàn)結(jié)構(gòu)精簡(jiǎn)。在嵌入式設(shè)備市場(chǎng)中,采用Linux的公司可以更迅速地將產(chǎn)品推向市場(chǎng),更快地增強(qiáng)產(chǎn)品的可靠性。對(duì)開發(fā)者來說,AD的Blackfin?處理器和uClinux的結(jié)合也許很有吸引力。Blackfin?處理器集合了DSP的計(jì)算能力和微控制器的功能,滿足了數(shù)字音頻、視頻和通信方面的應(yīng)用需求。
            我們?cè)趩螇K芯片上結(jié)合一流的DSP內(nèi)核和傳統(tǒng)微控制器的體系結(jié)構(gòu),避免了其它傳統(tǒng)復(fù)合處理器系統(tǒng)的限制性、復(fù)雜性和高成本的問題。在已有的外部設(shè)備(SPI、帶IrDa? 功能的UART、定時(shí)器、實(shí)時(shí)時(shí)鐘(RTC)、看門狗(watchdog)和事件控制器(event controller))的基礎(chǔ)上,所有Blackfin處理器家族提供雙通道串行接口(SPORTs)---每個(gè)串行接口支持4個(gè)立體聲I2S通道,數(shù)據(jù)速率達(dá)100 MBits/s。而且Blackfin處理器家族的最新成員(ADSP-BF531、ADSP-BF532、ADSP-BF533和ADSP-BF561) 提供并行外部接口(PPI),實(shí)現(xiàn)TFT平板顯示器和視頻轉(zhuǎn)換器(CCIR-656, 27 MHz)的無縫連接,或者作為AD/DA轉(zhuǎn)換器的并行接口,速率達(dá)65MSPS。
            表1:Blackfin處理器家族
            其它封裝也是可選的
            所有的Blackfin處理器都藝術(shù)地將最先進(jìn)的信號(hào)處理引擎和清晰正交的類RISC微處理器指令集以及支持SIMD單指令多數(shù)據(jù)的多媒體功能復(fù)合成一套單指令集的結(jié)構(gòu),稱之為微信號(hào)結(jié)構(gòu)(MSA)。該內(nèi)核是調(diào)整的雙-MAC Harvard 結(jié)構(gòu),這種結(jié)構(gòu)旨在實(shí)現(xiàn)音頻和視頻算法的非并行計(jì)算,以及實(shí)現(xiàn)操作系統(tǒng)中標(biāo)準(zhǔn)的程序流和常用的仲裁操作。
            Blackfin 的ADSP-BF531/BF532/BF533處理器有兩個(gè)大的片內(nèi)存儲(chǔ)器塊,提供通往內(nèi)核的高速通道。這些內(nèi)存塊可以適應(yīng)處理器內(nèi)核的最高速度。它們位于內(nèi)核的旁邊,稱為L(zhǎng)1存儲(chǔ)器,可以配置為數(shù)據(jù)或指令靜態(tài)處理器(SRAM)或高速緩沖存儲(chǔ)器。當(dāng)配置為高速緩存時(shí),處理外部SDRAM的代碼的速度非常接近內(nèi)部存儲(chǔ)器直接處理的速度。這個(gè)特征特別適用于uClinux內(nèi)核的運(yùn)行,因?yàn)樗鼪]辦法被全部裝入內(nèi)部存儲(chǔ)器。而且,當(dāng)使用c語言編程時(shí),可以通過使用高速緩存來最大優(yōu)化外部存儲(chǔ)器到內(nèi)核之間的存取。
            Blackfin處理器采用低電壓,低功耗的設(shè)計(jì),具備動(dòng)態(tài)電源管理功能。完全滿足目前的移動(dòng)和電池供電需求,其它的處理器都無法做到這一點(diǎn)。Blackfin處理器配有多重的、高度靈活和獨(dú)立的直接存取控制器(DMA),用來支持自動(dòng)數(shù)據(jù)傳輸,并使處理器內(nèi)核受到的間接影響達(dá)到最小。
            DMA 的傳輸操作可以發(fā)生在ADSP-BF531/BF532/BF533處理器的內(nèi)部存儲(chǔ)器到與有DMA能力的外部設(shè)備之間。而且,DMA傳輸也能夠在DMA外部設(shè)備和連接到外部存儲(chǔ)器接口的外部設(shè)備(包括SDRAM控制器和異步存儲(chǔ)控制器)之間進(jìn)行。
           
            的區(qū)別?
            由于Linux和UNIX相似,是多用戶、多任務(wù)的操作系統(tǒng),內(nèi)核必須采取特殊的防范措施,以保證同一系統(tǒng)內(nèi)來自不同用戶的上千個(gè)操作正確安全地運(yùn)行。UNIX的安全模型(即Linux之前的設(shè)計(jì))能夠保護(hù)每個(gè)用戶操作的自身環(huán)境和地址空間。每個(gè)用戶操作都受到保護(hù),防止被其它用戶喚醒,而且,虛擬內(nèi)存(VM)系統(tǒng)對(duì)現(xiàn)代CPU還有另外的要求,比如在個(gè)人處理內(nèi)存中實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存分配和隨機(jī)內(nèi)存區(qū)域規(guī)劃。有一些設(shè)備,如Blackfin 處理器,沒有提供全功能的MMU內(nèi)存管理單元,因?yàn)殚_發(fā)者的應(yīng)用程序并不使用操作系統(tǒng),通常也不需要MMU,而且,Blackfin的弱MMU的處理器往往具有更高的效率,其價(jià)格也明顯低于其它產(chǎn)品。
            為使Linux與這些設(shè)備相適應(yīng),必須進(jìn)行一些改動(dòng):
            1. 沒有實(shí)際的存儲(chǔ)器保護(hù)(一個(gè)錯(cuò)誤的環(huán)節(jié)可以讓整個(gè)系統(tǒng)停機(jī))
            2. 沒有交叉(fork)系統(tǒng)調(diào)用
            3. 只有簡(jiǎn)單的內(nèi)存分配
            4. 其它一些較小的區(qū)別
            存儲(chǔ)器保護(hù)對(duì)大多數(shù)嵌入式系統(tǒng)來說不是很大的問題。Linux是一個(gè)很穩(wěn)定的平臺(tái),尤其是在嵌入式系統(tǒng)中,軟件崩潰的情況很少發(fā)生。
            第二點(diǎn)的問題要大一些。在為UNIX和Linux編寫的軟件中,開發(fā)者常常使用fork系統(tǒng)調(diào)用來實(shí)現(xiàn)并行處理,fork調(diào)用可以準(zhǔn)確拷貝原始程序并同時(shí)予以執(zhí)行。為了提高效率,它使用MMU將父程序映射到子程序,并只拷貝寫入子程序的內(nèi)存區(qū)。因此uClinux不能提供fork系統(tǒng)調(diào)用。它提供vfork,一種特殊版本的fork,在vfork程序中當(dāng)子程序執(zhí)行時(shí)父程序即會(huì)終止。 因此,使用fork系統(tǒng)的軟件在使用uClinux支持的vfork或線程時(shí)必須重寫,因?yàn)樗麄兪褂孟嗤膬?nèi)存空間,包括堆棧。
            就第三點(diǎn)來說,一般情況下支持uClinux的malloc系統(tǒng)不會(huì)有問題,但是,有些時(shí)候必須進(jìn)行小的調(diào)整。大部分適用于UNIX和uClinux的軟件(可在http://freshmeat.net上找到此類軟件)能夠直接在uClinux上編譯,其它的則可使用微小的移植或調(diào)整(tweaking)。 只有很少的應(yīng)用軟件不能在uClinux上運(yùn)行,其中大部分不能作為嵌入式應(yīng)用軟件。


          關(guān)鍵詞: Linux和uClinux

          評(pí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); })();