随笔分类 -  linux设备驱动

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

下载TeamViewer完整版 下载TeamViewer
点击右上角即可分享
微信分享提示