久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇VxWorks專區VxWorks BSP開發 → 基于PC104總線的VxWorksBSP設計


  共有9347人關注過本帖樹形打印

主題:基于PC104總線的VxWorksBSP設計

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


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

設計開發了嵌入式實時操作系統VxWorks的一種基于PC104總線的板載支持包,完成了相關的外圍驅動程序設計和調試工作。

[關鍵詞] PC104總線;VxWorks;集成開發環境Tornado;板載支持包BSP

1 引言

VxWorks是由美國的WindRiver推出的一種嵌入式強實時操作系統,它存在多任務調度的方式,可以管理多個外設,而且它可根據應用程序的需求對操作系統進行裁剪,最大程度的壓縮代碼,實現程序的優化。

Intelx86系列處理器的嵌入式應用一般是以PC104的形式出現的,PC104除包括PC/AT的所有標準功能外,它的CPU模塊還有一些獨特的優點:開發周期短、費用低、體積小、層疊連接、功耗小、模塊化、抗沖擊及震動能力強,工作及存儲溫度范圍寬、集成度高,可靠性高。

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

2 VxWorks板載支持包BSP設計

2.1 基于PC104總線設備的VxWorks操作系統映像開發

在實時操作系統VxWorks中,硬件抽象層是以板載支持包BSP的形式出現的。針對不同的處理器體系結構以及硬件環境設計不同的板載支持包,實時操作系統VxWorks就可以用于不同的硬件環境,大大減少了資源浪費。因為板載支持包同時具有硬件相關性和操作系統相關性,是一個介于硬件與軟件之間的軟件層次,包括了系統中的大部分與硬件相關的軟件模塊。VxWorks板載支持包BSP的設計概念使嵌入式實時操作系統VxWorks成為一個通用的嵌入式軟件開發包,使得相關的高層的嵌入式應用能夠有效地運行于特定的、應用相關的硬件設備之上,使嵌入式實時操作系統VxWorks的可移植性大大加強。

BSP與VxWorks操作系統的層次結構如下圖1所示:

圖1BSP與VxWorks操作系統的層次結構圖

基于PC104總線設備的VxWorks操作系統映像開發主要工作有3個方面:

①板載支持包設計與開發

VxWorks實時操作系統的板載支持包的開發通常提供一般模板程序,選擇一個相同處理器結構板載支持包進行設計。

②相關外圍硬件設備驅動程序

嵌入式系統是針對某一具體應用場合開發的專用系統,因此常常會使用到一些非標準的硬件設備,而VxWorks操作系統并不提供相關的外設驅動程序,使用時需自行開發相應的外設驅動程序。

③操作系統映像配置與生成

對VxWorks操作系統各個功能模塊進行配置,使其在滿足功能需求的條件下達到代碼量最小,同時也減少出錯的可能性。

2.2 BSP的基本功能及其啟動過程分析

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

VxWorks內核的加載分為兩個步驟,第一個步驟是PCBIOS對bootrom的加載,第二個步驟是BSP引導映像bootrom對VxWorks操作系統映像加載。基本流程如下所示:

2.3 BSP中函數調用過程分析

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

2.4 修改BSP設計概要

一般情況下,Tornado提供一些評估板的板載支持包,而PC104主機板是根據工作實際需要購買的,評估板的板載支持包不能夠直接使用,需要進行修改完善。可行的方法是:基于pc586的BSP作為模板進行適當修改,以滿足這款PC104主機板的特定硬件環境。

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

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

①在config/bspname/bspname.h中找到修改其CF卡的中斷號,因為一般中斷號0x9是預留給硬盤接口,為了避免產生中斷沖突,將#define ATA1_INT_LVL0x9,改為#define ATA1_INT_LVL0xf

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

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

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

③在config.h中,把#define SYS_WARM_ATA_CTRL 0改為#define SYS_WARM_ATA_CTRL 1這樣系統熱啟動后,就會從CF卡上的引導區上引導。

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

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

將原來的ataTypes數組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*/...............};

這個參數可以在主機板的BIOS中查找到,進入BIOS后使用idedetection就可以查看到CF卡幾何參數,根據查到CF卡的幾何參數,就可以在sysLib.c中做出相應的修改。

2.5 BSP的調試

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

3 結束語

通過多次試驗的調試,最終設計出了基于PC104總線的VxWorks板載支持包。并應用于某型飛機燃油系統的智能化管理,實踐結果表明,這種方法是一種切實可行的方案。


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

返回版面帖子列表

基于PC104總線的VxWorksBSP設計








簽名
主站蜘蛛池模板: 夜鲁夜鲁夜鲁在线观看福利 | 成人做爰视频www网站 | 中文字幕有码视频 | 日韩成人免费在线视频 | 久久国产午夜精品理论片34页 | 草草免费观看视频在线 | 亚洲欧美久久 | 成人网视频在线观看免费 | 国产午夜精品理论片小yo奈 | 东京一区二区三区高清视频 | 久久精品国产屋 | 91大神大战丝袜美女在线观看 | 玖玖在线国产精品 | 精品一区二区久久久久久久网站 | 92精品国产自产在线观看 | 日韩午夜 | 亚洲精品久久9热 | 怡红院免费全部视频在线视频 | 欧美成人精品动漫在线专区 | 国产精品九九 | 一区二区三区在线免费观看视频 | 亚洲国产一区二区三区综合片 | 亚洲人成日本在线观看 | 久久99国产精品免费观看 | 欧日韩美香蕉在线观看 | 日韩欧美精品综合一区二区三区 | 日本高清在线精品一区二区三区 | 亚洲伊人色一综合网 | 黄色片成年人 | 日韩国产免费 | 成人丁香乱小说 | 欧美偷拍小视频 | 99re6热视频精品免费观看 | 亚洲欧美日韩国产精品影院 | 国产成人三级 | 国产伦精品一区二区三区 | 亚洲视频在线观看地址 | 天空在线观看免费完整 | 成人性色生活片全黄 | 国产精品视频久久久久久 | 欧美一二区 |