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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > VxWorks移植到AT91RM9200的BSP定制過程

          VxWorks移植到AT91RM9200的BSP定制過程

          作者: 時(shí)間:2010-12-14 來源:網(wǎng)絡(luò) 收藏


          的缺省配置由configAll.h來確定。一般來說,缺省配置的設(shè)置與自行開發(fā)的硬件系統(tǒng)的配置不同,用戶可通過Cotlfig.h來改變?nèi)笔∨渲?。用戶須查看configAll.h,并在Config.h中將不需要的軟硬件配置和初始化去掉。例如,缺省配置中一般包含浮點(diǎn)處理器,而AT9lRM9200中沒有浮點(diǎn)寄存器,因此就要?jiǎng)h掉相關(guān)配置。

          3.2.3 修改integrator920t.c

          該文件中設(shè)置所有非可選的、與芯片相關(guān)的信息,如各硬件相關(guān)寄存器的地址定義,設(shè)備寄存器中對(duì)應(yīng)位的定義,各硬件中斷矢量和中斷優(yōu)先級(jí)的定義,DBUG和USART的控制,網(wǎng)口的定義,系統(tǒng)時(shí)鐘和輔助時(shí)鐘參數(shù)設(shè)置等。所要使用的目標(biāo)板包含設(shè)備的驅(qū)動(dòng)程序頭文什應(yīng)當(dāng)包含在該文件的開始。該文件中的各項(xiàng)宏定義均是基于芯片的,并根據(jù)具體要求定義。例如,電源管理控制器中用到兩個(gè)鎖相環(huán)PLLA和PLLB,對(duì)它們的部分參數(shù)設(shè)定代碼如下:

          3 2.4 修改rornlnit.s

          該文件包含引導(dǎo)ROM和基于ROM的映像的入口初始化匯編代碼。入口點(diǎn)為romInit()函數(shù),是系統(tǒng)加電啟動(dòng)后首先執(zhí)行的代碼。主要功能是:保存啟動(dòng)類型,使處理器復(fù)位;初始化Flash和SDRAM;設(shè)置MMU到已知狀態(tài);指令Cache使能;初始化MMU控制寄存器(指令32位、數(shù)據(jù)32位、寫緩沖使能);開漏寫緩沖,并且使指令和數(shù)據(jù)Cache都兀效;通過設(shè)置CPSR的IRQ禁止位、FIR禁止位和先進(jìn)中斷控制器AIC中的中斷禁止寄存器來屏蔽中斷,跳轉(zhuǎn)到bootInit.c中的rom-Start(),同時(shí)傳遞啟動(dòng)類型。其中,中斷屏蔽代碼如下:


          在調(diào)試這段代碼時(shí),由于串口和網(wǎng)口都沒有啟動(dòng),因此只能通過點(diǎn)燈程序來跟蹤程序的執(zhí)行情況,設(shè)置不同的LED亮來顯示程序執(zhí)行到哪一步。例如,如果要并行輸入/輸出口C的32位中的第15位亮,則可以編程為;


          在編寫本文件時(shí),需要注意的地方是:不要在該文件里進(jìn)行過多的初始化操作,大部分硬件初始化操作在sysLib.c文件中的sysHwInit()函數(shù)中進(jìn)行。


          關(guān)鍵詞: 定制 過程 BSP AT91RM9200 移植 VxWorks

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