![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动
sunxianchuan123
这个作者很懒,什么都没留下…
展开
-
Linux USB驱动框架分析
2009-05-21 16:47Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程转载 2012-07-13 11:00:26 · 1038 阅读 · 0 评论 -
MMC 驱动分析
分析//driver/mmc/host/davinci_mmc.cstatic int __init davinci_mmcsd_init(void) //注册一个平台驱动 return platform_driver_probe(&davinci_mmcsd_driver, davinci_mmcsd_probe); /* temporary section vi原创 2013-06-24 07:39:10 · 2983 阅读 · 0 评论 -
linux 内核几种锁
//内核锁学习内核锁有几种:第一种://这里 val 是安排给旗标的初始值.void sema_init(struct semaphore *sem, int val);//结果是一个旗标变量( 称为 name ), //初始化为 1 ( 使用 DECLARE_MUTEX ) 或者 0 (使用 DECLARE_MUTEX_LOCKED ). DECLARE_MUTEX(原创 2013-07-09 23:35:36 · 6494 阅读 · 0 评论 -
DEVICE_ATTR 和 sysfs 的东西(转)
说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__ATTR(_nam转载 2013-05-30 08:41:04 · 683 阅读 · 0 评论 -
Kernel 下队列详解
1. 前言工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法.以下代码的linux内核版本为2.6.19.2, 源代码文档主要为kernel/workqueue.c.2. 数据结构/* include/linux/workqueue.h */// 工作节点结构struct work_struct { // 等待时间 un原创 2013-05-18 23:46:56 · 851 阅读 · 0 评论 -
INIT_DELAYED_WORK 定时器中断函数的调用
定义全局变量:#ifdef TPD_ESD_PROTECT#define TPD_ESD_CHECK_CIRCLE 2000static struct delayed_work gsl_esd_check_work;static struct workqueue_struct *gsl_esd_check_workqueue = NULL;#endif初始化:#if原创 2013-02-25 19:14:11 · 6991 阅读 · 0 评论 -
idr 讲解
idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制.这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁.现在,在内核的很多地方都可以找到idr的身影.idr机制适用在那些需要把某个整数和特定指针关联在一起的地方.举个例子,在I2C总线中,每个设备都有自己的地址,要想在总线上找到特定的设备,就必须要先发送该转载 2013-01-14 14:23:11 · 1653 阅读 · 0 评论 -
Linux音频设备驱动
Linux音频设备驱动 (2012-02-23 10:03) 标签: Linux 音频 设备驱动 分类:学习心得 在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐转载 2012-11-07 07:21:01 · 1042 阅读 · 0 评论 -
nandflash学习经历
经过一段时间的奋斗, 终于对nandflash的框架有点了解!首先nandflash的框架: APP: open read write ---------------------------------------------------------------------- vfs: sys_open sys_read原创 2012-09-25 14:37:21 · 1095 阅读 · 0 评论 -
linux 内核dev_dbg打开
linux设备驱动调试,我们在内核中看到内核使用dev_dbg来控制输出信息,这个函数的实质是调用 printk(KERN_DEBUG )来输出打印信息。要打开这个开关需要下面两步。 1、打开调试开关:你调试的文件中必然包含了,或者《linux /paltforam_device.h》,后者包含了前者,在包含此头文件之前,使用#define DEBUG 1 来打开调试开关:例如转载 2012-08-15 16:24:10 · 1563 阅读 · 0 评论 -
关于linux驱动(应用)程序头文件使用
驱动程序:#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include 在linux-2.6.3转载 2012-07-30 16:49:57 · 1128 阅读 · 0 评论 -
LCD 应用程序
#includeunistd.h>#include #includefcntl.h>#include linux/fb.h>#include sys/mman.h>int main(){ int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo转载 2012-07-30 16:46:49 · 388 阅读 · 0 评论 -
request_mem_region 申请内存函数讲解
request_mem_region这里我们看到的那个 request_mem_region 是申请 I/O 内存用的 . 申请了之后 , 还需要使用 ioremap 或者 ioremap_nocache 函数来映射 .对于 request_region, 三个参数 start,n,name 表示你想使用从 start 开始的 size 为 n 的 I/O port 资源 ,name 自然就是原创 2012-08-14 22:54:40 · 662 阅读 · 0 评论 -
LCD 驱动分析
s3c2410_lcd & frame buffer 驱动分析int __init s3c2410fb_probe(struct device *dev){struct s3c2410fb_info *info;struct fb_info *fbinfo; struct platform_device *pdev = to_platform_device(dev);转载 2012-07-22 11:54:15 · 546 阅读 · 0 评论 -
Linux LCD 驱动程序
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb_set转载 2012-07-22 11:49:58 · 465 阅读 · 0 评论 -
S3C2440上LCD驱动(FrameBuffer)实例开发讲解
标签:内核 驱动 FrameBuffer休闲 职场一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应转载 2012-07-19 15:58:03 · 643 阅读 · 0 评论 -
ubuntu下sudo 失败
步骤一, 系统启动后进入 recory模式步骤二, (1) mount -o remount, rw / (2) chdmod 4755 /usr/lib/sudo/sudoers.so搞定!呵呵原创 2013-09-24 22:20:48 · 949 阅读 · 0 评论