
Linux驱动学习
俩个人壹辈子
文章为平时工作学习中的笔记记录,不当之处烦请指正,谢谢!
展开
-
Linux内核之环境搭建
本人学习使用Red Hat操作系统,开发板使用exynos4412 coltex A9开发板 内容: 1.Linux内核版本号分为三部份:主板本号,次版本号,修正版本号; 2.make menuconfig 生成图形化界面选择驱动加载程序; 3.为PC机安装最新内核: 查看CPU核数命令:cat /proc/cpuinfo 将内核文件编译成可执行程序:make原创 2016-01-22 15:34:38 · 507 阅读 · 0 评论 -
Linux内核之platform平台总线
基于platform 总线的设备驱动编写模式: platform总线是内核注册好的用于管理设备及驱动的一种模式。其总线对应的类型为:struct bus_type. 总线实现好了匹配规则,内核对于往platform总线上注册的设备及驱动对应的类型做了抽象。 platform总线上要注册的设备类: struct platform_device { const char *na原创 2016-01-22 15:50:48 · 522 阅读 · 0 评论 -
Linux内核之设备驱动模型
学习内容:总线、设备、驱动 驱动模型: 为了方便维护设备和驱动,内核抽象出三个类: 总线 struct bus_type; 设备 struct device; 驱动 struct device_driver; 这里的总线是抽象的该念总线,逻辑层面的,只是为了管理匹配 向内核注册并和总线关联的设备和驱动的,匹配规则决定于总线。 ----------------------------原创 2016-01-22 15:49:21 · 474 阅读 · 0 评论 -
Linux内核孩子Input子系统
0.在学习Linux驱动的过程中,遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: #define container_of(ptr, type, member) ({\ const typeof( ((type *)0)->member ) *__mptr = (ptr);\ /** * cont原创 2016-01-22 15:47:36 · 341 阅读 · 0 评论 -
Linux内核之内核锁
1.内核定时器: 未来的某个时间点执行提前设置的某个任务函数。 涉及到的核心头文件: #include 涉及到的结构体: struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */ struc原创 2016-01-22 15:44:56 · 495 阅读 · 0 评论 -
Linux内核之中断
1. 中断 涉及头文件: #include 中断的注册 int request_irq( unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev ); @irq: 中断号原创 2016-01-22 15:43:47 · 266 阅读 · 0 评论 -
Linux内核之ioctl
学习计划: 1.学习高级I/O 2.进程间的阻塞 内容: 1.驱动集中实现ioctl 读者只要把write换成ioctl,就知道用户程式的ioctl是怎么和驱动程式中的ioctl实现联系在一起的了 。我这里说一个大概思路,因为我觉得《Linux设备驱动程序》这本书已说的非常清晰了,不过得花一些 时间来看。在驱动程式中实现的ioctl函数体内,实际上是有一个switch{case原创 2016-01-22 15:42:17 · 1328 阅读 · 0 评论 -
Linux内核之字符设备驱动
学习计划: 1.vfs:虚拟文件系统 VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可 以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的 粘合层。在古老的DOS操作系统中,要访问本地文件系统之外的文件系统需要使用特殊的工具才能 进行。而在Linux下,通过VFS原创 2016-01-22 15:40:03 · 503 阅读 · 0 评论 -
Linux内核之环境搭建(二)
学习计划: 1.将bootloader,我们编译的内核,文件烧写到emmc; 2.制作根文件系统; 3.学习内核的Makefile和Kconfig对内核的作用。 1).Makefile 管理如何编译整个工程的文件.面对树状结构的内核源码目录,内核编译采 用了各个子目录拥有自己目录相关的Makefile,内核编译依赖于各个子目录 下的子文件,这些Makefile原创 2016-01-22 15:38:11 · 377 阅读 · 0 评论 -
Linux内核之/proc节点
1.arm-linux-nm:将可执行程序生成对应的符号表, arm-linux-as: 2.使用/proc 3.看门狗(wdt)定时器驱动 ********************************************************************************** * 在linux系统中,/proc文件系统它被用于内核向用户导出信息。/原创 2016-01-22 15:52:18 · 1834 阅读 · 0 评论