arm linux3 0自定義系統呼叫

2021-07-07 10:27:08 字數 1290 閱讀 5244

硬體:訊為4412核心板,

os:訊為linux3.0.15

編譯環境:ubuntu1404

編譯器:訊為提供的arm-2009q3-gcc交叉編譯。

參考一文。

增加加減乘除等系統呼叫,並測試系統呼叫和使用者呼叫的效能差異。

1、新增系統呼叫函式

在/kernel/sys.c內新增

/**

* sys_add - self-define add

* @ x, y

* this is a user-added test

*/asmlinkage int sys_add(int x, int y)

2、系統呼叫表內增加條目

/arch/arm/kernel/calls.s內新增

call(sys_add)
並且記錄下呼叫號376

3、編譯核心

4、測試

#include

#include

#include

#define __nr_add 376

#define __nr_xor 377

int main()

在板子上顯示

16+24=40 16^24=8

5、效能測試

編寫usrtest.c

#include

#include

int add(int a, int b)

int main()

return

0;}

與systest.c

#include

#include

#include

#define __nr_add 376

#define __nr_xor 377

int main()

return

0;}

結果是預料當中的啦:

[root@itop-4412]# time systest

real 0m 16.49s

user 0m 5.40s

sys 0m 11.08s

[root@itop-4412]# time usrtest

real 0m 2.34s

user 0m 2.33s

sys 0m 0.01s

ARM Linux下新增自定義系統呼叫

本文基於公司 uclinux 核心,詳細講述 3代終端 gpioctrl 的原理及應用。arm linux 的系統中斷採用產生軟中斷,查詢系統呼叫表,呼叫系統呼叫函式的方式實現系統呼叫。先講述,如何去查詢 gpioctrl 函式的實現。1.通過查詢,找到函式定義。在sg2klib.c 裡,有如下定義...

C 自定義分頁控制項3 0

c 自定義分頁控制項3.0 最近做的乙個專案,又用上了自己寫的自定義分頁控制項,發現不夠完善,使用起來不是很方便,於是進行了公升級,這已經是第二次公升級了,公升級估計還會繼續,為什麼是估計呢?1 不知道有沒有朋友用,也沒有人提出要我改進 2 我想做c 啊 如果有機會的話,就開始寫c 了,c 將會寫得...

AS3 0建立自定義元件

介紹使用as 3.0來建立自定義元件 每個flex 元件都是乙個as 類,不管它是否是乙個ui控制器,乙個容器或者一些其它型別的元件。在mxml中能建立的都能在as中建立。有一些可以用as做到,但是mxml做不到的。建立乙個as元件的步驟和你建立任何的as類的步驟非常類似。首先,決定你的新類要擴充套...