在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ESM335x外部中斷輸入應(yīng)用介紹

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-04 10:37 ? 次閱讀

ESM335x嵌入式主板引出了2路外部中斷輸入,IRQ1和IRQ2。中斷上升沿有效,分別與GPIO24和GPIO25復(fù)用管腳。Linux-4.1.6之前采用了異步IO的方式通過(guò)SIGIO通知應(yīng)用程序有中斷發(fā)生,我們?cè)贚inux-4.1.6 IRQ驅(qū)動(dòng)中增加了對(duì)select函數(shù)的支持,select函數(shù)使用戶(hù)在應(yīng)用程序中可以更方便的獲取中斷狀態(tài)。

Linux系統(tǒng)IRQ外部中斷的應(yīng)用

IRQ1和IRQ2對(duì)應(yīng)的設(shè)備文件分別是:/dev/em335x_irq1和/dev/em335x-irq2.應(yīng)用程序使用IRQ外部中斷功能需要先打開(kāi)相應(yīng)的設(shè)備文件:

intirq_no = 1;

sprintf( device, "/dev/em335x_irq%d", irq_no );

irq_fd = open(device, O_RDWR, S_IRUSR | S_IWUSR);

if(irq_fd < 0)

{

printf("can not open /dev/em335x_irq1 device file!\n");

return-1;

}

之后設(shè)置使用異步IO或者使用select函數(shù)獲取中斷狀態(tài),異步IO方式可參考技術(shù)手冊(cè),不再建議用戶(hù)使用。

select函數(shù)

由于外部中斷輸入的時(shí)間是不確定的,需要在循環(huán)中不停的調(diào)用select函數(shù)以檢查設(shè)備文件的讀狀態(tài),所以一般會(huì)創(chuàng)建一個(gè)線程來(lái)調(diào)用select函數(shù),主程序繼續(xù)執(zhí)行其他的操作。線程函數(shù)如下:

intIRQSelectThreadFunc(void* lparam)

{

intfd = * (int*)lparam;

fd_set fdRead;

structtimeval aTime;

intret,exitflag=1; //exitflag在程序其他線程中改變

while(1)

{

FD_ZERO(&fdRead);

FD_SET(fd,&fdRead);

aTime.tv_sec = 2; //s

aTime.tv_usec = 0; //us

ret = select ( fd+1, &fdRead, NULL, NULL, &aTime );

if( ret<0 )

printf( "select, something wrong!\n " );

if( ret>0 )

{

if( FD_ISSET(fd, &fdRead) )

{

//用戶(hù)可以在此加入中斷發(fā)生后的處理操作

nIrqCounter++;

printf( "there is a IRQ!!!\n" );

}

}

if( exitflag==0 )

break;

//判斷程序運(yùn)行狀態(tài),跳出循環(huán)

}

pthread_exit( NULL );

return0;

}

創(chuàng)建線程:

pthread_attr_t attr;

pthread_t m_thread;

int res;

// 創(chuàng)建select線程

res = pthread_attr_init(&attr);

if( res!=0 )

{

printf("Create attribute failed\n" );

}

// 設(shè)置線程綁定屬性

res = pthread_attr_setscope( &attr, PTHREAD_SCOPE_SYSTEM );

// 設(shè)置線程分離屬性

res += pthread_attr_setdetachstate( &attr, PTHREAD_CREATE_DETACHED );

if( res!=0 )

{

printf( "Setting attribute failed\n" );

}

res = pthread_create( &m_thread, &attr, (void*(*) (void*))&IRQSelectThreadFunc, &irq_fd );

if( res!=0 )

{

return-1;

}

pthread_attr_destroy( &attr );

用戶(hù)在應(yīng)用程序中創(chuàng)建新的線程使用select函數(shù)查詢(xún)中斷設(shè)備文件的狀態(tài),如果有中斷發(fā)生select函數(shù)將會(huì)返回大于0的數(shù)值,用戶(hù)進(jìn)一步判斷是哪一個(gè)設(shè)備文件有中斷發(fā)生,然后執(zhí)行相應(yīng)的中斷處理操作。

異步IO和select函數(shù)的比較

異步IO和select函數(shù)的功能都是相同的,即通知用戶(hù)有中斷發(fā)生,從而執(zhí)行用戶(hù)在應(yīng)用程序中設(shè)置的中斷處理操作;兩者由于在內(nèi)核中使用的事件通知機(jī)制不同,在應(yīng)用程序中的設(shè)置方法差別很大,執(zhí)行的方式也不同(見(jiàn)程序),select函數(shù)采用阻塞的方式獲取讀狀態(tài),不占用CPU資源,可以提高程序運(yùn)行效率。兩者最大的差異在于當(dāng)用戶(hù)需要在一個(gè)應(yīng)用程序中檢查多個(gè)中斷輸入設(shè)備文件的狀態(tài)時(shí)(同時(shí)使用IRQ1和IRQ2),只能使用select函數(shù)才能確定具體是哪個(gè)中斷設(shè)備文件有中斷發(fā)生,使用異步IO不能確定。因此我們建議用戶(hù)在程序中使用select函數(shù)來(lái)管理IRQ外部中斷輸入。

如有疑問(wèn)請(qǐng)隨時(shí)與我們聯(lián)系。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11329

    瀏覽量

    209971
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35486
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿(mǎn)落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?170次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?182次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?260次閱讀

    AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 11-14 15:07 ?0次下載
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara?處理器<b class='flag-5'>技術(shù)</b>參考手冊(cè)

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?521次閱讀

    在TMS320C672x器件上配置外部中斷

    電子發(fā)燒友網(wǎng)站提供《在TMS320C672x器件上配置外部中斷.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 09:58 ?0次下載
    在TMS320C672<b class='flag-5'>x</b>器件上配置<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    AM335x功耗估算工具

    電子發(fā)燒友網(wǎng)站提供《AM335x功耗估算工具.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:46 ?0次下載
    AM<b class='flag-5'>335x</b>功耗估算工具

    AM335x硬件設(shè)計(jì)指南

    電子發(fā)燒友網(wǎng)站提供《AM335x硬件設(shè)計(jì)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:05 ?0次下載
    AM<b class='flag-5'>335x</b>硬件設(shè)計(jì)指南

    AM335x原理圖核對(duì)表

    電子發(fā)燒友網(wǎng)站提供《AM335x原理圖核對(duì)表.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:03 ?0次下載
    AM<b class='flag-5'>335x</b>原理圖核對(duì)表

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?459次閱讀

    STM32中斷分組及外部中斷的配置過(guò)程分享

    。STM32F103 的中斷控制器支持 19 個(gè)外部中斷/事件請(qǐng)求。每個(gè)中斷設(shè)有狀態(tài)位,每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽設(shè)置。STM32F
    發(fā)表于 04-08 08:05

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?976次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    TC23x外部中斷嗎,如何去捕獲外部中斷?

    TC23x外部中斷嗎,如何去捕獲外部中斷
    發(fā)表于 02-06 07:01

    外部中斷的工作原理 外部中斷方式有哪些 為什么要使用外部中斷

    外部中斷的工作原理是單片機(jī)響應(yīng)外部事件的一種機(jī)制** **。
    的頭像 發(fā)表于 01-28 17:37 ?3830次閱讀

    單片機(jī)外部中斷和定時(shí)器中斷的區(qū)別和用法

    單片機(jī)外部中斷和定時(shí)器中斷在觸發(fā)來(lái)源、應(yīng)用場(chǎng)景以及功能特點(diǎn)上存在明顯差異** **。
    的頭像 發(fā)表于 01-28 17:35 ?3239次閱讀
    主站蜘蛛池模板: 黄频网站免费大全在线观看| 久草一区| 四虎影院精品在线观看| 伊人久久大香线蕉电影院| 亚洲天堂成人网| 天堂bt在线种子网| 日本xxxx色视频在线观看免费| 日本aaaa级| 久久网综合| 国产精品亚洲一区二区三区在线播放| 高清国产一区二区三区| 午夜大片免费完整在线看| 日韩一级片在线免费观看| www.九色视频| 一区免费视频| 最新人妖shemaletube人妖| 国产亚洲精品成人a在线| 狠狠88综合久久久久综合网| 国产成人免费无庶挡视频| 亚色在线| 国产精品午夜免费观看网站| 68日本 xxxxxxxxx| 国产亚洲欧美成人久久片| 97精品伊人久久大香线蕉| 亚洲4区| 一色屋成人免费精品网站| 日韩三级小视频| 国产黄色三级三级三级| 天天亚洲| 免费黄色大片在线观看| 在线亚洲欧美性天天影院| 日本黄色免费在线观看| 国产成都一二三四区| 欧美在线bdsm调教一区| 中文字幕一区二区三区有限公司| 曰本又色又爽又黄三级视频| 欧美三级小视频| 真实子伦视频不卡| 5x性区m免费毛片视频看看| 黄.www| 明日花绮罗在线观看|