自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

转载 HP大中华区总裁孙振耀撰文谈退休并畅谈人生

<br />   我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不能很早理解这一点,把自己的成功 90%归功于自己的能力,实际上,外企公司随便换个中国区总经理并不会给业绩带来什么了不

2011-03-02 17:56:00 782

转载 platform设备驱动全透析

来自于:shttp://21cnbao.blog.51cto.com/109393/3376091.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,S

2011-03-01 11:14:00 563

转载 如何在嵌入式LINUX中增加自己的设备驱动程序

 http://linux.chinaunix.net/bbs/thread-138124-1-2.html<br /><br />驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于 uClinux不支持模块动态加载,而且嵌入式LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。<br />下面以UCLINUX为例,介绍在一个以模块方式出现的驱动程序test.c

2011-03-01 10:13:00 559

转载 Linux主机驱动与外设驱动分离思想

- by 宋宝华(Barry Song) 1主机、外设驱动分离的意义<br />在Linux设备驱动框架的设计中,除了有分层设计实现以外,还有分隔的思想。举一个简单的例子,假设我们要通过SPI总线访问某外设,在这个访问过程中,要通过操作CPU XXX上的SPI控制器的寄存器来达到访问SPI外设YYY的目的,最简单的方法是:<br />return_type xxx_write_spi_yyy(...)<br />{<br />xxx_write_spi_host_ctrl_reg(ctrl);<br /

2011-03-01 10:09:00 604

转载 等待队列学习笔记(转载)

<br />一、定义:<br />/include/linux/wait.h<br /> <br />struct __wait_queue_head { <br />spinlock_t lock; <br />struct list_head task_list; <br />}; <br />typedef struct __wait_queue_head wait_queue_head_t;<br />二、作用:<br />在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合。

2011-02-28 15:07:00 461

转载 输入子系统框架分析(转载)

来自于http://hi.baidu.com/liulife/blog/item/87caa863a01894650d33fa62.html1 输入子系统架构Overview输入子系统(Input Subsystem)的架构如下图所示输入子系统由 输入子系统核心层( Input Core ),驱动层和事件处理层(Event Handler)三部份组成。一个输入事件,如鼠标移动,键盘按键按下,joystick的移动等等通过 Driver -> InputCore -> Eventhandler -> user

2011-02-28 07:48:00 694

转载 输入子系统--event层分析(转载)

出自于http://hi.baidu.com/%CB%AE%B2%DD%CB%E0/blog/item/5b4b2ef708cbcf29bc3109c2.htmls#####################################################################################################<br />早前曾研究了一下输入子系统的原理,给人的感觉是输入子系统很复杂.但其实内核开发者在这方面已经做得很完善了,<br />输入子系统虽然错

2011-02-27 23:42:00 531

转载 内核定时器(2.6.23)

<br />一、定义:<br />/include/linux/timer.h<br /> <br />struct timer_list {<br />struct list_head entry;<br />unsigned long expires;<br />void (*function)(unsigned long);<br />unsigned long data;<br />struct tvec_t_base_s *base;<br />#ifdef CONFIG_TIMER_STATS<

2011-02-27 21:54:00 544

转载 probe何时执行(转载)

<br />【整理】Linux驱动中,probe函数何时被调用<br /><br />声明:以下主要内容参考自:<br />关于struct device_driver结构中的probe探测函数的调用<br />http://blog.chinaunix.net/u2/71164/showart.php?id=1361188<br /><br />用SourceInsight跟踪:<br />从driver_register看起,此处我的这里是:<br />int driver_register(struc

2011-02-27 21:09:00 694

转载 内核初始化优化宏(转载)

<br />内核使用了大量不同的宏来标记具有不同作用的函数和数据结构。如宏__init、__devinit等。这些宏在<br />include/linux/init.h头文件中定义。编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存<br />占用和提高内核效率。<br />下面是一些常用的宏:<br />· __init,标记内核启动时使用的初始化代码,内核启动完成后不再需要。以此标记的代码位<br />于.init.text内存区域。它的宏定义是这样的:<br />· #define _ _

2011-02-27 20:33:00 622

转载 platform_device 和 platform_driver 驱动管理(转载)

从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源

2011-02-27 20:03:00 770

转载 Linux驱动之input子系统浅析(转载)

<br />一,前言: <br />1, 近日要写一个很特殊的键盘驱动,故对linux的input子系统分析了一番,写下分析笔记,以防不日即忘。<br /> <br />2, 使用input子系统的一般流程为:input_allocate_device()申请一个input_dev设备——>初始化该input_dev——>input_register_device()向子系统注册该设备——>中断时input_event()向子系统报告事件。此流程一目了然,即使不看input子系统,我们按照它给出的一般流程也

2011-02-27 15:41:00 566

转载 platform_device和platform_driver(转载)

<br />首先介绍一下注册一个驱动的步骤:<br />1、定义一个platform_driver结构<br />2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量<br />3、实现其probe、remove等函数<br />看platform_driver结构,定义于include/linux/platform_device.h文件中:<br />struct platform_driver {<br />int (*probe)(struct platform_d

2011-02-27 13:32:00 474

转载 详解Linux2.6内核中基于platform机制的驱动模型

<br />【摘要】本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platform总线的驱动开发流程。<br />【关键字】platform_bus, platform_device, resource

2011-02-27 10:57:00 597

转载 linux驱动开发流程(转帖)

基于操作系统的驱动就是在无操作系统下的硬件接口函数加上操作系统外套实现一个嵌入式Linux设备驱动程序的大致流程如下:(l)查看原理图,理解设备的工作原理。(2)定义主设备号。设备由一个主设备号和一个次设备号来标识。主设备号唯一标识了设备类型,即设备驱动程序类型,它是块设备表或字符设备表中设备表项的索引。次设备号仅由设备驱动程序解释,区分被一个设备驱动控制下的某个独立的设备。(3)实现初始化函数。在驱动程序中实现驱动的注册和卸载。(4)设计所要实现的文件操作,定义file--operations结构。(5)

2011-02-27 10:49:00 558

转载 i2c-adapter的注册过程(应用函数)

<br />i2c-s3c2410.c<br />======================<br />module_init(12c_adap_s2c_init)<br />module_init申明函数<br />static int __init i2c_adap_s3c_init(void)<br />{<br />int ret;<br />ret = platform_driver_register(&s3c2410_i2c_driver);<br />if (ret == 0) {<br /

2011-02-27 09:32:00 578

转载 select函数的学习(转载)

<br /><br /><br />select系统调用是用来让我们的程序监视多个文件描述符(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件描述符有某一个或多个发生了状态改变。select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件描述符(不管是Socket描述符,还是其他文件或命名管道或设备描述符)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fd_set的内

2011-02-25 15:40:00 565

转载 omap3 linux中的中断(转载自阿炳哥)

<br />内部中断定义在/arch/arm/plat-omap/include/mach/irqs.h中,如:<br />#define INT_34XX_BENCH_MPU_EMUL 3<br />#define INT_34XX_ST_MCBSP2_IRQ 4<br />#define INT_34XX_ST_MCBSP3_IRQ 5<br />#define INT_34XX_SSM_ABORT_IRQ 6<br />#define INT_34XX_SYS_NIRQ 7<br />#define

2011-02-24 20:49:00 2612 1

原创 Omap3530 的GPIO中断设置

Omap3530 的GPIO中断设置:1.配置成GPIO,申请GPIO中断omap_cfg_reg(OMAP3_KBD_GPIO);配置成gpioif (gpio_request(OMAP3_KBD_GPIO, "kbd7279 IRQ") printk(KERN_ERR "Failed to request GPIO%d for kbd IRQ/n");//申请GPIO为中断引脚。2. 设置中断触发模式set_irq_type(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO),IRQ_TYPE_

2011-02-24 16:14:00 2762 2

原创 platform设备驱动全透析(转载)

1.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每 注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然

2011-01-20 09:28:00 668

原创 container_of 理解(转载)

问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr: the pointer to the member.* @type: the type of t

2011-01-20 00:47:00 435

原创 Linux driver model ----- platform(转载)

Linux driver model ----- platform 收藏 作者 : YiLi Xie [email protected] 日期 : 2010-1-25 欢迎转载,请注明出处Platform Device and Drivers 从我们可以了解Platform bus上面的驱动模型接口:platform_device,platform_driver。和PCI和USB

2011-01-20 00:37:00 488

原创 驱动的注册过程和设备的注册过程(转载)

作者:Dongas日期:08-06-28platform_device_register()注册过程------------------------------------/* arch/arm/mach-s3c2410/mach-smdk2410.c */struct platform_device s3c_device_i2c = {         .name    

2011-01-19 17:16:00 699

原创 什么是线路规程?

今天在看串口驱动的时候遇到了一个概念线路规程,以前只知道规则,程序之类的这个概念还是头次听说,既然碰上了就好好研究一番:百度百科给出了定义:规程,简单说就是“规则+流程”。所谓流程即为实现特定目标而采取的一系列前后相继的行动组合,也即多个活动组成的工作程序。规则则是工作的要求、规定、标准和制度等。因此规程可以定义为:将工作程序贯穿一定的标准、要求和规定。说的太文邹邹的,那么它是什么?具体的

2011-01-19 16:22:00 2967

原创 Linux设备模型之tty驱动架构分析(转载)

2011-01-19 14:25:00 1209

原创 [转]linux设备模型之uart驱动架构分析(开始做驱动!!)

2011-01-19 14:19:00 617

原创 信号和槽之间的传递参数

信号与槽的连接方式有三种1、Qt::DirectConnection2、Qt::QueuedConnection3、还有一种是缺省模式,线程间用QueuedConnection,线程内为DirectConnection这里主要说一下信号传递的参数,用Qt::QueuedConnection模式的话,信号与槽之间的参数就有可能需要转存了,局部变量是直接copy的局部数组不能直接传

2011-01-04 21:22:00 2474

原创 Qt singal 机制与调试错误技术(转载)

QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上。QT支持下列平台:MS/Windows-95、98、NT和2000;Unix/X11-Linux、Sun Solaris、HP-UX、Digital Unix、IBM AIX、SGI IRIX;EMBE

2011-01-02 12:22:00 6247 3

原创 qt从根本设计上是采用面向对象思想的(转载学习)

qt从根本设计上是采用面向对象思想的,无论你用这个方式来做什么,都是非常危险而不易维护的,建议:1、采用一个对象MyObject来装载你的数据,而后用signal-slot传递该对象2、使用qt提供的集合类,如QList,QVector,QMap,QHash等,而不是使用二维数组,对二维数组的下标操作不予限制是非常危险的在信号与槽的链接中从根本上就不应该关心参数的具体内容,也不应该有关

2011-01-02 07:50:00 2882 1

原创 QT 信号与槽的参数转存(转载)

信号与槽的连接有Qt::DirectConnection, Qt::QueuedConnection等模式,用Qt::QueuedConnection模式的话,信号与槽之间的参数就有可能需要转存了。例如:typedef struct my_type{   QString q_str;    int i;}MY_TYPE;signals: signal_method(

2011-01-02 07:33:00 7636 1

原创 Qt子线程的“信号队列”(转载)

对Qt的多线程编程没有深究,只了解了基本的用法,够我用就行了。之所以写这篇文章是因为前几天遇到一个疑问:如果其他几个线程同时向一个线程发signal,而这个线程没有自己的事件循环,那是不是会丢失signal呢?下面是我总结的两种子线程的工作方式1.让子线程进入事件循环,这样的话多余的signal就会进入该线程的事件队列,不会丢失。问题是这时子线程的槽函数都是在该子线程对

2011-01-01 08:46:00 5112 1

原创 QT线程共享数据(转载)

Qt线程间共享数据主要有两种方式: •使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的; •使用singal/slot机制,把数据从一个线程传递到另外一个线程。 第一种办法在各个编程语言都使用普遍,而第二种方式倒是QT的特有方式,下面主要学习一下这种方式: 在线程之间传递signal与在一个线程内传递sign

2010-12-31 18:05:00 1487

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除