新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在嵌入式Linux增加自己的設備驅動程序

        在嵌入式Linux增加自己的設備驅動程序

        作者: 時間:2012-04-18 來源:網絡 收藏

        的使用可以按照兩種方式編譯,一種是靜態編譯進內核,另一種是編譯成模塊以供動態加載。由于uClinux不支持模塊動態加載,而且LINUX不能夠象桌面LINUX那樣靈活的使用insmod/rmmod加載卸載,因而這里只介紹將靜態編譯進uClinux內核的方法。

        本文引用地址:http://www.104case.com/article/149221.htm

        下面以UCLINUX為例,介紹在一個以模塊方式出現的驅動程序test。c基礎之上,將其編譯進內核的一系列步驟:

        (1)改動test。c源帶代碼

        第一步,將原來的:

        #include

        #include

        charkernel_version[]=UTS_RELEASE;

        改動為:

        #ifdefMODULE

        #include

        #include

        charkernel_version[]=UTS_RELEASE;

        #else

        #defineMOD_INC_USE_COUNT

        #defineMOD_DEC_USE_COUNT

        #endif

        第二步,新建函數intinit_test(void)

        注冊寫在此處:

        result=register_chrdev(254,test,test_fops);

        (2)將test。c復制到/uclinux/linux/drivers/char目錄下,并且在/uclinux/linux/drivers/char目錄下mem。c中,intchr_dev_init()函數中如下代碼:

        #ifdefCONFIG_TESTDRIVE

        init_test();

        #endif

        (3)在/uclinux/linux/drivers/char目錄下Makefile中如下代碼:

        ifeq($(CONFIG_TESTDRIVE),y)

        L_OBJS+=test。o

        Endif

        (4)在/uclinux/linux/arch/m68knommu目錄下config。in中字符設備段里如下代碼:

        bool'supportfortestdrive'CONFIG_TESTDRIVEy

        (5)運行makemenuconfig(在menuconfig的字符設備選項里你可以看見我們剛剛添加的'supportfortestdrive'選項,并且已經被選中);makedep;makelinux;makelinux。text;makelinux。data;catlinux。textlinux。data>linux。bin。

        (6)在/uclinux/romdisk/romdisk/dev/目錄下創建設備:

        mknodtestc2540

        并且在/uclinux/appsrc/下運行make,生成新的Romdisk。s19文件。

        到這里,在UCLINUX中增加設備驅動程序的工作可以說是完成了,只要將新的linux。bin與Romdisk。s19燒入目標板中,你就可以使用的新設備test了。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 翁源县| 凉城县| 夏津县| 耒阳市| 偏关县| 康定县| 清丰县| 兰州市| 镇巴县| 西吉县| 承德市| 关岭| 斗六市| 广灵县| 葵青区| 芒康县| 田阳县| 郓城县| 永济市| 中宁县| 黄梅县| 郎溪县| 左权县| 米易县| 阜阳市| 克拉玛依市| 馆陶县| 合川市| 宁阳县| 霍城县| 永安市| 瓮安县| 阜宁县| 新宁县| 饶平县| 房山区| 太仆寺旗| 开阳县| 金川县| 洱源县| 府谷县|