⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 int_app.c

📁 linux device driver example
💻 C
字号:
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <fcntl.h>#include <unistd.h>#define DEVICE_FILENAME  "/dev/intdev"typedef struct {    unsigned long time;} __attribute__ ((packed)) R_INT_INFO;#define   INT_BUFF_MAX              64int main(){    int        dev;    R_INT_INFO intbuffer[INT_BUFF_MAX];    int        intcount;    char       buff[128];    int        loop;        dev = open( DEVICE_FILENAME, O_RDWR|O_NDELAY );    if( dev >= 0 )    {                         printf( "start...\n" );        buff[0] = 0xFF;         write(dev,buff,1 );        printf( "wait... input\n" );        while(1)        {            memset( intbuffer, 0, sizeof( intbuffer ) );                intcount = read(dev,(char *) &intbuffer[0],sizeof(R_INT_INFO) ) / sizeof(R_INT_INFO) ;                if( intcount ) break;        }                printf( "input ok...\n");        sleep(1);        memset( intbuffer, 0, sizeof( intbuffer ) );            printf( "read interrupt times\n" );        intcount = read(dev,(char *) intbuffer,sizeof(intbuffer) ) / sizeof(R_INT_INFO) ;            for( loop =0; loop < intcount; loop++ )        {           printf( "index = %d time = %ld\n", loop, intbuffer[loop].time );        }                   printf( "led flashing...\n");        for( loop=0; loop<5; loop++ )        {            buff[0] = 0xFF;             write(dev,buff,1 );            sleep(1);            buff[0] = 0x00;             write(dev,buff,1 );            sleep(1);        }        close(dev);    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -