我有一對夫婦的功能我DKM項目(內核空間),這需要從RTP(用戶空間)調用。我怎麼做?VxWorks 7 Wind River Workbench4:如何從RTP調用DKM中的函數?
我已經實現自定義的系統調用來調用內核從RTP只的API,但在這裏我不能夠實現自定義的系統要求在DKM這些功能,因爲它不是源的一部分建設項目。
我如何去了解這個問題呢?任何幫助,高度讚賞。謝謝!!
我有一對夫婦的功能我DKM項目(內核空間),這需要從RTP(用戶空間)調用。我怎麼做?VxWorks 7 Wind River Workbench4:如何從RTP調用DKM中的函數?
我已經實現自定義的系統調用來調用內核從RTP只的API,但在這裏我不能夠實現自定義的系統要求在DKM這些功能,因爲它不是源的一部分建設項目。
我如何去了解這個問題呢?任何幫助,高度讚賞。謝謝!!
自定義系統調用是答案。我知道你說過你不能使用它,但只要堅持。
有添加系統調用的兩種方法。第一個,它聽起來像你之前已經使用的,是靜態添加它們,作爲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);
}
我認爲它是有用到發出呼叫到這些動態系統調用在一個單獨的庫,和包使用有用的函數名稱。
謝謝!我使用動態自定義系統調用來實現它,現在它工作正常:) – Sukum
@Sukum太棒了。如果你發現這個答案有用,請考慮upvoting和/或接受答案 – mjs