11.5 中断编程 前面所讲述的驱动程序中都没有涉及中断处理,而实际上,有很多 Linux的驱动 都是通过中断的方式来进行内核和硬件的交互。中断机制提供了硬件和软件之间异步 传递信息的方式。硬件设备在发生某个事件时通过中断通知软件进行处理。中断实现 了硬件设备按需获得处理器关注的机制,与查询方式相比可以大大节省 CPU 资源的 开销。 在此将介绍在驱动程序中用于申请中断的 request_irq()调用,和用于释放中断的 free_irq()调用。request_irq()函数调用的格式如下所示: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs), unsigned long irqflags, const char * devname, oid *dev_id); 其中 irq是要申请的硬件中断号。在 Intel平台,范围是 0~15。 参数 handler 为将要向系统注册的中断处理函数。这是一个回调函数,中断发生 时,系统调用这个函数,传入的参数包括硬件中断号、设备 id以及寄存器值。设备 id 就是在调用 request_irq()时传递给系统的参数 dev_id。 参数 irqflags是中断处理的一些属性,其中比较重要的有 SA_INTERRUPT。这个 参数用于标明中断处理程序是快速处理程序(设置 SA_INTERRUPT)还是慢速处理 程序(不设置 SA_INTERRUPT)。快速处理程序被调用时屏蔽所有中断。慢速处理程 序只屏蔽正在处理的中断。还有一个 SA_SHIRQ属性,设置了以后运行多个设备共享 中断,在中断处理程序中根据 dev_id区分不同设备产生的中断。 参数 devname为设备名,会在/dev/interrupts中显示。 参数 dev_id 在中断共享时会用到。一般设置为这个设备的 device 结构本身或者 NULL。中断处理程序可以用 dev_id 找到相应的控制这个中断的设备,或者用 irq2dev_map()找到中断对应的设备。 释放中断的 free_irq()函数调用的格式如下所示。该函数的参数与 request_irq()相 同。
2023-09-19 23:04:18 10.86MB 嵌入式 Linux
1
QT 串口使用YMODEM协议进行发送、接收文件
2023-09-15 08:34:40 585KB qt linux window 嵌入式
1
ARM嵌入式Linux系统开发从入门到精通,对于初学者很有帮助
2023-09-14 02:00:29 176KB ARM linux
1
澎湃微芯片入门教程-资源包
2023-09-10 19:17:11 2.3MB 嵌入式
1
摘要:基于HBS协议的智能家居系统基础上,提出了手持编址器的设计思想、方法,并给出系统的软硬件实现,最后结合实例,简要介绍手持编址器的操作。 关键词:HBS 智能 手持编址器1 基于HBS协议的智能家居系统家庭总线系统HBS(Home Bus System)是由日立、三菱、松下、东芝等公司联合提出的,由日本电子机械工业协会与电波技术协会共同制定的。根据HBS标准,家庭总线由一条同轴电缆和四对双绞线构成,前者用于传输图像等视频信号,后者用于传输语音、数据和控制信号[l]。家用电器经HBS互联,组成一个完整的家庭网络。本项目以HBS的子集为目标,用一对双绞线实现分布式智能照明安防系统。基于H
1
打开路径 C:\Users\你的用户名\Documents\ArduinoData\staging\packages 把下载好了的安装包(zip格式)拖进去。 可用直接安装,免去使用IDE下载开发版的漫长过程
2023-09-06 22:20:49 32.87MB 嵌入式 esp8266 Arduino IDE
1
该程序实现了STM32F407的RTC功能,基本初始化配置使用STM32CubeMx配置,在生成的工程文件里添加一些需要的代码,初始化时设置初始时间,然后无论是开发板复位还是断电都不影响RTC的时间。该工程使用STM32F407ZGT6探索者开发板测试,能够正常读取时间,断电或者复位时间继续,不影响RTC时间。
2023-09-06 15:02:27 14.12MB stm32 rtc c语言 嵌入式
1
嵌入式实时操作系统uCOS-II》(第二版).pdf
1
自己动手写嵌入式操作系统电子书,想研究嵌入式OS的朋友下载看看,会有很大帮助的
1
随着 Linux 操作系统的发展,特别是Linux 2.6 内核的迅速发展,嵌入式Linux在嵌入式 领域的应用越来越广泛。Linux 具备源码开放、内核稳定高效、软件丰富等优势,而且还具 备支持广泛的处理器结构和硬件平台、可定制性好、可靠性高等特点。据IDC的报告显示, 嵌入式Linux 在未来两年将占嵌入式操作系统市场份额的50%,约3.5 亿美元,由此产生的 应用市场前景更是不可估量。 正是由于市场的需求,嵌入式领域也需要大量的嵌入式Linux 开发者。目前国内Linux 程序员的素质和数量还不能满足企业的需要。 编写目的 大学计算机相关专业课程都已经包含计算机组成原理、计算机编程语言、计算机体系结 构、计算机操作系统,甚至还包括电子技术和半导体技术。尽管已经具备这些嵌入式Linux 系统的基础知识,但是多数大学毕业生不清楚到底该如何开发嵌入式Linux系统。 编写本书的目的就是阐述嵌入式Linux 系统的各组成部分,从概念上和实践上说明嵌入 式Linux 系统开发的基本过程。这本书可以帮助具备计算机基础知识的开发者迅速进入嵌入 式系统开发领域。 希望本书能够帮助读者更好地理解嵌入式Linux 系统,并且参与到嵌入式Linux 系统开 发中来。 主要内容 本书以嵌入式Linux 系统开发流程为主线,剖析了嵌入式Linux 系统构建的各个环节。 从嵌入式系统基础知识和Linux 编程技术讲起,接下来说明了建立嵌入式Linux 交叉开发环 境,然后分析了嵌入式Linux 系统的引导程序、内核和文件系统三大组成部分,最后介绍了 嵌入式Linux 系统集成和部署的方法。 第 1 章介绍了嵌入式系统和嵌入式操作系统的概况,讲述了嵌入式Linux 发展历史和开 发环境,概括说明了嵌入式Linux系统开发的特点。 第2章描述了ARM体系结构和ARM Linux的发展,介绍了几种应用Linux的典型ARM 处理器和开发板。 ║2 嵌入式系统开发技术详解——基于ARM 第 3 章介绍了Linux 编程常用的工具,Makefile 语法规则,还有binutils、gcc 和gdb 等 工具的用法。 第 4 章介绍了嵌入式交叉开发环境的概念和配置,说明了应用程序交叉开发和调试的基 本方法。 第 5 章介绍了编译生成GNU工具链的基本步骤。 第 6 章介绍了Bootloader 的类型的特点,详细分析了U-Boot 的使用、编译和移植。 第 7 章介绍了Linux 2.6 内核的特点和Kbuild 管理方式,说明了内核基本的配置选项的 用法。 第 8 章以ARM 平台为例介绍了内核移植的基本方法,并且详细分析了Linux 内核启动 过程。 第 9 章介绍了各种Linux内核调试方法,为内核移植提供了有效的调试手段。 第 10 章介绍了Linux 根文件系统的组织结构,并且分析了init进程调用文件系统脚本初 始化的过程。 第 11 章介绍了嵌入式Linux系统常用的开源软件,包括系统工具、图形库、网络和串口 应用程序等。 第 12 章介绍了系统集成测试需要的各种工具,主要包括系统跟踪、性能测试和内存测 试3 个方面。 第 13 章介绍了Linux 系统部署的基本方法,分析了文件系统和存储介质的特点。 第 14 章介绍了以S3C2410 处理器的GPS 手持设备开发过程为例,介绍了嵌入式Linux 系统软硬件的设计与开发。 本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式 Linux 的教材,也可供广大希望转入嵌入式领域科研和工程技术人员参考使用,还可作为广 大嵌入式Linux 就业培训班的教材和教辅材料。
2023-09-02 00:36:12 9.85MB 嵌入式Linux系统开发技术详解 ARM pdf
1