文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(下)

1.4.1.2 设备树里使用中断一个外设,它的中断信号接到哪个“中断控制器”的哪个“中断引脚”,这个中断的触发方式是怎样的?这3个问题,在设备树里使用中断时,都要有所体现。① interrupt-parent=<&XXXX>你要用哪一个中断控制器里的中断?② interrupts你要用哪一个中断?Interrupts里要用几个cell,由interrupt-parent对应的....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(下)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(中)

1.2.6 下半部要做的事情太多并且很复杂:工作队列在中断下半部的执行过程中,虽然是开中断的,期间可以处理各类中断。但是毕竟整个中断的处理还没走完,这期间APP是无法执行的。假设下半部要执行1、2分钟,在这1、2分钟里APP都是无法响应的。这谁受得了?所以,如果中断要做的事情实在太耗时,那就不能用软件中断来做,而应该用内核线程来做:在中断上半部唤醒内核线程。内核线程和APP都一样竞争执行,APP....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(中)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(上)

1. Linux系统对中断的处理1.1 进程、线程、中断的核心:栈中断中断,中断谁?中断当前正在运行的进程、线程。进程、线程是什么?内核如何切换进程、线程、中断?要理解这些概念,必须理解栈的作用。1.1.1 ARM处理器程序运行的过程ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),它所用的指令比较简单,有如下特点:① 对内存只有读、....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)Linux系统对中断的处理(上)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型

1.1 原来的框架1.2 要实现的框架1.3 写代码使用GIT下载所有源码后,本节源码位于如下目录:01_all_series_quickstart\ 05_嵌入式Linux驱动开发基础知识\source\ 02_led_drv\04_led_drv_template_bus_dev_drv1.3.1 注意事项① 如果platform_device中不提供release函数,如下图所示不提供红框....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十七) 异常与中断的概念及处理流程

1. 异常与中断的概念及处理流程17.1 中断的引入17.1.1 妈妈怎么知道孩子醒了妈妈怎么知道卧室里小孩醒了?① 时不时进房间看一下:查询方式 简单,但是累② 进去房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒 不累,但是妈妈干不了活了③ 妈妈要干很多活,但是可以陪小孩睡一会,定个闹钟:poll方式 要浪费点时间,但是可以继续干活。妈妈要么是被小孩吵醒,要么是被闹钟吵醒。④ 妈妈在客厅干活....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十七) 异常与中断的概念及处理流程
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十六)GPIO和Pinctrl子系统的使用(下)

1.2.4 sysfs中的访问方法在sysfs中访问GPIO,实际上用的就是引脚号,老的方法。a. 先确定某个GPIO Controller的基准引脚号(base number),再计算出某个引脚的号码。方法如下:① 先在开发板的/sys/class/gpio目录下,找到各个gpiochipXXX目录:② 然后进入某个gpiochip目录,查看文件label的内容③ 根据label的内容对比设备....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十六)GPIO和Pinctrl子系统的使用(下)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十六)GPIO和Pinctrl子系统的使用(上)

1.GPIO和Pinctrl子系统的使用参考文档:a. 内核 Documentation\devicetree\bindings\Pinctrl\ 目录下:Pinctrl-bindings.txtb. 内核 Documentation\gpio 目录下: Pinctrl-bindings.txtc. 内核 Documentation\devicetree\bindings\gpio 目录下: g....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十六)GPIO和Pinctrl子系统的使用(上)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十五)具体单板的按键驱动程序(查询方式)

1.具体单板的按键驱动程序(查询方式)1.1 GPIO操作回顾参考章节《第四章 普适的GPIO引脚操作方法》、《第五章 具体单板的GPIO操作方法》。1.2 百问网IMX6ULL的按键驱动程序(查询方式)1.2.1 先看原理图确定引脚及操作方法平时按键电平为高,按下按键后电平为低。 按键引脚为GPIO5_IO01、GPIO4_IO14。注意:视频里使用QEMU来做实验,QEMU里的按键平时为低电....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十五)具体单板的按键驱动程序(查询方式)
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)查询方式的按键驱动程序_编写框架

1.查询方式的按键驱动程序_编写框架1.1 LED驱动回顾对于LED,APP调用open函数导致驱动程序的led_open函数被调用。在里面,把GPIO配置为输出引脚。安装驱动程序后并不意味着会使用对应的硬件,而APP要使用对应的硬件,必须先调用open函数。所以建议在驱动程序的open函数中去设置引脚。APP继续调用write函数传入数值,在驱动程序的led_write函数根据该数值去设置GP....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十四)查询方式的按键驱动程序_编写框架
文章 2022-12-13 来自:开发者社区

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十三)APP怎么读取按键值

1.APP怎么读取按键值APP读取按键值,需要有按键驱动程序。 为什么要讲按键驱动程序? APP去读按键的方法有4种:① 查询方式② 休眠-唤醒方式③ poll方式④ 异步通知方式通过这4种方式的学习,我们可以掌握如下知识:① 驱动的基本技能:中断、休眠、唤醒、poll等机制。这些基本技能是驱动开发的基础,其他大型驱动复杂的地方是它的框架及设计思想,但是基本技术就这些。② APP开发的基本技能:....

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十三)APP怎么读取按键值

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注