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

          新聞中心

          EEPW首頁 > 測(cè)試測(cè)量 > WindowsCE和嵌入式系統(tǒng)設(shè)計(jì)(2)

          WindowsCE和嵌入式系統(tǒng)設(shè)計(jì)(2)

          ——
          作者: 時(shí)間:2007-02-28 來源:51CTO論壇 收藏
           

          仿真環(huán)境通過減少程序下載時(shí)間和遠(yuǎn)程調(diào)試來加速開發(fā)周期。而且,仿真程序還可用于在獲得工作原型硬件之前開發(fā)應(yīng)用程序軟件,減少開發(fā)過程的順序化。BSquare估計(jì)對(duì)于典型的應(yīng)用程序來說,90 的開發(fā)都可在仿真環(huán)境中完成。剩下的10 (調(diào)試和測(cè)試)在實(shí)際的目標(biāo)硬件上完成。

          開發(fā)周期

          以下是成功開發(fā)一個(gè)WindowsCE嵌入式系統(tǒng)的理想化過程的步驟(忽略了定義和銷售產(chǎn)品的主要步驟):

          設(shè)計(jì)WindowsCE硬件系統(tǒng);

          將WindowsCE移植到目標(biāo)硬件;

          創(chuàng)建用戶界面;

          編寫軟件應(yīng)用程序?qū)印?BR>
          OEM也需要與Microsoft或像BSquare這類Microsoft認(rèn)可的銷售商協(xié)作,以獲得WindowsCE許可。

          硬件設(shè)計(jì)方面的大部份是由產(chǎn)品需求決定的。但是CE的某些要求和考慮將影響到硬件系統(tǒng)的設(shè)計(jì)。例如,設(shè)計(jì)者在所需求的WindowsCE版本中選擇一種由Microsoft支持的微處理器就很重要。設(shè)計(jì)者必須考慮一些用于CE的要求,包括一個(gè)間隔定時(shí)器和計(jì)年時(shí)鐘。

          對(duì)于XIPROM、RAM和非易失存儲(chǔ)器的內(nèi)存要求是針對(duì)應(yīng)用程序的,很大程度上取決于所要求的操作系統(tǒng)部件和軟件應(yīng)用程序。設(shè)計(jì)者需要考慮存儲(chǔ)器持久性或非易失存儲(chǔ)器的要求,因?yàn)镃E不是磁碟操作系統(tǒng);相反,它將數(shù)據(jù)存儲(chǔ)在可能位于RAM或非易失存儲(chǔ)器的目標(biāo)存儲(chǔ)區(qū)內(nèi)。對(duì)于擁有直接用戶界面的設(shè)備而言,設(shè)計(jì)者可以選擇觸摸屏的指示筆或手指輸入,或選擇鼠標(biāo)輸入。(CE支持兩者。)此外,CE允許你選擇LCD或顯示器顯示。

          移植WindowsCE

          將WindowsCE移植到硬件上包括如下步驟:

          編寫引導(dǎo)程序

          編寫OEM適配層(OEMAdaptionLayer,OAL)

          編寫設(shè)備驅(qū)動(dòng)程序。

          1.引導(dǎo)程序。引導(dǎo)程序是在系統(tǒng)上電時(shí)(或在重新啟動(dòng)之后)執(zhí)行的一段代碼。引導(dǎo)程序負(fù)責(zé)初始化硬件系統(tǒng),裝載WindowsCE,然后啟動(dòng)執(zhí)行。它可以是一個(gè)中等復(fù)雜程度的軟件,這取決于所要求的系統(tǒng)配置和所包含的調(diào)試支持的數(shù)量。引導(dǎo)程序?qū)⒔⒊跏嫉奈⑻幚砥髋渲茫渲萌魏蜗到y(tǒng)板ASIC,可能定義高速緩存和存儲(chǔ)器(例如DRAM定時(shí)器)的尺寸并配置它們,以及執(zhí)行總線配置(例如PCI總線配置)。引導(dǎo)程序的很多功能類似于臺(tái)式PC上的BIOS的初始化功能。

          2.OAL.OAL是系統(tǒng)和微處理器專用的代碼中的一小部份,它抽像化系統(tǒng)級(jí)的硬件功能(例如中斷處理,高速緩存控制,硬件定時(shí)器和內(nèi)核時(shí)鐘)。

          3.設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序提供外設(shè)和操作系統(tǒng)之間的抽像概念。WindowsCE驅(qū)動(dòng)程序能夠支持廣泛的設(shè)備,包括輸入設(shè)備、顯示設(shè)備、聲音發(fā)生器、網(wǎng)絡(luò)接口、以及通信設(shè)備。開發(fā)驅(qū)動(dòng)程序所要求的工作范圍取決于設(shè)備本身的復(fù)雜性、是否使用現(xiàn)成的驅(qū)動(dòng)程序、以及所需求的驅(qū)動(dòng)程序數(shù)量。若想為該平臺(tái)創(chuàng)建一組已完全調(diào)試的設(shè)備驅(qū)動(dòng)程序則需要一定量的有效工作。

          設(shè)計(jì)者有多種選擇以縮短WindowsCE端口的開發(fā)周期。第三方的ISV提供源代碼工具,為特定的微處理器設(shè)計(jì)供應(yīng)引導(dǎo)程序、OAL和設(shè)備驅(qū)動(dòng)程序。BSquare目前為AMDElanSC400、CyrixMediaGX系列、StrongARM1100、MotorolaPPC821系列、AMD-K6、NEC4300和HitachiSH7709提供工具。衹要處理器被推出而且市場成熟,就會(huì)開發(fā)額外的工具。

          用戶界面、桌面或外圍是CE嵌入式設(shè)計(jì)的關(guān)鍵決策。桌面是調(diào)出和控制應(yīng)用程序的框架,可用的控制是定義系統(tǒng)個(gè)性的重要決策。設(shè)計(jì)者可選擇獨(dú)立開發(fā)外圍,引導(dǎo)至某個(gè)單一用戶可視的應(yīng)用程序,或購買某種界面建立程序來加速開發(fā)。用戶界面的形式和要求在很大程度上取決于應(yīng)用程序。目前,唯一現(xiàn)成的界面建立程序是BSquare的CEEmbeddedDesktop。

          WindowsCE系統(tǒng)是由運(yùn)行于其操作系統(tǒng)之上的應(yīng)用程序定義的。目標(biāo)是讓設(shè)計(jì)者利用包含在產(chǎn)品中的軟件應(yīng)用程序的結(jié)合將他們的時(shí)間花在定義和區(qū)分他們的產(chǎn)品上。這些程序中有些可從ISV處購買,有些則需利用WindowsCEETK來開發(fā)和移植。

          了解更多

          你可以找到WindowsCE的培訓(xùn)課程。有些課程針對(duì)于WindowsCE的應(yīng)用程序級(jí)的開發(fā),而有些則針對(duì)于移植CE的系統(tǒng)級(jí)開發(fā)。此外,還有一些資料豐富的Web網(wǎng)址;WindowsCE網(wǎng)址http://www.microsoft.com/windowsce/embedded/default.asp提供了一些有關(guān)設(shè)計(jì)和系統(tǒng)屬性的技術(shù)性文章,以及一個(gè)很好的FAQ(常見問題回答)。BSquare網(wǎng)址(www.bsquare.com)也提供了有關(guān)WindowsCE設(shè)計(jì)的詳細(xì)的技術(shù)文章,以及技術(shù)產(chǎn)品和服務(wù)信息。

          最后,已在WindowsCE方面受過訓(xùn)練的系統(tǒng)集成人員也是減少學(xué)習(xí)時(shí)間的寶貴資源。你可以向這類專家咨詢最初的項(xiàng)目,這樣可以節(jié)省很多時(shí)間。已經(jīng)做了大量的研究工作,工程師和設(shè)計(jì)者們可以立即把這一點(diǎn)作為大幅度減少投放市場時(shí)間的手段。



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