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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于S3C2410的Windows CE 5.0 BSP移植

          基于S3C2410的Windows CE 5.0 BSP移植

          作者: 時(shí)間:2012-04-13 來源:網(wǎng)絡(luò) 收藏

          ⑶ 實(shí)現(xiàn)OEMInit(),該函數(shù)將調(diào)用以下函數(shù):OALCacheGlobalsInit(),OALIntrInit(),OALTimerInit(),OALKitlStart()來初始化Cache Global,中斷,時(shí)鐘,啟動(dòng)KITL,實(shí)現(xiàn)代碼如下:
          void OEMInit()
          {
          OALCacheGlobalsInit();// 初試化cache globals
          if (!OALIntrInit()) {
          OALMSG(OAL_ERROR, (
          LERROR: OEMInit: failed to initialize interruptsrn
          ));
          } // 初試化中斷
          OALTimerInit(1, X_PCLK/2000, 0); // 初始化時(shí)鐘
          OALKitlStart();// 初始化KITL
          }

          ⑷ 實(shí)現(xiàn)OALTimerInit(),該函數(shù)用于初始化OS TIMER,設(shè)置每毫秒產(chǎn)生一個(gè)System tick,為系統(tǒng)計(jì)數(shù),觸發(fā)進(jìn)程調(diào)度。由CPU的運(yùn)行主頻和硬件定時(shí)器資源來確定,執(zhí)行過程有:初始化時(shí)鐘狀態(tài)全局變量,初始化高分辨率時(shí)鐘函數(shù)指針,使能TIMER。

          ⑸ 實(shí)現(xiàn)中斷處理處理函數(shù):OALIntrInit(),該函數(shù)通常先初始化中斷映射表,因?yàn)閃IN為了模塊化,把平臺(tái)相關(guān)物理中斷號(hào)和系統(tǒng)中斷號(hào)建立映射。然后清除外部中斷,內(nèi)部中斷等。

          3.3 驅(qū)動(dòng)

          以觸摸屏為例,來探討 系統(tǒng)驅(qū)動(dòng)程序。這里以三星公司ARM9內(nèi)核芯片觸摸屏接口為基礎(chǔ),通過外接4線電阻式觸摸屏構(gòu)成硬件基礎(chǔ),整個(gè)觸摸屏由橫向電阻線和縱向電阻線組成。觸摸屏驅(qū)動(dòng)的主要函數(shù)組成有:

          TSP_Poweron 該函數(shù)將執(zhí)行觸摸屏的一些初始化,主要是寄存器的配置。

          DdsiTouchPanelEnable:使能DDSI接口,使得硬件能將流數(shù)據(jù)提供給DDSI接口,就可以實(shí)現(xiàn)觸摸的操作了。

          DdsiTouchPanelSetMode:模式設(shè)置函數(shù),設(shè)置觸摸屏是高采樣率還是低采樣率

          DdsiTouchPanelGetPoint :觸摸屏進(jìn)行采樣函數(shù)

          TSP_CalibrationPointGet:坐標(biāo)轉(zhuǎn)換函數(shù),該函數(shù)實(shí)現(xiàn)將從AD采樣植轉(zhuǎn)換成坐標(biāo)。

          主要過程:

          ⑴ 修改source文件,要添加如下庫文件:
          TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
          SOURLIBS=
          $(_COMMONOAKROOT)lib$(_CPUINDPATH)tch_cal.lib
          $(_COMMONOAKROOT)lib$(_CPUINDPATH)tchmdd.lib

          因?yàn)檫@個(gè)驅(qū)動(dòng)在 CE 4.2下面是在Public目錄,而這里將該觸摸屏移到了Platform下面,在 CE4.2下面是沒有以上三條鏈接庫,但Platform,Public編譯路徑,先決條件都不同。因此引用的庫不一樣。

          ⑵ 刪除如下庫文件:
          $(_TARGETPLATROOT)lib$(_CPUINDPATH)drvlib.lib

          該庫在Windows CE 4.2系統(tǒng)下為觸摸屏與音頻共用庫,但在Windows CE系統(tǒng)下,這個(gè)庫已經(jīng)不是必要的并且已經(jīng)不存在了,所以刪除掉,否則系統(tǒng)會(huì)出編譯錯(cuò)誤。

          ⑶修改platform.bib,將我們移植過來的驅(qū)動(dòng)dll包含到nk.bin中

          ⑷修改platform.reg,其中CalibrationData是觸摸屏的一個(gè)參數(shù):
          [HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH]
          MaxCalError=dword:7
          portrait
          CalibrationData=517,610 897,934 142,936 129,290 891,285

          其他驅(qū)動(dòng)的過程與觸摸屏類似。



          關(guān)鍵詞: BSP 移植 5.0 CE S3C2410 Windows 基于

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