日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux字符驱动向vxworks移植,VxWorks驱动移植至SylixOS总结

發布時間:2024/7/19 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux字符驱动向vxworks移植,VxWorks驱动移植至SylixOS总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文檔描述了將VxWorks中的驅動源碼快速移植至SylixOS中的方法,使用時需要結合SylixOS中的VxWorks兼容層實現。

1. 驅動注冊與初始化

1.1 VxWorks中驅動注冊與初始化

1.1.1 初始化函數

VxWorks中大部分函數使用了VxWorks的VxBus結構,對于基于VxBus的驅動結構,通常都定義了如下所示的結構體。

LOCAL struct drvBusFuncs xxxDrvFuncs = {

xxxInstInit, /* devInstanceInit */

xxxInstInit2, /* devInstanceInit2 */

xxxInstConnect /* devConnect */

};

devInstanceInit在Kernel初始化前被調用,若設備或其一部分被Kernel使用,則相關的初始化實現在該函數中完成。

devInstanceInit2在Kernel初始化后被調用,若無特別要求,初始化都應在此函數中實現。

devInstanceConnect用于設備的連接,通常可以不使用,但如果它依賴于其他設備,則啟動代碼在其中實現。

1.1.2 中斷連接

VxWorks的中斷連接在系統配置相關c文件中統一實現。

1.2 SylixOS中驅動注冊與初始化

1.2.1 初始化函數

SylixOS中驅動的初始化入口在bspInit.c中可以根據實際使用需要在halBusInit、halDrvInit、halDevInit中進行調用。 所以需將VxWorks中devInstanceInit、devInstanceInit2中的實現整合為一個Init函數,在bspInit.c中對應位置進行調用。

1.2.3 中斷連接

SylixOS的中斷連接需要在驅動中調用API_InterVectorConnect、API_InterVectorEnable函數注冊中斷并使能中斷。

2. 關于地址映射

VxWorks下的很多虛擬地址在開機初始化時就進行了映射,其映射關系通過一個VIRT_TO_PHYS的數組描述,通常規律是地址的最高位不同,但低31位都相同。 在SylixOS中,應用程序空間的虛擬地址到物理地址的映射,并不一定遵從低31位相同的規則,使用時需使用API_VmmVirtualToPhysical函數獲取其映射后的物理地址。

3. 不使用系統IO層、協議棧的驅動移植

對于不使用系統IO層、協議棧的驅動,可以改寫devInstanceInit、devInstanceInit2等函數,使其為一個Init函數,在bspInit.c中調用;并且定義中斷連接的操作,在Init函數中調用。

4. 使用系統IO層、協議棧的驅動移植

對于使用系統IO層、協議棧的驅動,則必須根據使用場景進行改寫。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux字符驱动向vxworks移植,VxWorks驱动移植至SylixOS总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。