linux驱动学习
gdliweibing
这个作者很懒,什么都没留下…
展开
-
4-3 等待队列与poll驱动实例讲解(3个实例要好好看看)
4-3 等待队列与poll驱动实例讲解(3个实例要好好看看) 内容待续……原创 2013-07-11 15:17:50 · 736 阅读 · 0 评论 -
3-2信号量驱动实例
实例一:没有信号量的程序1、 nosem\driver\ nosem.c驱动源代码#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-07-05 12:07:39 · 584 阅读 · 0 评论 -
2-6案列分析: memdev虚拟内存设备驱动
2-6案列分析: memdev虚拟内存设备驱动1、memdev虚拟内存字符设备:在驱动中分配一片指定大小的内存空间,作为虚拟字符设备。并在驱动中提供只对该片内存的读写、控制和定位函数seek,以供用户空间的进程能通过Linux系统调用访问这片内存实例一:2、测试源代码: 2.1 globalmem_test.c代码#include #include int main(){ F转载 2013-07-03 17:36:41 · 1559 阅读 · 0 评论 -
Linux Platform Device and Driver(以I2C为例)
作者 : YiLi Xie yili.xie@gmail.com日期 : 2010-1-13欢迎转载,请注明出处 从Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Platform_driver 。Linux中大部分的设备驱动,都可以使用这套机制 , 设备用 Platform_device表示转载 2013-07-18 17:22:51 · 2022 阅读 · 0 评论 -
2-4 LED驱动实例
2-4 LED驱动实例1、实现LED驱动测试案例及要求:led_test on //对应四个LED全亮led_test off // 对应四个LED全灭led_test run // 运行跑马灯实验led_test shine //4个LED灯全灭、全亮交替闪烁 led_test 1 on //对应LED1点亮led_test 1 off /转载 2013-07-03 08:47:08 · 1968 阅读 · 0 评论 -
2-1、2-2字符设备驱动基本结构
申嵌Linux驱动开发基础班2-1字符设备驱动开发1 2-1字符设备驱动程序基本结构字符设备开发的基本步骤1、确定主设备号和次设备号2、实现字符驱动程序实现file_operations结构体实现初始化函数,注册字符设备实现销毁函数,释放字符设备实现字符设备其他基本成员函数 3、创建设备文件节点相关知识点:一、设备号的概念和分配、释放:1、转载 2013-07-01 11:41:03 · 840 阅读 · 0 评论 -
2-3 BEEP 驱动程序开发(包含驱动和测试程序)
1、电路图 2、Linux-2.6.32.2内核重要头文件目录:linux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/regs-gpio.hlinux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/gpio-nrs.hlinux-2.6. 32.2/arch/arm/plat-s3c2转载 2013-07-01 22:01:41 · 3003 阅读 · 0 评论 -
1-2:hello World、带传入参数的Hello World模块程序设计(编译、加载、查看、卸载驱动练习)
申嵌Linux驱动开发基础班1-2 Linux模块加载实验演示编译、加载、查看、卸载驱动 在所有操作之前,把E:\S8\【申嵌视频】嵌入式Linux驱动开发基础班\src中的hello这个文件夹拷在linux中的/home/lwb/drive目录下一、不带参数的驱动。1、 进入hello这个文件夹,该目录下有hello.c和Makefile两个文件。2、 #make原创 2013-06-30 22:51:50 · 1051 阅读 · 0 评论 -
5-4 基于内核定时器的按键驱动实例
5-4 基于内核定时器的按键驱动实例1、驱动程序1.1驱动代码\polling_key\completion\driver\poll_key_drv.c#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-13 09:19:28 · 896 阅读 · 0 评论 -
5-5 Linux内存、IO与实例
5-5 Linux内存、IO与实例讲解什么是物理地址什么是虚拟地址物理地址与虚拟地址的关系 Linux内存分配的常用方法及区别I/O端口和I/O内存访问流程 地址类型物理地址和页内存映射和页结构页表 1、用户虚拟地址(2^32) 1.1用户空间程序所有能看到的常规地址 1.2每个进程都有自己的虚拟空间2、物理地址:该地址在原创 2013-07-13 11:15:10 · 1654 阅读 · 0 评论 -
6-1 misc设备驱动开发与实例
6-1 misc设备驱动开发与实例1、实例1.1驱动程序 (1)驱动源代码\beep_misc\driver\beep_misc.c: #include #include #include #include #include #include #include #include #include #include #includ原创 2013-07-13 11:46:08 · 570 阅读 · 0 评论 -
5-2基于中断的按键驱动实例
基于中断的按键驱动实例1、电路图如下:2、驱动程序2.1驱动源代码int_key\completion\driver\int_key_drv.c#include #include #include #include #include #include #include #include #include #include #include原创 2013-07-12 15:10:57 · 903 阅读 · 0 评论 -
4-1阻塞型IO
阻塞型IO主要内容有:进程睡眠和唤醒方法阻塞型I/O的实现方法Select系统调用的实现方法 1、 休眠的意义从调度器的运行队列à某个等待队列直到等到某个事件发生,在从等待队列返回到运行队列。2、 如何将进程安全地进入休眠状态 不能再原子上下文进行休眠 休眠时,对外界一无所知,进程必修重新检测等待条件 进程只有确保原创 2013-07-11 15:10:50 · 697 阅读 · 0 评论 -
4-2非阻塞型IO
4-2非阻塞型IO1、阻塞方式是文件读写操作的默认方式,但应用程序员可通过使用O_NONBLOCK标志来人为的设置读写操作为非阻塞方式(该标志定义在中,在打开文件时指定)。2、如果设置了O_NONBLOCK标志,read和write的行为是不相同的。如果进程在没有数据就绪时,调用了read,或者在缓冲区没有空间时调用了write,系统只是简单地返回-EAGAIN,而不会阻塞进程。3原创 2013-07-11 15:15:55 · 697 阅读 · 0 评论 -
5-1 Linux内核中断机制(中断的申请和释放、中断低半部tasklet队列和workqueue队列、中断共享的实现)
5-1 Linux内核中断机制 中断处理流程 中断源 设备驱动中中断处理例程的实现。内核中实现计时、延时操作的函数。1、 什么是中断?2、 中断的分类:2.1按中断源分类:内部中断、外部中断2.2按中断是否可屏蔽分类:可屏蔽中断、不可屏蔽中断(NMI)2.3按中断入口跳转方法的不同分类:向量中断、非向量中断。3、申请和释放IRQ原创 2013-07-11 17:35:06 · 1442 阅读 · 0 评论 -
3-1并发与竞态控制
防止竞态的机制有:semaphore(信号量),spinlock(自旋锁),completion(完成量),原子操作等原子操作的意义:操作的不可分割。 1、 什么是并发?1.1多个执行单元同时、并行被执行。1.2竞态:1.2.1并发的执行单元对共享资源的访问则很容易导致竞态。1.2.2 共享资源:硬件资源,软件上的全局变量、静态变量等。2、linux内核中,什原创 2013-07-05 11:32:09 · 814 阅读 · 0 评论