1. gzyueqian
      13352868059

      粵嵌linux基礎入門學習 linux系統中添加系統調用

      更新時間: 2018-12-21 12:00:40來源: 粵嵌教育瀏覽量:5652

            linux系統中添加系統是怎樣調用的?從linux基礎入門學習出發,一起來看看:

        1、每個體系下面均有對應的系統調用列表:

        arch/arm/kernel/calls.S

        在添加一個新的系統調用標號

        CALL(sys_my_call)  //系統調用號366

        添加sys_my_call()

        在內核源代碼的kernel目錄下的sys.c中增加該系統調用函數接口:

        SYSCALL_DEFINE0(my_call)

        {

           printk("hello my_call!n");   //內核中的打印接口printk

        }


        備注:

        SYSCALL_DEFINE0 該宏用與定義一個不帶參數的系統調用sys_xxx()

        SYSCALL_DEFINE1 該宏用與定義一個帶一個參數的系統調用

        SYSCALL_DEFINEn


        2、修改系統調用函數聲明文件:

        include/linux/syscalls.h

        添加新系統調用的聲明

        asmlinkage long sys_my_call(void);


        3、添加新系統調用的調用號聲明:

        arch/arm/include/asm/unistd.h

        添加新系統調用號的聲明

        #define __NR_my_call   (__NR_SYSCALL_BASE + 366)


        4、重新編譯內核并更換新內核。

        系統調用測試:

        編寫應用程序

        sys_call.c

        #include <stdio.h>

        #include <linux/unistd.h>

        #include <sys/syscall.h>



        #define __NR_my_call   (__NR_SYSCALL_BASE + 366)

        int main(int argc, char **argv)

        {

            syscall(__NR_my_call);

            return 0;

        }


        交叉編譯:

        arm-linux-gcc sys_call.c -o sys_call


        將交叉編譯后的程序下載到開發板:

        使用CRT的串口傳輸功能:

        1、在進入開發板文件系統后,輸入:

        rx sys_call

        并回車確認,選擇下載到板子的應用程序,模式Xmodem

        2、下載成功后修改可執行屬性:

        chmod 777 sys_call

        3、執行

             linux基礎入門學習到粵嵌教育,教學課程涵蓋了嵌入式基礎、項目分析與立項、Linux核心操作與算法、嵌入式Linux系統編程開發、嵌入式GUI系統編程開發、ARM開發、嵌入式底層驅動開發、項目優化與驗收再到就業與創業指導。  


          

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文精品久久久久国产不卡 | 在线看免费观看中国Av | 亚洲国产亚综合在线欧美 | 中文字幕亚洲欧美日韩专区 | 亚洲一级一级一区二区 | 日本三级香港三级人妇99视频 |