風河虛擬化元件使用說明(19)—— 在目標機GuestOS VxWorks 7上執行DKM工程,測試SOEM Demo
參考文件“vxworks_7_kernel_application_tutorial_workbench4.pdf”。
按照文件建立DKM工程的方法,建立vx_soem工程,選擇基於vx_vip工程:
SOEM是開源EtherCAT主站程式碼,目前已經發布支援VxWorks的版本,參考網址
https://rt-labs.com/news/extended-support-for-soes-and-soem-ethercat-stacks/:
右鍵vx_soem工程,新增資料夾SOEM,則在vx_soem工程路徑下自動建立了SOEM資料夾,將下載的SOEM程式碼複製到該資料夾,將osal資料夾及oshw資料夾中vxworks作業系統的程式碼留下,將其他作業系統的程式碼刪去。將test/linux資料夾下的simple_test複製到test資料夾:
新增標頭檔案路徑:
使雙斜線//註釋有效:
修改SOEM資料夾下的程式碼,編譯通過(Workbench偶爾會出現莫名的編譯問題,重啟Workbench或者主機有一定概率可以解決):
編譯完成後產生vx_soem.out檔案,即為將要下載進VxWorks系統的檔案:
之後準備從站裝置,使用24V直流電源供電,用網線連線EL9800從站板子和目標機LAN2:
回到主機,在vx_vip工程及rootos_vip工程加入debug_agent相關元件即可連通connection,以便之後在GuestOS VxWorks 7中執行DKM工程:
重新編譯vx_vip工程,重新新增vxworks映象至romfs檔案系統,重新編譯rootos_vip工程,拷貝rootos_vip工程的vxworks映象至目標機,重啟目標機。使用tip ”dev=/tyCo/16”命令進入GuestOS VxWorks 7後,先使用ifconfig檢視ip地址,之後使用ipAttach(0,”gei”);命令、ipAttach(1,”gei”);命令、ifconfig “gei0 192.168.1.102 up”;命令和ifconfig “gei1 192.168.1.103 up”;之後使用Connection選項連線至GuestOS VxWorks 7:
在vx_soem工程上右鍵,選擇“Run/Debug Kernel Task...”,在Entry Point處點選Browse...,選擇入口函式為main,點選OK:
之後報錯:
報錯原因是未新增相關元件,因此在vx_vip中新增這些元件:
之後再右鍵選擇Run/Debug Kernel Task,Entry Point填入main,點選OK,會看到soem.out成功下載進VxWorks系統,同時串列埠顯示程式資訊: