smdkv210驱动编程
文章平均质量分 77
佐哥无聊
年轻就给我往死里学
展开
-
3.并发和竞争
一.概念1.信号量本质上是一个整数值,2.Linux内核中几乎所有的信号量均用于互斥。当信号量用于互斥,只能由单个进程或线程拥有。Linux内核中几乎所有的信号量均用于互斥。3.一个自旋锁是一个互斥设备,只有两个值:“锁定”和“解锁”。如果锁被其他人获得,则代码进入忙循环并重复检查这个锁,直到该锁可用为止。这个循环就是自旋锁的“自旋”。4.自旋锁用于原创 2016-04-18 09:54:12 · 660 阅读 · 0 评论 -
7.内存和IO
内存浅谈:器件物理地址由对应CPU地址线确定的。内核通过内存机制,创造4G虚拟地址,驱动编程用的地址都是虚拟地址,没有实际意义,使用这些地址之前必须对应物理地址(页表),否则出现缺页。避免缺页,第一种方法:用kmalloc申请物理地址(返回物理存储器地址,sdram等地址)。第二种方法:用ioremap指定具体物理空间里面的地址,任何器件物理地址。不局限于存储器地址,而且可以是寄存器地原创 2016-04-21 11:09:27 · 334 阅读 · 0 评论 -
6.时钟
一.概念1.从功能方面时钟分三种:计时,延时,定时器。2.内核时钟:内核通过定时器(timer)中断来跟踪时间流,硬件定时器以周期性的间隔产生中断,这个时间间隔通常取1ms到10ms。3.jiffies计算器:每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计数。驱动程序开发者通常访问的是jiffies变量,它是jiffies_64的低32位。ji原创 2016-04-19 21:53:22 · 371 阅读 · 0 评论 -
添加LCD背光驱动
一.材料老师给的模板kernel自己实现的2.0kernel.机器ID7777二.常用概念LCD驱动属于platform类型的设备。只要是platform类型的设备就需要注册device和注册移植driver.由于LCD硬件的特殊性,我们需要设置屏幕硬件相关的数据结构。三.移植LCD驱动a.首先lcd的device需要传参数给driver在arch/原创 2016-04-24 17:36:12 · 695 阅读 · 0 评论 -
platform简述
一.platform总线、设备、驱动关系。 首先在2.6的驱动模型里面,关心总线、设备、驱动,总线将设备和驱动绑定。在系统每注册一个设备时,会通过总线寻找对应的驱动。在系统每注册一个驱动时,会通过总线寻找对应的设备。下面我们来了解设备和驱动的注册过程。二.bus、device、driver数据结构 在了解注册之前,我觉得有必要介绍一下这三者的数据结构,因为dtst是原创 2016-05-03 17:57:32 · 646 阅读 · 0 评论 -
platform
转载:http://www.linuxidc.com/Linux/2012-12/76196.htm一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini2440开发板,运用Platform和device_attribute机制转载 2016-05-03 17:52:51 · 539 阅读 · 0 评论 -
2.字符设备驱动
一.字符设备开发的基本步骤 1.确定主设备号和次设备号 2.实现初始化函数,注册字符设备 3.实现字符驱动程序 4.实现file_operations结构体 5.实现销毁函数,释放字符设备 6.创建设备文件节点二.常用概念1.主设备号是内核识别一个设备的标识。整数(占12bits),范围从0到4095,通常使用1到2552.次设备号由内核使用,用原创 2016-04-13 16:52:48 · 243 阅读 · 0 评论 -
1.设备驱动基础
一.驱动程序编程概念:1.驱动学习知识结构: 1.linux驱动设计模式,框架.(40%) 2.内核相关的知识.(30%) 3.硬件相关的知识.(30%)把更多的硬件相关的程序放入内核。2.驱动程序的分类: 1.字符设备驱动:能以字节来访问。通过字符设备文件访问块驱动程序。 2.网络接口:一个网络负责发送和接受数据报文。通过套接字访原创 2016-04-13 16:49:19 · 250 阅读 · 0 评论 -
Linux进程的睡眠和唤醒简析
转载自:http://www.2cto.com/os/201204/127771.html1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状 态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运转载 2016-04-16 14:53:28 · 261 阅读 · 0 评论 -
4.阻塞和非阻塞
一.概念1.等待队列头相当于一个双向链表的头,等待队列相当于双向列表中的链表项2.等待队列由循环链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait queue head)3.当一个任务需要在某个wait_queue_head上睡眠时,将自己的进程控制块信息封装到wait_queue中,然后挂载到wait_queue的链表中,执行调度睡眠。当某些事件发生后原创 2016-04-18 11:41:58 · 352 阅读 · 1 评论