• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

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

    本文引用地址:http://www.czjhyjcfj.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不再難懂)


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 旌德县| 临漳县| 云林县| 苍溪县| 清镇市| 黑河市| 高密市| 平武县| 清涧县| 郎溪县| 炉霍县| 瓦房店市| 重庆市| 吉水县| 绩溪县| 潢川县| 凌海市| 万年县| 陇南市| 大姚县| 新源县| 成武县| 丰都县| 浑源县| 乌拉特前旗| 通城县| 德安县| 乐亭县| 精河县| 全州县| 山阴县| 甘孜县| 乌海市| 阿勒泰市| 革吉县| 浮山县| 进贤县| 定兴县| 抚远县| 武清区| 南郑县|