新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Linux驅(qū)動程序開發(fā)要點

        嵌入式Linux驅(qū)動程序開發(fā)要點

        作者: 時間:2012-08-27 來源:網(wǎng)絡(luò) 收藏

        #include

        int request_irq(unsigned int irq,

        void (*handler)(int irq, void dev_id, struct pt_regs *regs),

        unsigned long flags,

        const char *device,

        void *dev_id);

        void free_irq(unsigned int irq, void *dev_id);

        參數(shù)irq表示所要申請的硬件中斷號;handler為向系統(tǒng)登記的中斷處理子程序,中斷產(chǎn)生時由系統(tǒng)來調(diào)用,調(diào)用時所帶參數(shù)irq為中斷號;dev_id為申請時告訴系統(tǒng)的設(shè)備標(biāo)識;regs為中斷發(fā)生時的寄存器內(nèi)容;device為設(shè)備名,將會出現(xiàn)在/proc/interrupts文件里;flag是申請時的選項,它決定中斷處理程序的一些特性,其中最重要的是中斷處理程序是快速處理程序還是慢速處理程序??焖偬幚沓绦蜻\行時,所有中斷都被屏蔽,而慢速處理程序運行時,除了正在處理的中斷外,其他中斷都沒有被屏蔽。在系統(tǒng)中,中斷可以被不同的中斷處理程序共享。

        作為系統(tǒng)核心的一部分,設(shè)備程序在申請和釋放內(nèi)存時不是調(diào)用malloc和free,而代之以調(diào)用kmalloc和kfree,它們被定義為:

        #include

        void *kmalloc(unsigned int len, int priority);

        void kfree(void *obj);

        參數(shù)len為希望申請的字節(jié)數(shù);obj為要釋放的內(nèi)存指針;priority為分配內(nèi)存操作的優(yōu)先級,即在沒有足夠空閑內(nèi)存時如何操作,一般用GFP_KERNEL。

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

        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 陈巴尔虎旗| 兴国县| 澳门| 鞍山市| 新竹县| 霍林郭勒市| 潮州市| 马关县| 宾川县| 肇庆市| 海南省| 南康市| 康乐县| 息烽县| 茶陵县| 山西省| 五指山市| 林甸县| 定结县| 界首市| 中宁县| 长海县| 丹江口市| 河东区| 乌海市| 湘乡市| 什邡市| 武夷山市| 宜兰市| 寿阳县| 温宿县| 海淀区| 杭州市| 西乌珠穆沁旗| 柞水县| 临高县| 东阿县| 连平县| 高安市| 扎兰屯市| 桦川县|