- 博客(19)
- 资源 (24)
- 问答 (1)
- 收藏
- 关注
原创 linux驱动入门之LCD驱动
硬件环境:tq2440 4.3 LCD 软件环境:Fedora17 arm-linux-gcc-4.3.2内核版本:2.6.39以韦东山老师视频为基础,加入自己的实践1.基础知识(转载,原作者不详,感谢先):1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会
2015-11-30 17:38:48 1569 2
原创 I2C总线简介
I2C总线简介1.概述:I²C是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee", 它是一种两线接口。I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPRO
2015-11-28 17:39:04 491
原创 使用/proc 调试
2015年 11月 25日 星期三 13:43:12 CST=============================================================================使用/proc在linux系统中,/proc文件系统它被用于内核向用户导出信息。/proc文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在linux内核空
2015-11-27 14:11:00 803
原创 编译驱动到内核的两种方式
编译驱动模块有两种方法可以编译自己写的驱动程序。第一种方法:直接加入内核1. 将驱动程序放入内核相应的驱动文件夹,例如名字为my_led.c2. 修改此驱动目录下的Kconfig文件,加入对该驱动文件的配置选项:config MY_LEDbool "S3C2410 LED Driver"depens on ARCH_S3C2410helpLED driver for...
2015-11-23 17:35:49 6120
原创 PWM控制蜂鸣器驱动详细概念及代码
一、S3C2440PWM定时器概述PWM ( Pulse Width Modulation ) —— 脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域 。S3C2440A 有5个16位定时器。其中定时器 0、1、2 和3具有脉宽调制(PWM)功能。定时器 4 是一个无输出引脚的内部定时器。定时器0还包含用于大电
2015-11-23 16:17:36 9779
原创 编写Linux标准的PWM驱动
编写Linux标准的PWM驱动,需要定义一个结构体 struct pwm_device ,实现五个个PWM函数(include/linux/pwm.h),如下所示:structpwm_device; /**pwm_request-requestaPWMdevice*/structpwm_device*pwm_request(int
2015-11-23 15:25:13 4378
原创 linux设备模型之总线,设备,驱动模型
驱动模型:为了方便维护设备和驱动,内核抽象出三个类:总线 struct bus_type;设备 struct device;驱动 struct device_driver;这里的总线是抽象的该念总线,逻辑层面的,只是为了管理匹配向内核注册并和总线关联的设备和驱动的,匹配规则决定于总线。-----------------------------------
2015-11-23 10:36:20 531
原创 以杂项设备驱动的方法注册字符设备驱动
以杂项设备驱动的方法注册字符设备驱动涉及头文件: #include 一个杂项设备对应的结构类型:struct miscdevice { int minor; //次设备号 const char *name; //设备名称 const struct file_operations *fops; //驱动函数集
2015-11-23 10:31:06 438
原创 在驱动中定义中断
1. 中断 涉及头文件: #include 中断的注册 int request_irq( unsigned int irq, irq_handler_t handler,
2015-11-23 10:23:13 715
原创 内核定时器:
内核定时器: 未来的某个时间点执行提前设置的某个任务函数。 涉及到的核心头文件: #include 涉及到的结构体: struct timer_list { /* * All fields that change during normal runtime grouped to the * same cacheline */
2015-11-21 18:14:03 510
原创 并发和竞态
app:互斥量:pthread_mutex_t mutex;pthread_mutex_init(&mutex, NULL);pthread_mutex_lock(&mutex);pthread_mutex_trylock(&mutex);pthread_mutex_unlock(&mutex);自旋锁:pthread_spin_t spin;p
2015-11-21 18:11:29 457
原创 利用linux 内核所提供的input子系统编写字符设备驱动的步骤
利用linux 内核所提供的input子系统编写字符设备驱动的步骤:包含头文件:#include 涉及核心接口体:struct input_dev { ......... unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; //用于描述设备所产生数据的事件分类 unsigned long keybit[BITS_TO_
2015-11-21 18:10:41 915
原创 驱动模型
驱动模型:为了方便维护设备和驱动,内核抽象出三个类:总线 struct bus_type;设备 struct device;驱动 struct device_driver;这里的总线是抽象的该念总线,逻辑层面的,只是为了管理匹配向内核注册并和总线关联的设备和驱动的,匹配规则决定于总线。-----------------------------------
2015-11-21 18:09:54 525
原创 基于 platform 总线的设备驱动编写模式:
基于 platform 总线的设备驱动编写模式:platform总线是内核注册好的用于管理设备及驱动的一种模式。其总线对应的类型即使,struct bus_type.总线实现好了匹配规则,内核对于往platform总线上注册的设备及驱动对应的类型做了抽象。platform总线上要注册的设备类:struct platform_device {cons
2015-11-21 18:08:59 1136
原创 中断
软件中断、硬件中断及其相关概念中断中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,再返回被中断程序的间断处,继续执行原程序。 硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);
2015-11-21 16:41:50 1527
原创 字符设备驱动编写方法
字符设备驱动编写方法1.标准字符设备驱动 a.注册设备号 如 if(key_major) /*静态注册*/ err = register_chrdev_region(devno, 1, DEVICE_NAME); else { /*动态注册*/ err = alloc_chrdev_region(&devno
2015-11-21 15:07:46 418
原创 输入设备驱动之按键设备驱动_笔记
利用linux 内核所提供的input子系统编写字符设备驱动的步骤:包含头文件:#include 涉及核心接口体:struct input_dev { ......... unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; //用于描述设备所产生数据的事件分类 unsigned long ke
2015-11-19 15:54:48 617
原创 输入设备驱动之按键设备驱动
Linux输入子系统就是一个基于分层模式的系统,其基本的层次分解如下图所示。 在图中我们可以发现输入子系统主要包括三个部分设备驱动层(input driver)、核心层(input core)和输入事件驱动层。输入子系统的划分使得输入设备的驱动程序设计越来越简单,但是其中的思想采用我们学习的重点和难点。Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子
2015-11-19 14:34:14 620
原创 Linux设备驱动之字符设备驱动
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。每一个字符设备或块设备都在/
2015-11-19 13:55:51 362
树莓派下编译seafile文档
2018-05-14
IT职业发展路径
2018-04-28
安卓组建库
2016-01-18
set_bit函数的参数为BTN_0时是起到什么作用的,set_bit都有哪些参数,谢谢
2015-11-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人