久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇VxWorks專區(qū)VxWorks BSP開發(fā) → Vxworks bsp的制作


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

主題:Vxworks bsp的制作

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


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
Vxworks bsp的制作  發(fā)帖心情 Post By:2010-12-1 9:23:21

用開始寫的驅(qū)動(dòng)程序的文檔替代此文檔.

從該設(shè)備的概要開始.指出該驅(qū)動(dòng)實(shí)現(xiàn)整個(gè)設(shè)備的部分還是全部細(xì)節(jié).

描述所有該設(shè)備的操作模式,指出該驅(qū)動(dòng)所實(shí)現(xiàn)的是哪種.

寫出該設(shè)備在BSP中創(chuàng)建和初始化的步驟.寫出可把該驅(qū)動(dòng)定制為特殊硬件環(huán)境的所有宏(macros).

寫出所有可幫助用戶理解該設(shè)備如何工作和設(shè)備的接口.

模板概要:

這是一個(gè)串口驅(qū)動(dòng)模板.可用來作為寫Vxworks5.3或更新版本的新驅(qū)動(dòng)的起點(diǎn).

這些驅(qū)動(dòng)支持舊串口驅(qū)動(dòng)沒有的新功能,首先,它們提供一個(gè)設(shè)置硬件選項(xiàng)的接口;

例如,停止位數(shù),數(shù)據(jù)位,奇偶,等等.

其次,它們提供可用來提供串口線上的外部模式調(diào)試(如,ROM監(jiān)視器調(diào)試)的輪巡通訊(polled communication)接口.通常只支持異步模式驅(qū)動(dòng). 貫穿整個(gè)文件,單詞"template"用來替換一個(gè)真實(shí)的設(shè)備名,按慣例采用廠商名的第一個(gè)字母加產(chǎn)品編號(hào).例如,Zilog 8530 串口設(shè)備應(yīng)一個(gè)名為Z8530——DUSAART

數(shù)據(jù)結(jié)構(gòu),好過TEMPLATE_DUSART.

數(shù)據(jù)結(jié)構(gòu)

設(shè)備數(shù)據(jù)結(jié)構(gòu)在文件 h/drv/sio/templateSio.h里定義。一個(gè)數(shù)據(jù)結(jié)構(gòu)——TEMPLATE_CHAN被定義,為每個(gè)通道。具有多串口通道的設(shè)備也為整個(gè)芯片定義了一個(gè)數(shù)據(jù)結(jié)構(gòu).例如,此驅(qū)動(dòng)有一個(gè)芯片級(jí)的,有兩個(gè)通道結(jié)構(gòu)作為成員數(shù)據(jù)結(jié)構(gòu)叫TEMPLATE_DUSART。

回調(diào)

傳輸準(zhǔn)備就緒(transmitter ready)中斷調(diào)用服務(wù)采用回調(diào)至高層庫以獲得一個(gè)字符來傳送。 默認(rèn)地,此驅(qū)動(dòng)安裝不做任何事情的傀儡回調(diào)程序。使用此驅(qū)動(dòng)的高層庫(例如,ttyDrv)將用SIO_INSTALL_CALLBACK控制命令(ioctl command)安裝自己的回調(diào)程序. 同樣,一個(gè)接受中斷處理采用回調(diào)來將字符傳給高層庫。

模式

理想模式下該驅(qū)動(dòng)應(yīng)支持輪巡和中斷模式,并可動(dòng)態(tài)切換模式。但這并非必須。Vxworks可支持此設(shè)備上的tty設(shè)備,即使該驅(qū)動(dòng)只支持

中斷模式.

增加動(dòng)態(tài)模式切換允許當(dāng)信息送至?xí)r將外部代理激活(例如,在第一楨時(shí)中斷). 對(duì)允許動(dòng)態(tài)模式切換的驅(qū)動(dòng),注意驅(qū)動(dòng)將在其輸入ISR中間被要求切換模式.一個(gè)驅(qū)動(dòng)的輸入ISR看起來應(yīng)如此: inChar = *pDev->dr;/@ 從數(shù)據(jù)寄存器里讀一個(gè)字符 @/ *pDev->cr = GOT_IT;/@ 承認(rèn)中斷@/ pDev->putRcvChar (...);/@ 發(fā)送字符到高層 @/ /@ give the character to the higher layer @/ 如果該通道用作外部模式調(diào)試的通訊路徑,且接收的該字符是"幀結(jié)束"字符,則代理的回調(diào)會(huì)鎖定中斷,切換設(shè)備到輪巡模式,并使用輪巡模式下的設(shè)備片刻.此后代理會(huì)解鎖中斷,切換模式到中斷模式,并返回ISR. 特別地,回調(diào)能使兩模式切換,首先到輪巡模式然后到中斷模式,后返回. 這要求小心處理中斷處理內(nèi)的回調(diào)。例如,在調(diào)用回調(diào)前你必須先承認(rèn)中斷。

用法:

該驅(qū)動(dòng)通常為BSP調(diào)用.該模塊里直接調(diào)用程序是 templateDevInit(), templateDevInit2(),templateIntRcv(), templateIntTx(), and templateIntErr(). BSP調(diào)用templateDevInit()來初始化或重啟芯片.它用intConnect()連接中斷處理(templateIntRcv, templateIntTx,和 templateIntErr). 連接中斷處理后,BSP調(diào)用templateDevInit2()來告訴驅(qū)動(dòng)中斷模式操作已可行.

BSP: 按常規(guī)所有BSP特定的串口初始化在sysSerial.c(被sysLib.c包含)里進(jìn)行, sysSerial.c實(shí)現(xiàn)至少4個(gè)函數(shù):sysSerialHwInit(),sysSerialHwInit2(), sysSerialChanGet(),和sysSerialReset(),如下工作: sysSerialHwInit被sysHwInit調(diào)用來初始化串口設(shè)備.此程序?qū)⒃谡{(diào)用能復(fù)位設(shè)備及安裝驅(qū)動(dòng)函數(shù)指針的templateDevinit前初始化TEMPLATE_DUSART結(jié)構(gòu)的所有板特定的區(qū)域(如,寄存器的I/O地址,等等).sysSerialHwInit還將執(zhí)其他所有串口驅(qū)動(dòng)所需要的過程,比如適當(dāng)配置板上的中斷控制器. sysSerialHwInit2被sysHwInit2調(diào)用來用intConnect連接驅(qū)動(dòng)的中斷處理.連接好中斷處理后,templateDevInit2的調(diào)用允許中斷模式操作開始. sysSerialChanGet被usrRoot調(diào)用來取得與串口通道號(hào)相關(guān)的串口通描述.該程序使用一個(gè)0-NUM_TTY之間的一個(gè)數(shù)為單一的參數(shù).它返回一個(gè)指向相應(yīng)通道描述——SIO_CHAN * 的指針,它正好是TEMPLATE_CHAN結(jié)構(gòu)的地址. sysSerialReset被sysToMonitor()調(diào)用且會(huì)復(fù)位串口設(shè)備到一個(gè)不活動(dòng)的狀態(tài). 該驅(qū)動(dòng)可通過重定義TEMPLATE_REG_READ和TEMPLATE_REG_WRITE宏來定制.這兩個(gè)宏用來訪問實(shí)際的芯片.如不定義,源代碼會(huì)假定用對(duì)所有寄存的read/write訪問來對(duì)設(shè)備進(jìn)行簡單內(nèi)存映射.

測試:

中斷驅(qū)動(dòng)接口可用通常方法來測試.當(dāng)它(測試信息,譯者如是猜測)來到時(shí)Vxworks打印到串口控制臺(tái),于是看到加電后VxWorks輸出表示該驅(qū)動(dòng)基本開始工作. VxWorks的Portkit測試也可用來進(jìn)行更嚴(yán)格的測試. 輪巡接口容易被檢驗(yàn)——你可調(diào)用通道的SIO_MODE_SET ioctllai使它進(jìn)入輪巡模式.注意通常的打印工具不能在輪巡模式下與串口通道一起工作.一些代理必須執(zhí)行輪巡循環(huán)來處理基于字符的字符輸入/輸出.這不是自動(dòng)進(jìn)行.當(dāng)切換WDB串口線到輪巡模式時(shí),WDB代理執(zhí)行它自己的輪巡循環(huán). 動(dòng)態(tài)模式切換可用tornado工具來檢查.重新配置代理使用WDB_COMM_UDLP_SLIP通訊路徑(詳見VxWorks run_time Guide的配置章節(jié)). 如下開始wtxtcl %wtxtcl 從tcl提示符,連接到target server: wtxtcl.ex> wtxToolAttach 通知代理來轉(zhuǎn)換外部模式檢查回應(yīng)是OK(0). wtxtcl.ex>wtxAgentModeSet 2 0 要求代理掛起系統(tǒng)(請(qǐng)求會(huì)以中斷模式傳到,但回應(yīng)會(huì)以輪巡模式被傳送): wtxtcl.ex>wtxContextSuspend 0 0 0 在此時(shí)目標(biāo)將被掛起.控制臺(tái)將顯示凍結(jié)(果板卡有一個(gè)控制臺(tái)設(shè)備),你不能"ping"目標(biāo)的網(wǎng)絡(luò)接口.

恢復(fù)目標(biāo):

wtxtcl.ex>wtxContextResume 0 0 0 現(xiàn)在目標(biāo)將重新運(yùn)行,于是你能敲信息到控制臺(tái)(如果板卡有一個(gè)控制臺(tái)設(shè)備)并可從主機(jī)"ping"目標(biāo)的網(wǎng)絡(luò)接口.

vxworks下bsp制作教程

1 vxworks概述

vxworks是WIND RIVER公司的產(chǎn)品。作為一種商用的嵌入式操作系統(tǒng)?vxworks擁有強(qiáng)大的功能和友好的用戶界面。與免費(fèi)的嵌入式操作系統(tǒng)相比?商用操作系統(tǒng)經(jīng)過嚴(yán)格的測試?具有良好的實(shí)時(shí)性?易用性和大量的文檔支持?但是它的源碼是不公開的并且價(jià)格昂貴;免費(fèi)的嵌入式操作系統(tǒng)有很多?大都是linux的移植?公開源代碼?但缺乏文檔?要對(duì)照源碼進(jìn)行開發(fā)。

2 BSP的流程

BSP流程分成兩部分。首先是位于BootRom中的Boot代碼?它的作用是實(shí)現(xiàn)配置硬件和啟動(dòng)vxworks下載程序。接下來是下載后跳轉(zhuǎn)到vxworks的入口地址運(yùn)行操作系統(tǒng)和應(yīng)用程序。

流程入圖:

ROM中的啟動(dòng)代碼部分:RomInit在文件在文件romInit.s中。它是運(yùn)行的開始?實(shí)現(xiàn)這一部分是首先的。它實(shí)現(xiàn)判斷啟動(dòng)類型?配置內(nèi)核和非內(nèi)核寄存器以及內(nèi)存和外圍設(shè)備的讀寫時(shí)序?因此可以在此處加入內(nèi)存檢測功能。在BSP中無法進(jìn)行調(diào)試?只能通過閃燈實(shí)現(xiàn)云信正確與否的判斷。閃燈功能函數(shù)也要在此加入。判斷啟動(dòng)類型和配置寄存器?這一部分不需要改動(dòng)。配置內(nèi)存和外圍設(shè)備讀寫時(shí)序?要進(jìn)行改動(dòng)。這一部分的SDRAM?ROM?FLASH?FPGA有相應(yīng)的模板可以參考。它的實(shí)現(xiàn)是通過使用宏定義來實(shí)現(xiàn)的。但是要改動(dòng)的話也不難?一般是改動(dòng)空間大小的屏蔽位?讀寫位數(shù)?以及片選寄存器OR和BR。至于特殊外設(shè)的讀寫有待討論。內(nèi)存檢測在這里實(shí)現(xiàn)較復(fù)雜?它根據(jù)相應(yīng)的內(nèi)存檢測算法實(shí)現(xiàn)。主要是對(duì)地址線和數(shù)據(jù)線的檢測。通過寫入數(shù)據(jù)再會(huì)讀出數(shù)據(jù)來判斷。使用"走步1"和"走步0"
算法。這一部分較多的依賴硬件?可移植性較差?根據(jù)自己的單板改動(dòng)。閃燈在這一部分是強(qiáng)烈推薦的。因?yàn)殚W燈才能定位程序的運(yùn)行位置。閃燈函數(shù)可移植?一般要改動(dòng)?因?yàn)闊艨赡芙釉诓煌腎/O口上。另外注意860SAR的PORT B是32位的。具體的端口見相應(yīng)的CPU的I/O口的參數(shù)?配置相應(yīng)的寄存器。

RomInit在函數(shù)結(jié)尾跳入RomStart。

RomStart在BootInt.c文件中。它是系統(tǒng)運(yùn)行的第一個(gè)C函數(shù)。這一部分是Wind River公司提供的標(biāo)準(zhǔn)程序?一般不需改動(dòng)。該函數(shù)是C的入口函數(shù),由匯編程序調(diào)用,主要完成清內(nèi)存,將ROM中的程序拷貝到RAM,解壓并跳至解壓后的程序處運(yùn)行。UsrInit在BootConfig.c文件中。它主要是實(shí)現(xiàn)硬件的初始化。其中涉及到串口?網(wǎng)口的初始化?CONSOLE的配置等。其中串口和網(wǎng)口的配置BSP的重要部分?但860CPU對(duì)串口和王口有很好的支持?只要做很小的改動(dòng)即可?串口很簡單?網(wǎng)口較復(fù)雜一些。UsrRoot在BootConfig.c文件中。它主要是實(shí)現(xiàn)vxworks文件的下載?并且跳轉(zhuǎn)到vxworks的入口地址。從而進(jìn)入到操作系統(tǒng)中去。

VXWORKS文件中的代碼部分:

SysInit在sysAlib.s中。它是vxworks的啟動(dòng)代碼。它與RomInit的作用相同?對(duì)于這個(gè)文件?我們一般不需要去改動(dòng)它。UsrInit在Usrconfig.c中。它的作用與Boot中的UsrInit的作用相同?他們都調(diào)用SysLib.c中的子函數(shù)。實(shí)現(xiàn)相同的硬件初始化功能。UsrRoot在UsrConfig.c中。它的作用與Boot中的UsrRoot的作用類似。但是這里的UsrRoot是最終進(jìn)入到應(yīng)用程序中去。


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

返回版面帖子列表

Vxworks bsp的制作








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
狠狠色综合一区二区| 国产成人h网站| 国产精品国产三级国产三级人妇| 欧美电影免费观看完整版| 91精品国产综合久久精品麻豆| 欧美在线免费观看亚洲| 欧美日韩美女一区二区| 这里只有精品免费| 精品国产一区二区三区忘忧草| 久久久精品综合| 日韩理论片网站| 日韩影视精彩在线| 国产福利91精品一区| 97精品视频在线观看自产线路二| 91免费国产在线| 欧美一区二区高清在线观看| 在线综合视频网站| 国产精品羞羞答答xxdd| 国产成人av影院| 国产精品免费视频一区二区| 日本高清久久一区二区三区| 一区二区成人国产精品| 69久久99精品久久久久婷婷| 精品国产免费久久| 一区二区三区不卡在线观看| 久草这里只有精品视频| eeuss鲁一区二区三区| 久久一区二区三区av| 欧美色图免费看| 国产农村妇女精品| 秋霞av亚洲一区二区三| 91片在线免费观看| 日韩av电影在线观看| 欧美伦理影视网| 国产精品嫩草久久久久| 蜜臀久久久99精品久久久久久| av中文字幕亚洲| 亚洲欧美国产不卡| 日韩精品一区二区三区在线观看| 亚洲欧美日韩系列| 国产精品一二三四区| 久久亚洲国产精品日日av夜夜| 欧美日韩国产天堂| 亚洲欧美视频一区| 粉嫩aⅴ一区二区三区四区 | 久久精品在线免费观看| 一区二区三区在线观看欧美| 国产不卡在线一区| 日韩精品欧美专区| 久久久久久久精| 美女视频黄 久久| 国产精品久久久久av福利动漫| 日本乱人伦aⅴ精品| 成人免费在线观看入口| 国产高清亚洲一区| 亚洲女人毛片| 中文字幕国产一区| 国产一区二区三区观看| 日韩精品国内| 中日韩av电影| 成人毛片在线观看| 欧美中文字幕亚洲一区二区va在线| 国产欧美一区二区精品久导航 | 国产免费一区二区| 欧美日韩国产电影| 一区二区三区波多野结衣在线观看| 国产成人高清在线| 欧美系列亚洲系列| 亚洲一区二区三区爽爽爽爽爽| 99精品视频一区| 777欧美精品| 777xxx欧美| 午夜电影久久久| 久久国产精品一区二区三区| 久久午夜色播影院免费高清| 国产原创一区二区| 色哟哟亚洲精品| 一区二区三区四区不卡视频| 91精品久久久久久蜜桃| 在线综合亚洲欧美在线视频| 午夜欧美视频在线观看| 农村寡妇一区二区三区| 国产精品网站在线播放| av在线一区二区| 欧美一区二区在线不卡| 国产精品一区二区91| 精品视频一区二区不卡| 日本不卡在线视频| 日本乱人伦aⅴ精品| 亚洲福利视频三区| 日本亚洲欧洲精品| 伊人色综合久久天天人手人婷| 国产精品久久久久免费| 国产精品九色蝌蚪自拍| 成人欧美一区二区| 国产精品无人区| 激情小说综合网| 中文字幕一区二区三区精华液 | 欧美日韩精品二区第二页| 男女性色大片免费观看一区二区| 亚洲最大色综合成人av| 亚洲gay无套男同| 亚洲va久久久噜噜噜久久狠狠 | 久久99久久久欧美国产| 欧美午夜精品免费| 激情图区综合网| 91麻豆精品久久久久蜜臀 | 97久久精品人人做人人爽50路| 欧美一级二级三级乱码| 国产成人av一区二区三区在线观看| 91精选在线观看| 不卡一区二区在线| 国产亚洲精品超碰| 欧美日韩大片一区二区三区| 亚洲成人综合视频| 欧美日韩午夜影院| 成人高清av在线| 亚洲国产精品精华液ab| 欧美性xxxx69| 日产国产高清一区二区三区| 欧美日韩精品三区| 99久久777色| 亚洲激情图片qvod| 欧美体内she精高潮| 国产精品亚洲专一区二区三区 | 精品国产91乱码一区二区三区 | av电影天堂一区二区在线| 久久久国产精华| 久久99国产精品99久久| 亚洲综合精品自拍| 欧美三级在线播放| 97aⅴ精品视频一二三区| 亚洲欧美日韩中文播放| 色婷婷久久99综合精品jk白丝| 国产成人鲁色资源国产91色综| 欧美精品一区二区久久久| 久久精品午夜一区二区福利| 日韩二区三区四区| 日韩美女视频一区二区在线观看| 精品国产综合区久久久久久| 蜜臀91精品一区二区三区 | 欧美一区二区在线视频观看| 九色综合狠狠综合久久| 26uuuu精品一区二区| 欧美亚州在线观看| 国产在线视频一区二区| 中文字幕欧美国产| 伊人色综合久久天天五月婷| 99国产麻豆精品| 亚洲va欧美va人人爽| 日韩一区二区不卡| 久久精品国产第一区二区三区最新章节 | 日韩成人免费看| 欧美精品一区二区三区久久久 | 黄色99视频| 国产在线一区二区| 国产精品国产成人国产三级| 欧美视频在线播放| 久久亚洲免费| 成人av网站免费| 日韩av在线播放中文字幕| 久久精品一区二区三区四区| 综合操久久久| 国产一区二区无遮挡| 久久众筹精品私拍模特| 午夜精品美女久久久久av福利| 成人动漫中文字幕| 午夜免费久久看| 国产精品视频你懂的| 欧美美女bb生活片| 亚洲精品人成| 国产精品裸体一区二区三区| 国产成人一区二区精品非洲| 亚洲激情男女视频| 久久久久久久久久久久久女国产乱| 色综合久久中文字幕| 国产精品美女xx| 国产精品一区一区三区| 亚洲国产精品久久久久婷婷884| 国产亚洲1区2区3区| 欧美一区二区视频免费观看| 亚洲精品视频一二三| 精品高清视频| 97自拍视频| 国产成人精品一区二| 免费看精品久久片| 一区二区三区产品免费精品久久75| 久久新电视剧免费观看| 欧美日韩高清不卡| 亚洲午夜精品国产| 欧美在线3区| 麻豆成人小视频| 国产一区在线免费观看| 成人av资源下载| 国产精品一区免费在线观看| 午夜伦欧美伦电影理论片| 日韩久久一区二区| 国产精品久久久久永久免费观看| 精品三级在线观看| 91精品国产综合久久蜜臀|