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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何將一個(gè)開(kāi)源游戲移植給一款32位微控制器

          如何將一個(gè)開(kāi)源游戲移植給一款32位微控制器

          作者:Pierre Berquin,意法半導(dǎo)體公司工程師 時(shí)間:2009-05-26 來(lái)源:電子產(chǎn)品世界 收藏

          本文引用地址:http://www.ex-cimer.com/article/94728.htm

            意法半導(dǎo)體提供一個(gè)非常有用的軟件庫(kù),它包含很多M32功能管理實(shí)例。在這次移植中,軟件庫(kù)用于編寫(xiě)TFT顯示器硬件的驅(qū)動(dòng)。圖5表示架構(gòu)需要的項(xiàng)目,Wolfenstein 3D文件夾包含兩個(gè)子文件夾。

            Appli文件夾包含IDE項(xiàng)目以及硬件驅(qū)動(dòng)源碼,如TFT屏幕。該文件夾包含硬件應(yīng)用板的說(shuō)明(在我們這里是M3210E-EVAL),它還包含了M32庫(kù),用于管理電路板硬件和IDE項(xiàng)目。Wolfenstein 3D的源碼用庫(kù)函數(shù)作硬件驅(qū)動(dòng)。

            “source”文件夾包含了Wolfenstein 3D的原始源碼,源碼中所有指令或函數(shù)都不與應(yīng)用板硬件直接交互,子文件夾“portable”包括用于在游戲原始代碼與代碼執(zhí)行目標(biāo)硬件之間建立連接的函數(shù)。在我們這種情況下,我們還有一個(gè)子文件夾STM3210E-EVAL,這個(gè)文件夾包含調(diào)用應(yīng)用板硬件的函數(shù)。

            讓我們看一下顯示管理的例子。Wolfenstein 3D源碼包含一個(gè)VW_UpdateScreen函數(shù),這個(gè)函數(shù)根據(jù)內(nèi)部視頻緩沖的內(nèi)容刷新TFT屏幕,于是需要驅(qū)動(dòng)TFT屏幕。因此,它必須在文件夾“portable/STM3210E-EVAL”中定義。VW_UpdateScreen函數(shù)會(huì)調(diào)用在文件夾“appli/ STM3210E-EVAL”中定義的基本函數(shù)(驅(qū)動(dòng))。

            文件夾“source/portable/STM3210E-EVAL/”包含與編譯器兼容的類(lèi)型說(shuō)明與定義。通過(guò)這種方法處理,就能夠?qū)⒁粋€(gè)目標(biāo)的源碼移植到另一個(gè)目標(biāo),而無(wú)需修改復(fù)雜的源文件。舉個(gè)有用的例子,源碼要轉(zhuǎn)換到一個(gè)不同映射的STM32應(yīng)用,它有不同的接口硬件,或編譯器有改變。這時(shí)只需要為新的目標(biāo)更新“appli/STM3210E-EVAL/”和“source/portable/STM3210E-EVAL/”文件夾中的約束文件。結(jié)果在圖6中。它看似90年代的一款口袋機(jī)游戲。

            采用C編寫(xiě)的老式PC游戲的源碼現(xiàn)在仍能從互聯(lián)網(wǎng)上獲得。多虧有的強(qiáng)大性能和LCD顯示器的集成,我們現(xiàn)在還能體驗(yàn)到這些游戲。

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理



          上一頁(yè) 1 2 3 4 5 下一頁(yè)

          關(guān)鍵詞: ST 微控制器 開(kāi)源游戲

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();