按键驱动范例-卷积神经网络的数学推导

时间:2024-06-29 07:17:45
【文件属性】:

文件名称:按键驱动范例-卷积神经网络的数学推导

文件大小:8.6MB

文件格式:PDF

更新时间:2024-06-29 07:17:45

周立功 嵌入式 Linux

程序清单 2.24 中断处理程序 static irqreturn_t xxxx_interrupt(int irq, void *dev_id) { ...中断处理代码 return IRQ_HANDLED; /* 中断已经处理完毕 */ } 至于中断处理程序要做些什么,应当做些什么,取决于具体系统的具体应用,没有统一 的要求,但是中断处理程序应当尽量短,处理只能在中断上下文中处理的事情,能放到进程 上下文的工作都不要放到中断上下文中处理。 2.7.3 按键驱动 背景交代 1. 本节提供的按键驱动范例基于 EPC-28x 工控主板。EPC-28x 硬件上有不少用户可用 GPIO,本节选取其中一个 GPIO,用作按键,并编写驱动,用于演示中断的基本用法。 本节范例按键对应的 GPIO 为 GPIO2_6,对应 IO 在系统中的编号为 70。IO 端口平时处 于高电平,按键按下后为低电平。 Linux 系统为每个中断都分配了一个编号。i.MX28x 处理器的每个 IO 端口都可以产生 中断,IO 引脚编号 GPIOn 和中断号 IRQn 之间的换算公式为:IRQn=GPIOn+128,在代码中 可通过 gpio_to_irq 函数来完成转换。 驱动实现 2. 按键通常来说无需进行读写操作,也无需进行其它 ioctl 操作,因此,这些方法都无需 实现。范例程序仅仅实现了 open、release 和 close 三种方法,参考程序清单 2.25。 第 10~13 的 3 个宏定义分别行定义了 IO 端口、中断编号和设备名称。 第 20~26 行列举了可用的中断触发条件,在代码中根据实际需要来使用。根据硬件情况, 代码中实际使用下降沿中断 IRQ_TYPE_EDGE_FALLING。 范例代码中有一点需要说明一下,就是代码中使用了 GPIO 申请和释放函数,见第 59 行和 108 行。在 Linux 系统中,为了防止某个 IO 被在多个地方被重复使用,在使用之前需 通过 gpio_request_one()函数进行申请。在没有被释放之前,其它驱动程序是不能获得该 IO 端口的,能有效防止资源混乱。使用完毕,可通过 gpio_free()函数释放该端口。 程序清单 2.25 按键驱动范例 1 #include 2 #include


网友评论