2014年4月17日

globalfifo设备驱动

摘要: 把globalmem中的全局内存变成一个FIFO,只有当FIFO中有数据的时候(即有进程把数据写到这个FIFO而且没有被读进程读空),读进程才能把数据读出,而且读取后的数据会从globalmem的全局内存中被拿掉;只有当fifo非满时(即还有一些空间未被写,或写满后被读进程读出了数据),写进程才能写... 阅读全文

posted @ 2014-04-17 22:11 黑主优姬 阅读(940) 评论(0) 推荐(0) 编辑

Linux设备驱动中的异步通知与异步I/O

摘要: 异步通知概念: 异步通知的意识是,一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上的“中断”概念,比较准确的称谓是“信号驱动的异步IO”,信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求是一样的。信号是异步... 阅读全文

posted @ 2014-04-17 16:01 黑主优姬 阅读(827) 评论(0) 推荐(0) 编辑

2014年4月16日

ARM Linux字符设备驱动程序

摘要: 1、主设备号和次设备号(二者一起为设备号): 一个字符设备或块设备都有一个主设备号和一个次设备号。主设备号用来标识与设备文件相连的驱动程序,用来反 映设备类型。次设备号被驱动程序用来辨别操作的是哪个设备,用来区分同类型的设备。 linux内核中,设备号用dev_t来描述,2.6.28中定义如... 阅读全文

posted @ 2014-04-16 21:12 黑主优姬 阅读(1258) 评论(0) 推荐(0) 编辑

2014年3月22日

s3c2440时钟和定时器操作

摘要: MINI2440开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,也就是说CPU,内存,UART等需要用到时钟频率的硬件都工作12MHz下,而S3C2440A可以正常工作在400MHz下,两者速度相差可想而知,就好比牛车和动车。如果CPU工作在12MHz频率下,开发板的使用效率非常低,所有依赖系统时钟工作的硬件,其工作效率也很低,比如,我们电脑里面经常提到的超频,超频就是让CPU工作在更高的频率下,让电脑运算速度更快,虽然频率是越高越好,但是由于硬件特性决定了任何一个设备都不可能无止境的超频,电脑超频时要考虑到CPU或主板发热过大,烧坏的危险,同样开发板的主板上的外设和 阅读全文

posted @ 2014-03-22 16:03 黑主优姬 阅读(168) 评论(0) 推荐(0) 编辑

2014年3月20日

s3c2440串口裸板驱动(使用fifo)

摘要: 使用fifo的好处有:1:串口的数据发送的数据量较大时,使用fifo可以大大降低MCU的开销。(有点类似串入并出的cput处理模型,本质上还是串行收发) 2:在某些特殊场合,例如制定较复杂的协议时,可以使用fifo特性来做协议简化,比如一包数据包含8个字节,(并且fifo设置的长度为8),这样相当于... 阅读全文

posted @ 2014-03-20 12:11 黑主优姬 阅读(537) 评论(0) 推荐(0) 编辑

2014年3月18日

Linux内核结构分析与移植

摘要: Linux内核主要的5个部分是:进程调度,内存管理,虚拟文件系统,网络接口,进程通信。这5个部分之间的关系如下: (1)进程调度部分负责控制进程对CPU的访问。(2)内存管理允许多个进程安全地共享主内存区域。(内存管理从逻辑上分为硬件无关部分和硬件相关部分。)【硬件无关部分提供了进程的映射和逻辑内... 阅读全文

posted @ 2014-03-18 11:31 黑主优姬 阅读(318) 评论(0) 推荐(0) 编辑

2014年3月12日

带头结点的单链表的初始化,建立,插入,查找,删除

摘要: //带头结点的单链表的初始化,建立,插入,查找,删除 #include #include typedef int ElemType;//定义数据域类型//////////////////////// typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类... 阅读全文

posted @ 2014-03-12 16:00 黑主优姬 阅读(5041) 评论(0) 推荐(1) 编辑

导航