vxworks開發基礎

SmileFox2017發表於2016-08-10




vxworks開發基礎

小狼@http://blog.csdn.net/xiaolangyangyang


        vxworks開發總體框架

一、RTP開發
        RTP應用開發入口:
        usrAppInit.c -> usrAppInit()

二、wind kernel配置/驅動開發
        wind kernel配置標頭檔案:
        prjComps.h、configAll.h、config.h、prjParams.h
        wind kernel配置也可以在開發環境中使用視覺化介面配置

        vxworks新增元件的一般步驟:
        選擇適當的目錄 -> 根據讀取順序為CDF檔案取名 -> 元件命名 -> 描述與程式碼相關的內容 -> 設定元件初始化入口 -> 建立初始化順序 -> 連結幫助檔案 -> 定義依賴關係 -> 定義從屬關係

三、BSP開發
        vxworks bsp移植一般步驟(參照相似BSP包修改):
        修改記憶體尺寸定義 -> 修改Cache驅動 -> 修改中斷控制器程式 -> 修改時鐘控制器程式 -> 修改串列埠程式 -> 新增網路裝置驅動 -> 修改人機介面 -> 為其他硬體增加驅動程式

        主要在sysLib.c中需要使用者實現以下系統呼叫:
        1. sysClkConnect()        為系統時鐘中斷掛接服務程式
        2. sysClkDisable()        關閉系統時鐘中斷
        3. sysClkEnable()        開啟系統時鐘中斷
        4. sysClkRateGet()        獲取系統時鐘速率
        5. sysClkRateSet()        設定系統時鐘速率
        6. sysAuxClkConnect()        為輔助時鐘中斷掛接服務程式
        7. sysAuxClkDisable()        關閉輔助時鐘中斷
        8. sysAuxClkEnable()        開啟輔助時鐘中斷
        9. sysAuxClkRateGet()        獲取輔助時鐘速率
        10. sysAuxClkRateSet()        設定輔助時鐘速率
        11. sysIntDisable()        禁止匯流排中斷級別
        12. sysIntEnable()        使能匯流排中斷級別
        13. sysBusIntAck()        相應匯流排中斷
        14. sysBusIntGen()        產生匯流排中斷
        15. sysMailboxConnect()        為郵箱中斷掛接服務程式
        16. sysMailboxEnable()        使能郵箱中斷
        17. sysNvRamGet()        獲取非易失記憶體中的內容
        18. sysNvRamSet()        將內容寫入非易失記憶體
        19. sysModel()        返回目標板的型號
        20. sysBspRev()        返回BSP的版本號和子版本號
        21. sysHwInit()        初始化系統硬體
        22. sysPhysMemTop()        獲取記憶體的最大地址
        23. sysMemTop()        獲取邏輯記憶體的最大地址
        24. sysToMonitor()        將控制權交給ROM上的程式
        25. sysProcNumGet()        獲取處理器數量
        26. sysProcNumSet()        設定處理器數量
        27. sysBusTas()        測試並設定匯流排上的一個位置
        28. sysScsiBusReset()        在SCSI匯流排上釋出一個RST訊號(僅針對西部資料的WD33C93)
        29. sysScsiInit()        初始化一個板上SCSI埠
        30. sysScsiConfig()        系統SCSI配置
        31. sysLocalToBusAdrs()        將本地地址轉換為匯流排地址
        32. sysBusToLocalAdrs()        將匯流排地址轉換為本地地址
        33. sysSerialHwInit()        將一個序列裝置初始化為安靜狀態
        34. sysSerialHwInit2()        連線處於安靜狀態的序列裝置的中斷
        35. sysSerialReset()        將所有的SIO裝置復位為安靜狀態
        36. sysSerialChanGet()        獲取SIO_CHAN裝置結構
        37. sysNanoDelay()        延時指定的時間

        其他的硬體訪問介面(中斷控制器、時鐘、硬體埠、實時時鐘/GPIO、串列埠、網路):
        sysInByte、sysInWord、sysOutByte、sysOutWord、sysPciInByte、sysPciInWord、sysPciInLong、sysPciOutByte、sysPciOutWord、sysPciOutLong等

參考文獻:

相關文章