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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PC104總線的VxWorksBSP設(shè)計(jì)

          基于PC104總線的VxWorksBSP設(shè)計(jì)

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

          VxWorks內(nèi)核的加載分為兩個(gè)步驟,第一個(gè)步驟是PCBIOS對bootrom的加載,第二個(gè)步驟是BSP引導(dǎo)映像bootrom對VxWorks操作系統(tǒng)映像加載?;玖鞒倘缦滤荆?P align=left>

          2.3 BSP中函數(shù)調(diào)用過程分析

          BSP啟動操作系統(tǒng)的過程中,需要調(diào)用一列函數(shù)以完成對系統(tǒng)內(nèi)存映像的加載,整個(gè)過程分析如下,RomInit函數(shù)初始化處理器,關(guān)閉高速緩存,關(guān)中斷,初始化內(nèi)存。接著調(diào)用RomStart,把映像的數(shù)據(jù)段拷貝到RAM中去,然后調(diào)用usrInit()對Bss段清零,調(diào)用intVecBaseSet()設(shè)置矢量基地址表,調(diào)用excVecInt()初始化中斷以及異常的向量表,初始化系統(tǒng)硬件,調(diào)用 usrKernelInit()初始化wind內(nèi)核,最后執(zhí)行流程執(zhí)行到kernelInit(),kernelInit啟動wind內(nèi)核。Wind內(nèi)核的第一個(gè)任務(wù)是usrRoot它通過調(diào)用usrAppInit啟動用戶的任務(wù),系統(tǒng)可真正啟動。

          2.4 修改BSP設(shè)計(jì)概要

          一般情況下,提供一些評估板的板載支持包,而PC104主機(jī)板是根據(jù)工作實(shí)際需要購買的,評估板的板載支持包不能夠直接使用,需要進(jìn)行修改完善??尚械姆椒ㄊ牵夯趐c586的BSP作為模板進(jìn)行適當(dāng)修改,以滿足這款PC104主機(jī)板的特定硬件環(huán)境。

          板載支持包通常存放在的安裝目錄下面,其路徑是Root/target/config /bspname,root代表tornado的安裝目錄。設(shè)計(jì)一個(gè)可用的新的板載支持包,必須對本身自帶板載支持包作一定的分析。 pc586板載支持包主要包括一些C文件和一些匯編文件,它們是:config.h,configAll.h,Pc.h,sysLib.c,ctdt.c,sysNetif.c,mkboot.c。板載支持包的缺省配置是由configALL.h來確定的,用戶可通過config.h來改變?nèi)笔∨渲?。缺省配置是按照處理器廠商的評估板外圍硬件進(jìn)行系統(tǒng)配置,根據(jù)實(shí)際硬件環(huán)境,一般需要做一定的改動,通常會在config.h中進(jìn)行,通過一系列的定義宏,完成系統(tǒng)配制工作。

          要設(shè)計(jì)針對這個(gè)半物理仿真試驗(yàn)的所選用的PC104主機(jī)板板載支持包,增加VxWorks對CF卡支持,需要做出較大改動的文件是config.h和configAll.h以及sysLib.c這3個(gè)文件,具體如下:

          ①在config/bspname/bspname.h中找到修改其CF卡的中斷號,因?yàn)橐话阒袛嗵?x9是預(yù)留給硬盤接口,為了避免產(chǎn)生中斷沖突,將#define ATA1_INT_LVL0x9,改為#define ATA1_INT_LVL0xf

          ②在config/bspname/sysLib.c中找到ATA_RESOURCEataResource[]={................PCMCIA................ }

          修改為ATA_RESOURCEataResource[]={................IDE_LOCAL................. }

          另外還需要改寫其他的參數(shù),例如ATA1_CONFIG等。

          ③在config.h中,把#define SYS_WARM_ATA_CTRL 0改為#define SYS_WARM_ATA_CTRL 1這樣系統(tǒng)熱啟動后,就會從CF卡上的引導(dǎo)區(qū)上引導(dǎo)。

          ④在config.h中將#define SYS_WARM_TYPE SYS_WARM_FD/*warmstartdevice*/改為#define SYS_WARM_TYPESYS_WARM_ATA

          ⑤修改ataType數(shù)組使它和所選的CF卡的幾何參數(shù)(磁道,扇區(qū),柱面等)相等。

          將原來的ataTypes數(shù)組ATA_TYPEataTypes[ATA_MAX_CTRLS] [ATA_MAX_DRIVES]= {................{{761,8,39,512,0xff},/*ctrl1drive0*/...............};

          改為ATA_TYPE ataTypes [ATA_MAX_CTRLS] [ATA_MAX_DRIVES]= {................{{984,16,4,512,0xff},/*ctrl1drive0*/...............};

          這個(gè)參數(shù)可以在主機(jī)板的BIOS中查找到,進(jìn)入BIOS后使用idedetection就可以查看到CF卡幾何參數(shù),根據(jù)查到CF卡的幾何參數(shù),就可以在sysLib.c中做出相應(yīng)的修改。

          2.5 BSP的調(diào)試

          針對板載支持包的設(shè)計(jì)開發(fā),VxWorks并沒有提供了非常好的調(diào)試手段,這樣就給調(diào)試BSP帶來的很大困難。所以在對 BSP進(jìn)行調(diào)試之前,盡量減少代碼量,通過改寫B(tài)SP目錄下Makefile來去除不需要的代碼編譯,然后再對BSP調(diào)試。調(diào)試的方式一般采用閃燈的方式,通過在有疑問的代碼之間插入閃燈的代碼,通過對I/O端口的可視LED訪問,觀察燈是否閃亮來判斷BSP的執(zhí)行流程。

          3 結(jié)束語

          通過多次試驗(yàn)的調(diào)試,最終設(shè)計(jì)出了基于的VxWorks板載支持包。并應(yīng)用于某型飛機(jī)燃油系統(tǒng)的智能化管理,實(shí)踐結(jié)果表明,這種方法是一種切實(shí)可行的方案。


          上一頁 1 2 下一頁

          關(guān)鍵詞: PC104總線 VxWorksBSP Tornado

          評論


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