vxworks開發基礎
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驅動 -> 修改中斷控制器程式 -> 修改時鐘控制器程式 -> 修改串列埠程式 -> 新增網路裝置驅動 -> 修改人機介面 -> 為其他硬體增加驅動程式
修改記憶體尺寸定義 -> 修改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() 延時指定的時間
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等參考文獻:
相關文章
- PHP 開發基礎PHP
- flume 1.8.0 開發基礎
- 機器學習開發流程基礎機器學習
- Go API 開發基礎GoAPI
- 並行開發基礎並行
- 開發基礎知識
- 前端開發基礎-JavaScript前端JavaScript
- Oracle開發基礎-觸發器Oracle觸發器
- 【IOS開發基礎系列】Cocoa基礎專題iOS
- Oracle開發基礎-遊標Oracle
- Vue開發之基礎路由Vue路由
- Javascript模組化開發基礎JavaScript
- 視訊開發基礎篇
- React基礎——更快的開發React
- iOS 基礎開發技巧 (一)iOS
- 微信開發的基礎配置
- plsql開發語言基礎SQL
- Struts2開發基礎
- 蘋果開發基礎知識蘋果
- 小程式開發基礎(一)
- JavaWeb開發基礎Servlet APIJavaWebServletAPI
- .NET 基礎拾遺(5):多執行緒開發基礎執行緒
- iOS開發小記-基礎篇iOS
- 【Java基礎】物件導向開發Java物件
- JavaWEB開發18——基礎加強JavaWeb
- 樹莓派開發—基礎配置樹莓派
- iOS 藍芽開發·基礎篇iOS藍芽
- linux核心模組開發基礎Linux
- iOS 開發之 ReactiveCocoa(基礎)iOSReact
- 嵌入式開發基礎(3)
- PHP 系列:PHP Web 開發基礎PHPWeb
- Mac開發基礎23-NSMenuMac
- Mac開發基礎24-NSToolbarMac
- Mac開發基礎25-NSAlertMac
- Oracle開發基礎-異常處理Oracle
- Java開發常見基礎題大全Java
- Xamarin圖表開發基礎教程(1)
- Flutter開發之Dart語法基礎FlutterDart