<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇VxWorks專區(qū)VxWorks BSP開(kāi)發(fā) → 基于PC104總線的VxWorksBSP設(shè)計(jì)


      共有9022人關(guān)注過(guò)本帖樹形打印

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

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
    基于PC104總線的VxWorksBSP設(shè)計(jì)  發(fā)帖心情 Post By:2010-12-1 9:24:40

    設(shè)計(jì)開(kāi)發(fā)了嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的一種基于PC104總線的板載支持包,完成了相關(guān)的外圍驅(qū)動(dòng)程序設(shè)計(jì)和調(diào)試工作。

    [關(guān)鍵詞] PC104總線;VxWorks;集成開(kāi)發(fā)環(huán)境Tornado;板載支持包BSP

    1 引言

    VxWorks是由美國(guó)的WindRiver推出的一種嵌入式強(qiáng)實(shí)時(shí)操作系統(tǒng),它存在多任務(wù)調(diào)度的方式,可以管理多個(gè)外設(shè),而且它可根據(jù)應(yīng)用程序的需求對(duì)操作系統(tǒng)進(jìn)行裁剪,最大程度的壓縮代碼,實(shí)現(xiàn)程序的優(yōu)化。

    Intelx86系列處理器的嵌入式應(yīng)用一般是以PC104的形式出現(xiàn)的,PC104除包括PC/AT的所有標(biāo)準(zhǔn)功能外,它的CPU模塊還有一些獨(dú)特的優(yōu)點(diǎn):開(kāi)發(fā)周期短、費(fèi)用低、體積小、層疊連接、功耗小、模塊化、抗沖擊及震動(dòng)能力強(qiáng),工作及存儲(chǔ)溫度范圍寬、集成度高,可靠性高。

    在PC/104總線設(shè)備上使用的數(shù)據(jù)存儲(chǔ)設(shè)備通常有硬盤和基于閃存技術(shù)的固態(tài)電子盤。由于嵌入式系統(tǒng)工作環(huán)境一般比較惡劣,硬盤在惡劣的震動(dòng)條件下無(wú)法正常工作,而固態(tài)電子盤的工作范圍很寬,可以選擇相應(yīng)環(huán)境下的器件(零下40℃到零上85℃),并且體積很小,適合嵌入式應(yīng)用。本嵌入式系統(tǒng)中數(shù)據(jù)存儲(chǔ)設(shè)備采用了CE公司的CF(CompactFlash)卡,而在此軟硬件平臺(tái)上設(shè)計(jì)開(kāi)發(fā)了嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的并基于PC104總線的板載支持包。

    2 VxWorks板載支持包BSP設(shè)計(jì)

    2.1 基于PC104總線設(shè)備的VxWorks操作系統(tǒng)映像開(kāi)發(fā)

    在實(shí)時(shí)操作系統(tǒng)VxWorks中,硬件抽象層是以板載支持包BSP的形式出現(xiàn)的。針對(duì)不同的處理器體系結(jié)構(gòu)以及硬件環(huán)境設(shè)計(jì)不同的板載支持包,實(shí)時(shí)操作系統(tǒng)VxWorks就可以用于不同的硬件環(huán)境,大大減少了資源浪費(fèi)。因?yàn)榘遢d支持包同時(shí)具有硬件相關(guān)性和操作系統(tǒng)相關(guān)性,是一個(gè)介于硬件與軟件之間的軟件層次,包括了系統(tǒng)中的大部分與硬件相關(guān)的軟件模塊。VxWorks板載支持包BSP的設(shè)計(jì)概念使嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks成為一個(gè)通用的嵌入式軟件開(kāi)發(fā)包,使得相關(guān)的高層的嵌入式應(yīng)用能夠有效地運(yùn)行于特定的、應(yīng)用相關(guān)的硬件設(shè)備之上,使嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的可移植性大大加強(qiáng)。

    BSP與VxWorks操作系統(tǒng)的層次結(jié)構(gòu)如下圖1所示:

    圖1BSP與VxWorks操作系統(tǒng)的層次結(jié)構(gòu)圖

    基于PC104總線設(shè)備的VxWorks操作系統(tǒng)映像開(kāi)發(fā)主要工作有3個(gè)方面:

    ①板載支持包設(shè)計(jì)與開(kāi)發(fā)

    VxWorks實(shí)時(shí)操作系統(tǒng)的板載支持包的開(kāi)發(fā)通常提供一般模板程序,選擇一個(gè)相同處理器結(jié)構(gòu)板載支持包進(jìn)行設(shè)計(jì)。

    ②相關(guān)外圍硬件設(shè)備驅(qū)動(dòng)程序

    嵌入式系統(tǒng)是針對(duì)某一具體應(yīng)用場(chǎng)合開(kāi)發(fā)的專用系統(tǒng),因此常常會(huì)使用到一些非標(biāo)準(zhǔn)的硬件設(shè)備,而VxWorks操作系統(tǒng)并不提供相關(guān)的外設(shè)驅(qū)動(dòng)程序,使用時(shí)需自行開(kāi)發(fā)相應(yīng)的外設(shè)驅(qū)動(dòng)程序。

    ③操作系統(tǒng)映像配置與生成

    對(duì)VxWorks操作系統(tǒng)各個(gè)功能模塊進(jìn)行配置,使其在滿足功能需求的條件下達(dá)到代碼量最小,同時(shí)也減少出錯(cuò)的可能性。

    2.2 BSP的基本功能及其啟動(dòng)過(guò)程分析

    VxWorks板級(jí)支持包BSP在功能上包含兩個(gè)部分:初始化和驅(qū)動(dòng)程序支持。BSP提供了VxWorks同硬件環(huán)境的基本接口界面,并在上電時(shí)進(jìn)行硬件初始化(包括中斷向量的初始化、定時(shí)器初始化、核心內(nèi)存映象的加載等),支持VxWorks對(duì)硬件驅(qū)動(dòng)的訪問(wèn),將VxWorks中軟件集成到一體,其功能相當(dāng)于PC機(jī)的BIOS。

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

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

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

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

    一般情況下,Tornado提供一些評(píng)估板的板載支持包,而PC104主機(jī)板是根據(jù)工作實(shí)際需要購(gòu)買的,評(píng)估板的板載支持包不能夠直接使用,需要進(jìn)行修改完善。可行的方法是:基于pc586的BSP作為模板進(jìn)行適當(dāng)修改,以滿足這款PC104主機(jī)板的特定硬件環(huán)境。

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

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

    ①在config/bspname/bspname.h中找到修改其CF卡的中斷號(hào),因?yàn)橐话阒袛嗵?hào)0x9是預(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)熱啟動(dòng)后,就會(huì)從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ū),柱面等)相等。

    將原來(lái)的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)試

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

    3 結(jié)束語(yǔ)

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


    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

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








    簽名
    主站蜘蛛池模板: 国产一区日韩二区欧美三区| 成人深夜视频在线观看| 公交车上驯服冷艳麻麻| 香蕉视频久久久| 天堂а√在线地址中文在线| 久久天天躁狠狠躁夜夜躁2020 | 精品日本一区二区三区在线观看| 国产精品好好热在线观看| 三个人躁我一个| 日本高清有码视频| 亚洲欧美综合视频| 男女一进一出无遮挡黄| 国产伦精品一区二区三区视频小说| 97色偷偷色噜噜狠狠爱网站97| 好吊色欧美一区二区三区视频| 久久无码无码久久综合综合| 欧美一级做一级做片性十三| 免费jizz在线播放视频高清版 | 性欧美vr高清极品| 久草手机在线播放| 欧美亚洲国产片在线观看| 免费无遮挡无码永久在线观看视频 | 一本之道高清在线| 放进去岳就不挣扎了| 亚洲乱亚洲乱少妇无码| 欧美日韩黄色大片| 免费能直接在线观看黄的视频 | 亚洲天堂福利视频| 污片在线观看网站| 印度爱经hd在线观看| 老马的春天顾晓婷5| 国产欧美精品区一区二区三区| a√天堂中文在线最新版| 妲己丰满人熟妇大尺度人体艺| 久久国产精品久久国产精品| 最新国产中文字幕| 亚洲欧美在线视频| 污污小视频在线观看| 动漫美女被吸乳羞羞网站动漫| 国产av人人夜夜澡人人爽| 99在线视频免费观看|