当前位置: 首页 > news >正文

微信公众号平台及网站建设计划合肥高新城建设计院网站

微信公众号平台及网站建设计划,合肥高新城建设计院网站,门户网站的大数据应用,app软件定制开发一般多少钱如何开发Linux驱动程序 一般情况下都会有现成的驱动程序#xff0c;不需要从零开始开发驱动程序。所以Linux驱动开发主要分为两个步骤#xff1a;1.读得懂驱动程序#xff1b;2.写的了核心功能。 发送中断处理程序 发送中断处理函数在/drivers/serial/samsung.c的s3c24xx_se…如何开发Linux驱动程序 一般情况下都会有现成的驱动程序不需要从零开始开发驱动程序。所以Linux驱动开发主要分为两个步骤1.读得懂驱动程序2.写的了核心功能。   发送中断处理程序 发送中断处理函数在/drivers/serial/samsung.c的s3c24xx_serial_tx_chars   循环缓冲 struct circ_buf {     char *buf;     int head;     int tail; }; 存数据的时候移动head,取数据的时候移动tail。 static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id){ //判断发送流控 struct s3c24xx_uart_port *ourport id;struct uart_port *port ourport-port;if(port-x_char){ //是否有发送流控字符//写入流控字符wr_regb(port, S3C2410_UTXH, port-x_char);//修改发送计数port-icount.tx;//清除流控字符port-x_char 0;return IRQ_HANDLED; //中断处理完成}//判断数据发送struct circ_buf *xmit port-state-xmit;if(uart_circ_empty(xmit) || uart_tx_stopped(port)){ //是否循环缓冲为空或者串口停止发送s3c24xx_serial_stop_tx(port);return IRQ_HANDLED; //中断处理完成}//循环发送数据int count 256;while(!uart_circ_empty(xmit) (count-- 0)){ //是否循环缓冲不为空并且发送数据小于256字节//判断循环缓冲if(rd_regl(port, S3C2410_UFSTAT) (114)){ //是否循环缓冲已满break;}//写入发送数据wr_regb(port, S3C2410_UTXH, xmit-buf[xmit-tail]);//移动缓冲位置xmit-tail (xmit-tail 1) (UART_XMIT_SIZE - 1); //循环移动尾部//修改发送计数port-icount.tx;}//唤醒阻塞进程if(uart_circ_chars_pending(xmit) 256){ //是否循环缓冲数目小于256uart_write_wakeup(port);}//关闭发送使能if(uart_circ_empty(xmit)){ //是否循环缓冲为空s3c24xx_serial_stop_tx(port);}return IRQ_HANDLED; //中断处理完成 }   接收中断处理程序 接收中断处理函数在/drivers/serial/samsung.c的s3c24xx_serial_rx_chars   static irqreturn_t s3c24xx_serial_rx_chars(int irq, void *dev_id){//循环接收数据struct s3c24xx_uart_port *ourport dev_id;struct uart_port *port ourport-port;int max_count 64;while((max_count--) 0){ //是否接收数据小于64字节//判断接收缓冲unsigned int ufstat;ufstat rd_regl(port, S3C2410_UFSTAT);if((ufstat 0x3F) 0){ //是否接收缓冲为空break;}//读取错误状态unsigned int uerstat;uerstat rd_regl(port, S3C2410_UERSTAT);//读取接收数据unsigned int ch;ch rd_regb(port, S3C2410_URXH);//写入接收缓冲uart_insert_char(port, uerstat, S3C2410_UERSTAT_OVERRUN, ch, TTY_NORMAL);}//写入线路规程struct tty_struct *tty port-state-port.tty;tty_flip_buffer_push(tty);return IRQ_HANDLED; //中断处理完成 }  转载于:https://www.cnblogs.com/d442130165/p/5265703.html
http://www.huolong8.cn/news/350252/

相关文章:

  • 网站主页设计素材php个人网站源码
  • 海外网络怎么搭建做移动网站优化软件
  • 网站制作app开发腾讯云win建设网站
  • wordpress局限性长沙网站优化效果
  • 地产网站建设方案泉州市城乡和建设网站
  • 网站标题psd如何网站关键词优化
  • 网站备案安全承诺书WordPress手机缩略图设置
  • 运城市住房和城乡建设厅网站seo应该怎么做
  • 启航网站建设网络营销策划书步骤
  • 游戏网站怎么赚钱静态网站公用头部如何调用标题
  • 怎么创建公司的个人网站天津设计网站
  • 佛山 网站建设 骏域wordpress英文变成中文
  • 简述网站的建设方案ps做网站连接
  • 广东网站建设联系什么是网页设计师
  • 网站如何建设与安全管理制度平台经济概念股票龙头
  • 长沙长沙建设网站手机端首页设计
  • 科技网站首页爱站网综合查询
  • app开发网站开发宁波十大口碑最好的装饰公司
  • 建站快车的优点wordpress 手机布局
  • 全网响应式网站国内网站空间 优帮云
  • 网站制作模板过程寿光人才网招聘网
  • 淘宝网站的建设目的河南网络营销外包
  • 建设网站的报告e盘网站建设
  • 你的网站尚未进行备案crm财务系统
  • 网站建设及照片使用保密协议小程序平台哪个好
  • 自适应的网站中国加工网招聘信息
  • 网站怎么做uc整合冯耀宗seo博客
  • 建设外贸网站多少钱做网站的图片字虚
  • 制作网站专业公司吗网站域名是什么意思
  • 网站前台后台商务网站创建