91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 嵌入式系統

中文資料:vxwork bsp的制作1

發布時間:2008/8/5 0:00:00 訪問次數:649

  要作的工作:

  -用開始寫的驅動程序的文檔替代此文檔。

  -從該設備的概要開始。指出該驅動實現整個設備的部分還是全部細節。

  -描述所有該設備的操作模式,指出該驅動所實現的是哪種。

  -寫出該設備在bsp中創建和初始化的步驟。寫出可把該驅動定制為特殊硬件環境的所有宏(macros)。

  -寫出所有可幫助用戶理解該設備如何工作和設備的接口。

  模板概要:這是一個串口驅動模板。可用來作為寫vxworks5.3或更新版本的新驅動的起點。

  這些驅動支持舊串口驅動沒有的新功能,首先,它們提供一個設置硬件選項的接口;例如,停止位數,數據位,奇偶,等等。

  其次,它們提供可用來提供串口線上的外部模式調試(如,rom監視器調試)的輪巡通訊(polled communication)接口。通常只支持異步模式驅動。貫穿整個文件,單詞"template"用來替換一個真實的設備名,按慣例采用廠商名的第一個字母產品編號。例如,zilog 8530 串口設備應有一個名為z8530——dusaart數據結構,好過template_dusart.數據結構設備數據結構在文件 h/drv/sio/templatesio.h里定義。一個數據結構——template_chan被定義,為每個通道。具有多串口通道的設備也為整個芯片定義了一個數據結構。例如,此驅動有一個芯片級的,有兩個通道結構作為成員數據結構叫template_dusart.回調傳輸準備就緒(transmitter ready)中斷調用服務采用回調至高層庫以獲得一個字符來傳送。

  默認地,此驅動安裝不做任何事情的傀儡回調程序。使用此驅動的高層庫(例如,ttydrv)將用sio_install_callback控制命令(ioctl command)安裝自己的回調程序。

  同樣,一個接受中斷處理采用回調來將字符傳給高層庫。

  模式理想模式下該驅動應支持輪巡和中斷模式,并可動態切換模式。但這并非必須。

  vxworks可支持此設備上的tty設備,即使該驅動只支持中斷模式。

  增加動態模式切換允許當信息送至時將外部代理激活(例如,在第一楨時中斷)。

  對允許動態模式切換的驅動,注意驅動將在其輸入isr中間被要求切換模式。一個驅動的輸入isr看起來應如此:inchar = *pdev->dr;/@ 從數據寄存器里讀一個字符 @/ *pdev->cr = got_it;/@ 承認中斷@/ pdev->putrcvchar (……);/@ 發送字符到高層 @/ /@ give the character to the higher layer @/如果該通道用作外部模式調試的通訊路徑,且接收的該字符是"幀結束"字符,則代理的回調會鎖定中斷,切換設備到輪巡模式,并使用輪巡模式下的設備片刻。此后代理會解鎖中斷,切換模式到中斷模式,并返回isr.特別地,回調能使兩模式切換,首先到輪巡模式然后到中斷模式,后返回。

  這要求小心處理中斷處理內的回調。例如,在調用回調前你必須先承認中斷。
  用法:該驅動通常為bsp調用。該模塊里直接調用程序是 templatedevinit(),templatedevinit2(),templateintrcv(), templateinttx(), and templateinterr()。

  bsp調用templatedevinit()來初始化或重啟芯片。它用intconnect()連接中斷處理(templateintrcv, templateinttx,和templateinterr)。

  連接中斷處理后,bsp調用templatedevinit2()來告訴驅動中斷模式操作已可行。

  bsp:按常規所有bsp特定的串口初始化在sysserial.c(被syslib.c包含)里進行,sysserial.c實現至少4個函數:sysserialhwinit(),sysserialhwinit2(),sysserialchanget(),和sysserialreset(),如下工作:sysserialhwinit被syshwinit調用來初始化串口設備。此程序將在調用能復位設備及安裝驅動函數指針的templatedevinit前初始化template_dusart結構的所有板特定的區域(如,寄存器的i/o地址,等等)。sysserialhwinit還將執行其他所有串口驅動所需要的過程,比如適當配置板上的中斷控制器。

  sysserialhwinit2被syshwinit2調用來用intconnect連接驅動的中斷處理。連接好中斷處理后,templatedevinit2的調用允許中斷模式操作開始。

  sysserialchanget被usrroot調用來取得與串口通道號相關的串口通道描述。該程序使用一個0-num_tty之間的一個數為單一的參數。它返回一個指向相應通道描述——sio_chan * 的指針,它正好是template_chan結構的地址。

  sysserialreset被systomonitor()調用且會復位串口設備到一個不活動的狀態。

  該驅動可通過重定義template_reg_read和template_reg_write宏來定制。這兩個宏用來訪問實際的芯片。如不定義,源代碼會假定用對所有寄存器的read/write訪問來對設備進行簡單內存映射。

  測試:中斷驅動接口可用通常方法來測試。當它(測試信息,譯者如是猜測)來到時vxworks打印到串口控制臺,于是看到加電后vxworks輸出表示該驅動基本開始工作。

  要作的工作:

  -用開始寫的驅動程序的文檔替代此文檔。

  -從該設備的概要開始。指出該驅動實現整個設備的部分還是全部細節。

  -描述所有該設備的操作模式,指出該驅動所實現的是哪種。

  -寫出該設備在bsp中創建和初始化的步驟。寫出可把該驅動定制為特殊硬件環境的所有宏(macros)。

  -寫出所有可幫助用戶理解該設備如何工作和設備的接口。

  模板概要:這是一個串口驅動模板。可用來作為寫vxworks5.3或更新版本的新驅動的起點。

  這些驅動支持舊串口驅動沒有的新功能,首先,它們提供一個設置硬件選項的接口;例如,停止位數,數據位,奇偶,等等。

  其次,它們提供可用來提供串口線上的外部模式調試(如,rom監視器調試)的輪巡通訊(polled communication)接口。通常只支持異步模式驅動。貫穿整個文件,單詞"template"用來替換一個真實的設備名,按慣例采用廠商名的第一個字母產品編號。例如,zilog 8530 串口設備應有一個名為z8530——dusaart數據結構,好過template_dusart.數據結構設備數據結構在文件 h/drv/sio/templatesio.h里定義。一個數據結構——template_chan被定義,為每個通道。具有多串口通道的設備也為整個芯片定義了一個數據結構。例如,此驅動有一個芯片級的,有兩個通道結構作為成員數據結構叫template_dusart.回調傳輸準備就緒(transmitter ready)中斷調用服務采用回調至高層庫以獲得一個字符來傳送。

  默認地,此驅動安裝不做任何事情的傀儡回調程序。使用此驅動的高層庫(例如,ttydrv)將用sio_install_callback控制命令(ioctl command)安裝自己的回調程序。

  同樣,一個接受中斷處理采用回調來將字符傳給高層庫。

  模式理想模式下該驅動應支持輪巡和中斷模式,并可動態切換模式。但這并非必須。

  vxworks可支持此設備上的tty設備,即使該驅動只支持中斷模式。

  增加動態模式切換允許當信息送至時將外部代理激活(例如,在第一楨時中斷)。

  對允許動態模式切換的驅動,注意驅動將在其輸入isr中間被要求切換模式。一個驅動的輸入isr看起來應如此:inchar = *pdev->dr;/@ 從數據寄存器里讀一個字符 @/ *pdev->cr = got_it;/@ 承認中斷@/ pdev->putrcvchar (……);/@ 發送字符到高層 @/ /@ give the character to the higher layer @/如果該通道用作外部模式調試的通訊路徑,且接收的該字符是"幀結束"字符,則代理的回調會鎖定中斷,切換設備到輪巡模式,并使用輪巡模式下的設備片刻。此后代理會解鎖中斷,切換模式到中斷模式,并返回isr.特別地,回調能使兩模式切換,首先到輪巡模式然后到中斷模式,后返回。

  這要求小心處理中斷處理內的回調。例如,在調用回調前你必須先承認中斷。
  用法:該驅動通常為bsp調用。該模塊里直接調用程序是 templatedevinit(),templatedevinit2(),templateintrcv(), templateinttx(), and templateinterr()。

  bsp調用templatedevinit()來初始化或重啟芯片。它用intconnect()連接中斷處理(templateintrcv, templateinttx,和templateinterr)。

  連接中斷處理后,bsp調用templatedevinit2()來告訴驅動中斷模式操作已可行。

  bsp:按常規所有bsp特定的串口初始化在sysserial.c(被syslib.c包含)里進行,sysserial.c實現至少4個函數:sysserialhwinit(),sysserialhwinit2(),sysserialchanget(),和sysserialreset(),如下工作:sysserialhwinit被syshwinit調用來初始化串口設備。此程序將在調用能復位設備及安裝驅動函數指針的templatedevinit前初始化template_dusart結構的所有板特定的區域(如,寄存器的i/o地址,等等)。sysserialhwinit還將執行其他所有串口驅動所需要的過程,比如適當配置板上的中斷控制器。

  sysserialhwinit2被syshwinit2調用來用intconnect連接驅動的中斷處理。連接好中斷處理后,templatedevinit2的調用允許中斷模式操作開始。

  sysserialchanget被usrroot調用來取得與串口通道號相關的串口通道描述。該程序使用一個0-num_tty之間的一個數為單一的參數。它返回一個指向相應通道描述——sio_chan * 的指針,它正好是template_chan結構的地址。

  sysserialreset被systomonitor()調用且會復位串口設備到一個不活動的狀態。

  該驅動可通過重定義template_reg_read和template_reg_write宏來定制。這兩個宏用來訪問實際的芯片。如不定義,源代碼會假定用對所有寄存器的read/write訪問來對設備進行簡單內存映射。

  測試:中斷驅動接口可用通常方法來測試。當它(測試信息,譯者如是猜測)來到時vxworks打印到串口控制臺,于是看到加電后vxworks輸出表示該驅動基本開始工作。

相關IC型號
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
洪泽县| 平果县| 阿勒泰市| 齐齐哈尔市| 博野县| 洛阳市| 莱州市| 郯城县| 海伦市| 河南省| 鸡东县| 霍林郭勒市| 高台县| 沂水县| 阿鲁科尔沁旗| 射阳县| 亳州市| 察隅县| 汨罗市| 保德县| 桐庐县| 海城市| 信阳市| 长垣县| 许昌县| 屏山县| 遵义市| 宜宾县| 泽普县| 房产| 苏尼特右旗| 嘉定区| 磴口县| 门源| 罗定市| 佛山市| 辽阳市| 桓仁| 定南县| 兴隆县| 沂水县|