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
ARM嵌入式Linux系统开发从入门到精通,对于初学者很有帮助
2023-09-14 02:00:29 176KB ARM linux
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
嵌入式系统工程师培训教材讲义,共11部分。 1、linux操作系统入门 2、linux系统初级编程 3、linux系统高级编程 4、多任务多线程编程 5、网络编程及项目实践 6、ARM体系结构 7、ARM体系结构 8、应用程序开发 9、应用程序开发 10、驱动程序开发 11、驱动程序开发
2023-08-14 17:39:31 4.37MB 嵌入式linux
1
正点原子I.MX6U嵌入式Linux驱动开发指南V1.8
2023-08-09 08:09:20 101.82MB linux 嵌入式 驱动开发
1
嵌入式Linux系统开发标准教程.pdf
2023-08-03 08:01:47 7.82MB 嵌入式Linux 系统开发
1
本书讲述了如何构建嵌入式linux系统的相关知识,希望对大家有所帮助。
2023-06-29 10:59:36 19.71MB 嵌入式 Linux 系统
1
嵌入式Linux驱动开发实例分析》PDF课件.pdf《嵌入式Linux驱动开发实例分析》PDF课件.pdf
2023-06-29 10:50:45 561KB 嵌入式 Linux 驱动开发
1
系统编程学习笔记,朱友鹏课程学习笔记,主要是嵌入式方向。
2023-06-09 16:52:23 148KB 嵌入式 linux 系统编程
1
名师韦东山嵌入式Linux应用开发最新完全手册,最新版本。总共580页,非彩色,有点大。很全,很实用,内容涵盖全面,讲解透彻,举例很多。
2023-06-07 17:23:08 110.95MB 韦东山Linux
1