<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇Linux專區(qū)Linux驅動開發(fā) → 嵌入式Linux下IC卡接口設計與驅動開發(fā)


      共有7487人關注過本帖樹形打印

    主題:嵌入式Linux下IC卡接口設計與驅動開發(fā)

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    嵌入式Linux下IC卡接口設計與驅動開發(fā)  發(fā)帖心情 Post By:2010-11-24 9:38:29

    中斷處理函數(shù)中采用語句
    queue_task(&timer_task,&tq_immediate); <!--ecms.*-->
    mark_bh(IMMEDIATE_BH);
    實現(xiàn)了任務隊列timer_task加入內核tq_immediate的任務隊列處理。內核在合適的時間會自動調用timer_task的例行處理函數(shù)timer_do_taskletO進行中斷的后續(xù)處理。   
    在time r dO_ta sklet()處理函數(shù)中,有一條語句wake up interruptible(&icde v.writeq)與ic_poll函數(shù)中的D011_wait(flip,&icdev.writeq,wait)相對應。當中斷發(fā)生時,將等待時間隊列icdev.writeq激活;而poll_wait函數(shù)則針對此隊列進行監(jiān)控
    。一旦被激活,則可以傳遞給用戶插卡操作信息,在用戶應用軟件中可立即調用讀函數(shù)進行讀卡操作。這樣就實現(xiàn)了對卡的實時操作監(jiān)控。


         (5)模塊注銷函數(shù)的實現(xiàn)
    static void_exit
    remove_ic(void){ 
    m8xx_timer_stop(); 
    cpm_free_handler(CPMVEC_TIMERl); 
    unregister_chrdev(majorl,“IC”);
    }   
    這個函數(shù)也是模塊驅動開發(fā)中必不可少的函數(shù)之一,用于模塊卸載時進行資源的釋放,并注銷此模塊。如上函數(shù)所示,首先進行了中斷的停止、釋放中斷資源,同時進行了字符設備的注銷。
    (6)設備讀、寫、監(jiān)控等子函數(shù)
    用來實現(xiàn)對卡的操作,主要是通過實現(xiàn)卡的各種操作時序。也即在ic_fop s結構體中定義的4個操作函數(shù):icopen用于打開卡設備,進行一些數(shù)據(jù)的初始化操作;icread()用于插卡操作時讀取卡數(shù)據(jù);icwrite()用于寫卡;icpoll()用于實現(xiàn)卡的實時監(jiān)控。   
    綜上所述,卡驅動模塊的基本實現(xiàn)原理是:申請中斷資源,當有插卡操作發(fā)生時,引發(fā)中斷,進行讀卡操作。在拔卡操作時也能引發(fā)中斷,同時進行相應數(shù)據(jù)處理。同時提供poll()函數(shù)接口,用戶可采用此函數(shù)對設備進行監(jiān)控,從而實現(xiàn)有卡操作發(fā)生時馬上進行卡數(shù)據(jù)的更新。
    注:驅動程序源碼見本刊網(wǎng)站W(wǎng)WW.dpj.tom.cn。5  驅動模塊開發(fā)的編譯調試    以開發(fā)平臺和編譯器為例編寫簡單的makefile文件為:
    CC=ppc 8xx_gcc
    DD=.nostdinc.DMODULE-D_KERNEL_I/mykeme Finclude.Wall-Wstrict-prototypes-Wno-trigraphs-02-fomit-frame-pointer-fno-strict-aliasing-fno-common-I/mykernel/arch/ppc-fsigned-char-resort-float-pipe-ffixed-r2-Wno-uninitialized-mmultiple-mstring-fno-builtin-I/Opt/hardhat/devkit/ppc/8xx/target/usr/lib/gcc-lib/powerpc-hardhat-linux/3.2.1/include ie.o:ic.C 
    $(CC)$(DD)-C ic.c
    install:   
    make ic.o
    clean:   
    rn*o   
    執(zhí)行命令make install,便可以實現(xiàn)驅動模塊的動態(tài)編譯。      
    內核提供了兩個應用程序insmod和rmmod來實現(xiàn)內核模塊的動態(tài)加載和去除。在模塊編譯當前目錄下執(zhí)行命令
    mknod/dev/charmodule c2540   
    建立與此設備模塊對應的設備文件節(jié)點。c表示為字符設備,254表示主設備號,0表示子設備號。
    執(zhí)行命令insmod ic.o,可實現(xiàn)模塊動態(tài)加載;而命令rmmod ic可實現(xiàn)模塊的動態(tài)去除。
     
           6  驅動模塊的靜態(tài)編譯進內核
    ①將模塊驅動源文件拷貝進/drivers/char/目錄下;
    ②修改/drivers/char/Makefile文件,添加obj-$(CONFIG_MYMODULE)+=ic.o
    ③在/drivers/char/config.in文件中添加config CONFIG_MYMODULE
    bool “IC”CONFIG_MYMODULE
    ④進入編譯內核目錄,執(zhí)行make menuconfig。
    在character devices 目錄下即可見到IC選項。選擇,然后執(zhí)行編譯命令,即可編入內核或僅編譯模塊:
    make mrproper
    make menuconfig
    make CROSS_COMPILE=ppc_8xx-gcc
    make modules CROSS_COMPILE=ppc_8xx-gcc
    即可只編譯內核。在源文件目錄下可見到ic.o。
     
          7  總結
         用基本的字符設備實現(xiàn)IC卡設備的驅動模塊開發(fā)。內核驅動模塊的開發(fā)是與硬件直接接觸的。針對硬件的不同,其內部處理方法也千變萬化。對于內核模塊開發(fā),最有效的學習途徑和最好的學習文檔就是Linux的內核源代碼。同時,加入一些Linux的郵件開發(fā)組也將獲益匪淺。
     


    嵌入式Linux下IC卡接口設計與驅動開發(fā)

    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    嵌入式Linux下IC卡接口設計與驅動開發(fā)








    簽名
    主站蜘蛛池模板: 亚洲高清美女一区二区三区| 国内精品福利视频| 国产精品va一区二区三区| 久久久久久久999| 欧美japanese孕交| 免费黄色软件下载| 色国产在线观看| 国产精品久久久久国产精品三级| 一级**爱片免费视频| 日日噜噜噜夜夜爽爽狠狠| 亚洲天堂一区在线| 波多野结衣在线观看一区| 四虎精品视频在线永久免费观看| 高清国产一级毛片国语| 报告夫人漫画画免费读漫画在线观看漫画ag | 亚洲欧美在线综合一区二区三区| 秋霞免费乱理伦片在线观看| 国产在线观看91精品不卡 | 欧美va天堂在线影院| 伊人久久大香线蕉亚洲| 精品国产一区二区三区不卡在线| 国产性生大片免费观看性| 91东航翘臀女神在线播放| 女人双腿搬开让男人桶| 久久一日本道色综合久久m| 日韩亚洲翔田千里在线| 亚洲欧洲专线一区| 污网站在线免费看| 动漫做羞羞的视频免费观看| 美女黄频免费网站| 国产成人女人毛片视频在线| 97午夜理伦片在线影院| 大地资源在线资源免费观看| 中文无码字幕中文有码字幕| 日本护士在线视频xxxx免费| 亚洲中文字幕日产乱码高清app| 欧美成人天天综合在线视色| 伊人色综合久久天天人手人婷| 精品亚洲成a人无码成a在线观看| 国产乱国产乱老熟300部视频 | 日出水了特别黄的视频|