新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM架構下添加系統調用與32位x86區別

        ARM架構下添加系統調用與32位x86區別

        作者: 時間:2016-11-09 來源:網絡 收藏
          在這兩種架構下添加系統調用的步驟是類似的,簡要地比較一下,以2.6.28.6內核為例。

          1.在內核源碼相應位置(如sys.c或其他與這個函數聯系緊密的文件)添加新的內核函數作為系統調用,形如

        本文引用地址:http://www.104case.com/article/201611/317844.htm
        asmlinkage long sys_foo(void) {}

          2.加入系統調用表。ARM架構存放于/arch/arm/kernel/call.S中,形如CALL(sys_foo);x86架構放于/arch/x86/kernel/syscall_table_32.S中,形如.longsys_foo。

          3.定義系統調用號。ARM架構存放于/arch/arm/include/asm/unistd.h中,形如

          

        #define __NR_foo (__NR_SYSCALL_BASE+361);

          x86架構放于/arch/x86/include/asm/unistd_32.h中,形如

        #define __NR_foo 333

          4.使用方法:編譯修改后的內核,在用戶空間中使用syscall()調用。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 慈利县| 柏乡县| 措美县| 蛟河市| 资溪县| 临汾市| 巩义市| 博乐市| 宁阳县| 绵阳市| 尼勒克县| 崇礼县| 海宁市| 新乡县| 北海市| 奉新县| 建始县| 福州市| 榆树市| 宜兰市| 都匀市| 南岸区| 济宁市| 天气| 奉节县| 黄石市| 隆德县| 开封县| 新竹市| 乐陵市| 宁晋县| 嘉祥县| 南投县| 苍南县| 成都市| 工布江达县| 南昌市| 汉川市| 漯河市| 辉县市| 遂川县|