
Linux驱动开发
wuhuan_001
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
个人对kobject的一点研究
在LINUX中最让人不解的大概就是/sys下面的内容了 下面首先让我们来创建一个简单的platform设备,并从这个设备的视角进行深入,在此篇文章的深入过程中,我们只看kobeject的模型 我所使用的内核版本号为2.6.26,操作系统的内核版本号为2.6.27-7,暂未发现2.6.27-7与2.6.26的重大不同 首先写一个简单的模块 #include linux/platf转载 2011-11-05 21:37:00 · 431 阅读 · 0 评论 -
Linux串口(serial、uart)驱动程序设计
一、核心数据结构 串口驱动有3个核心数据结构,它们都定义在 1、uart_driver uart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。 struct uart_driver { struct module *owner;转载 2013-12-29 21:56:23 · 519 阅读 · 0 评论 -
Linux内核打印函数printk的使用说明 .
printk函数 We used the printk function in earlier chapters with the simplifying assumption that it works like printf. Now it's time to introduce some of the differences. 我们在前面章节中简转载 2012-12-12 21:46:21 · 883 阅读 · 0 评论 -
驱动程序调试方法之printk——printk的原理与直接使用
1、基本原理 (1)在UBOOT里设置console=ttySAC0或者console=tty1 这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd (2)内核用printk打印 内核就会根据命令行参数来找到对应的硬件操作函数,并将信息通过对应的硬件终端打印出来! 2、printk的使用 (1)printk函数的信息如何才能在终端显示出来 在内核代码inc转载 2012-12-12 21:55:31 · 842 阅读 · 0 评论 -
gdb 自定义函数使用
#include stdio.h> #include stdlib.h> typedef struct node{ int val; struct node * next; }node_list_t; typedef node_list_t* pnode_list_t; typedef node_list_t** ppnode_list_t; v转载 2012-12-11 22:59:43 · 3207 阅读 · 0 评论 -
关于linux中DBG宏定义的使用总结
#ifdef DEBUG #define DBG(...) fprintf(stderr, " DBG(%s, %s(), %d): ", __FILE__, __FUNCTION__, __LINE__); fprintf(stderr, __VA_ARGS__) #else #define DBG(...) #endif int main()转载 2012-12-11 23:00:29 · 958 阅读 · 0 评论 -
platform_device和platform_driver
摘自:http://blog.csdn.net/vrix/article/details/4300730 首先介绍一下注册一个驱动的步骤: 1、定义一个platform_driver结构 2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量 3、实现其probe、remove等函数 看platform_driver结构,定义于include/lin转载 2012-12-10 23:09:39 · 286 阅读 · 0 评论 -
工作队列
摘自:http://oss.org.cn/kernel-book/ldd3/ch07s06.html 工作队列是, 表面上看, 类似于 taskets; 它们允许内核代码来请求在将来某个时间调用一个函数. 但是, 有几个显著的不同在这 2 个之间, 包括: tasklet 在软件中断上下文中运行的结果是所有的 tasklet 代码必须是原子的. 相反, 工作队列函数在一个特殊内转载 2012-12-10 23:02:21 · 497 阅读 · 0 评论 -
linux下I2C驱动分析
这几篇文章来分析下linux2.6下I2C驱动的写法,对个人也是一个学习的过程。 在linux系统下,i2c驱动架构分为三个部分:I2C核心、I2C总线驱动、I2C设备驱动,下面首先从设备驱动怎么写开始,主要是分析内核中的代码。本文中分析的内核代码是基于LINUX2.6.19版本。 首先看一个以前做过的I2C驱动。下面是一个设备驱动的模块加载和卸载函数。转载 2012-12-08 14:55:31 · 491 阅读 · 0 评论 -
Linux下SPI驱动分析
Linux下SPI总线驱动有通用接口,一般的SPI设备驱动使用这个驱动接口实现设备驱动。分析驱动最好是先了解核心代码,然后从具体设备分析入手,然后从下至上,了解整个框架,再从上到下分析,理解透彻。 以下分析内核根目录均以"src"代替。内核代码http://lxr.linux.no/,版本2.6.37.2。 SPI的核心代码即 "src/drivers/spi/spi.c"——SPI 初始化转载 2012-11-04 14:15:05 · 820 阅读 · 0 评论 -
LINUX 2440-GPIO操作 .
友善之臂的《mini2440 linux移植开发指南》来做个LED驱动,虽然LED的原理简单得不能再简单了,但是要把kernel中针对于s3c24**的GPIO的一些数据结构,还有函数搞清楚也不是那么轻松的事,所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的定义,并对驱动加以验证 ***********************************************转载 2012-11-04 13:43:23 · 376 阅读 · 0 评论 -
S3C2440上 MMC/SD卡驱动实例开发讲解 .
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能 给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。 一、开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2转载 2012-11-04 13:54:21 · 566 阅读 · 0 评论 -
Kobject相关
作者:李强,华清远见嵌入式学院讲师。 kobjec是linux在2.6中新引进的统一的设备管理模型,他的主要目的就是对linux的2.6系统所有的设备进行统一的管理,在以前的内核中并没有独立的数据结构让内核对整体的系统做配置和管理。尽管缺乏此类的信息,但是很多时候系统还是能正常工作,然后随着设备越来越多,系统越来越复杂,以及需要支持更多诸如电源管理等新的特征需要,新的内核版本明确提出了需要统一管转载 2011-11-06 23:14:31 · 432 阅读 · 0 评论 -
Linux Platform Device and Driver,platform_add_devices()->platform_driver_register()
从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。 Linux 中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device 表示,驱动用 Platform_driver 进行注册。 Linux platform driver 机制和传统的 device dr转载 2011-11-06 23:09:16 · 339 阅读 · 0 评论 -
一些非常有用的内核网站
2.6內核的开发过程: http://linux.tar.bz/articles/2.6-development_process kenreltraffic, 有很多内核的资料,以及lkml的digestion http://www.kerneltraffic.org/kernel-traffic/index.html lkml的Web主页: http://lkml.org/转载 2014-08-12 00:15:42 · 2204 阅读 · 0 评论