2017-08-24 132 views
1

我有一對夫婦的功能我DKM項目(內核空間),這需要從RTP(用戶空間)調用。我怎麼做?VxWorks 7 Wind River Workbench4:如何從RTP調用DKM中的函數?

我已經實現自定義的系統調用來調用內核從RTP只的API,但在這裏我不能夠實現自定義的系統要求在DKM這些功能,因爲它不是源的一部分建設項目。

我如何去了解這個問題呢?任何幫助,高度讚賞。謝謝!!

回答

1

自定義系統調用答案。我知道你說過你不能使用它,但只要堅持。

有添加系統調用的兩種方法。第一個,它聽起來像你之前已經使用的,是靜態添加它們,作爲VxWorks Source Build的一部分。這允許您訪問功能完全相同的方式爲用戶庫,例如任何其他部分,在RTP:

#include <customSysCallHeader.h> 

void foo() 
{ 
    customSysCall(); 
} 

但正如你所說,這並不需要修改源構建。話雖如此,VxWorks 7中的這個問題比之前少了一個問題。

第二個選擇,這是,如果你不希望添加到源構建更有用,是用動態的系統調用。這些是在運行時通過一些內核代碼動態註冊的。他們不是那麼容易不過從應用程序中使用,因爲所有動力系統的呼叫必須通過syscall()被稱爲:

#include <syscall.h> //This may not be correct 

void foo() 
{ 
    syscall(CUSTOM_SYSCALL_NUM,1,2,3,4,5,6); 
} 

我認爲它是有用到發出呼叫到這些動態系統調用在一個單獨的庫,和包使用有用的函數名稱。

+0

謝謝!我使用動態自定義系統調用來實現它,現在它工作正常:) – Sukum

+0

@Sukum太棒了。如果你發現這個答案有用,請考慮upvoting和/或接受答案 – mjs

相關問題