随笔分类 - linux设备驱动
摘要:《韦东山Linux视频第2期_从零写驱动\第13课第1节 输入子系统概念介绍_P.wmv》 本视频对输入子系统的结构进行了详细的剖析,通过本视频,可以了解到input核心包括了设备和handler,设备和handler之间是如何建立联系的,一个输入事件是如何响应的。 《韦东山Linux视频第2期_从
阅读全文
摘要:如何向模块传递参数,Linux kernel 提供了一个简单的框架. 1. module_param(name, type, perm); name 既是用户看到的参数名,又是模块内接受参数的变量; type 表示参数的数据类型,是下列之一:byte, short, ushort, int, uin
阅读全文
摘要:1. IIC协议:<<um_s3c2440a_rev10.pdf>> p481 Figure 20-3. IIC-Bus Interface Data Format<<AT24C08_DataSheet.pdf>> Figure 1-12 Bus Timing and Device operatio
阅读全文
摘要:再思linux内核在中断路径内不能睡眠/调度的原因(2010) http://blog.csdn.net/maray/article/details/5770889 中的结论: Linux是以进程为调度单位的,调度器只看到进程内核栈,而看不到中断栈。在独立中断栈的模式下,如果linux内核在中断路径
阅读全文
摘要:中断处理程序、中断上下文中处理延时及一些函数的调用规则(调IIC中断驱动有感) http://blog.csdn.net/samantha_sun/article/details/6790492 1,中断处理程序中不能使用有睡眠功能的函数,如ioremap,kmalloc,msleep等,理由是中断
阅读全文
摘要:通常情况下,当一个给定的中断处理程序正在执行时,所有其他的中断都是打开的,所以这些不同中断线上的其他中断都能被处理,但当前中断总是被禁止的。将中断处理切为两个部分或两半。中断处理程序上半部(top half) 接收到一个中断,它就立即开始开始执行,但只做严格时限的工作,这些工作都是在所有中断被禁止的
阅读全文
摘要:linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id=4923447 如: 一、直接确定发生错误的函数 看到这句 “PC is at segment_test_open+
阅读全文
摘要:概述: register_chrdev与unregister_chrdev配对使用;/*register_chrdev = __register_chrdev_region (一次性256个子设备,这种固定模式不太好,不能比256更多子设备,所以后来开始废除这种模式)+ cdev_add*//* u
阅读全文
摘要:Linux DM9000网卡驱动程序完全分析 http://blog.csdn.net/ypoflyer/article/details/6209922
阅读全文
摘要:linux cdev详解http://blog.chinaunix.net/uid-24517893-id-161446.html用cdev_add添加字符设备驱动://linux2.6中用cdev_add添加字符设备驱动//传统的是直接使用register_chrdev//新的方式,驱动初始化写起...
阅读全文
摘要:本例中,驱动入口处,使用cdev_add添加驱动,这点也可与字符设备驱动0:一个简单但完整的字符设备驱动程序对比一下。 另外主要讲xx_open实现文件私有数据指向设备结构体。 引子: 偶然看到,在jz2440韦东山写的一个led驱动中,open函数仅对硬件做了初始化(每次open之后默认打开led
阅读全文
摘要:不使用mknod,在驱动代码里自动生成设备号: 1.在内核驱动中用class_create,device_create两个函数,内核启动后就会在sysfs文件系统中建立相应的设备信息,记得把sysfs文件系统挂载到/sys,为下一步做准备 2.去官网下载udev,编译生成udevd,udevstar...
阅读全文
摘要:参考: 对应的led应用程序:
阅读全文
摘要:#define GPIO_OFT(x) ((x) - 0x56000000)#define GPFCON (*(volatile unsigned long *)(gpio_va + GPIO_OFT(0x56000050)))static int s3c24xx_leds_open(struct...
阅读全文
摘要:概要:cdev_add时分配设备号不足的错误示范unregister_chrdev_region没有完全注销设备 相关错误现象: error, can't open /dev/led1 insmod: cannot insert '/module/myleds_new.ko': Fil...
阅读全文