如何用中断方式实现一个串口的字符设备驱动程序

 我来答
止心白5
2016-12-20 · TA获得超过116个赞
知道小有建树答主
回答量:1887
采纳率:0%
帮助的人:358万
展开全部
一节用的是查询方式获取按键值,比较耗费资源,现在用中断方式来获取按键值。
内核在start_kernel函数(源码在init/main.c中)中调用trap_init、init_IRQ两个函数来设置异常的处理函数。
1.trap_init函数用来设置各种异常处理向量,包括中断向量。所谓向量就是一些被安放在固定位置的代码,当发生异常时,CPU会自动执行这些固定 位置上的指令。异常向量的代码很简单,它们只是一些跳转指令。发生异常时,CPU自动执行这些指令,跳转去执行更复杂的代码,比如保存被中断程序的执行环 境,调用异常处理函数,恢复被中断程序的执行环境并重新运行。
2.init_IRQ函数用来初始化中断的处理函数,设置各种中断的默认处理函数。当发生中断时,中断总入口函数asm_do_IRQ就可以调用这些函数作进一步处理。

<一>中断处理体系结构
Linux内核将所有中断统一编号,使用一个irq_desc结构数组来描述这些中断,每个数组项对应一个中断(也可能是一组中断,它们公用相同的中断 号),里面记录了中断的名称、中断状态、中断标记(比如中断类型、是否共享中断),并提供了中断的底层硬件访问函数(清除、屏蔽、使能中断),提供了这个 中断的处理函数入口,通过它可以调用用户注册的中断函数。
迪凯特科技(北京)有限公司
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式