新聞中心
linux 串口編程之中斷處理

Linux 串口編程是一個比較常見的應(yīng)用,用來處理串口通信,其中中斷處理是必不可少的操作。實際上,在Linux串口編程中,我們可以選擇輪詢來處理串口中斷信號,或者使用中斷,來處理這些中斷信號。本文要討論的是Linux上如何使用中斷處理串口中斷信號。
Linux下設(shè)置串口中斷處理有兩個關(guān)鍵操作,一是,在進(jìn)入系統(tǒng)時,要進(jìn)行相關(guān)的串口驅(qū)動程序的初始化,編譯它們成.ko文件,并加載Setup語句,使其就緒;二是安裝中斷處理函數(shù),以處理串口中斷信號。
在進(jìn)行串口驅(qū)動程序初始化時,需要將它們編譯成.ko文件,并運(yùn)行Setup語句。有關(guān)如何將Linux串口驅(qū)動程序編譯成.ko文件,請參照以下步驟:
1.以超級用戶的身份,進(jìn)入/usr/src目錄;
2.運(yùn)行make oldconfig指令;
3.運(yùn)行make menuconfig指令,并按照步驟菜單,選擇相應(yīng)的參數(shù),以激活相應(yīng)的傳輸控制器驅(qū)動;
4.運(yùn)行make指令,將驅(qū)動程序編譯成.ko文件;
5.將驅(qū)動程序加載進(jìn)內(nèi)核,運(yùn)行Setup語句,讓串口驅(qū)動程序就緒。
在安裝GDtron,處理串口中斷信號時,/usr/src/linux/include/asm/system.h這個包含文件中包含了一個可供串口驅(qū)動程序使用的函數(shù),該函數(shù)就是irq_handler(),它是一個標(biāo)準(zhǔn)的中斷處理函數(shù),由它來處理中斷信號。
下面是一個實現(xiàn)中斷處理的基本函數(shù)框架:
//定義中斷處理函數(shù)
static irqreturn_t serial_interrupt(int irq, void *dev_id)
{
//中斷處理代碼,例如從串口硬件緩沖中讀取數(shù)據(jù)
//該函數(shù)會收到一個中斷標(biāo)識作為參數(shù)irq
return IRQ_HANDLED;
}
//安裝該中斷處理函數(shù)
int install_serial_interrupt(int irq)
{
//該函數(shù)會收到一個中斷標(biāo)識作為參數(shù)irq
return request_irq(irq, serial_interrupt, IRQF_SHARED, "serial-interrupt", &irq);
}
//卸載該中斷處理函數(shù)
void uninstall_serial_interrupt(int irq)
{
//該函數(shù)會收到一個中斷標(biāo)識作為參數(shù)irq
free_irq(irq, &irq);
}
以上就是Linux串口編程的中斷處理的一般步驟,通過這樣的步驟,我們可以輕松地安裝中斷處理,處理串口中斷信號。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前題目:Linux串口編程之中斷處理(linux串口編程中斷)
文章地址:http://m.fisionsoft.com.cn/article/copgsih.html


咨詢
建站咨詢
