Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1419528
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

发布时间:2013-01-09 12:19:34

作者:刘洪涛,华清远见嵌入式学院讲师。 本文主要介绍一个linux内核线程的实例,以及在QEMU平台上测试的过程。 一、内核线程的创建 编写一个字符设备驱动,在驱动注册时,开启一个内核线程。在用户向设备写入数据时,字符设备的wirte方法能够激活此内核线程,并在线程中实现打印用户输入的数据。 驱动代码如下(在2.6.22内核上测试通过),关键部分加上了注释: #include <linux/module.h>        #include <linux/moduleparam.h&......【阅读全文】

阅读(167) | 评论(0) | 转发(0)

发布时间:2013-01-09 12:17:10

作者:游老师,华清远见嵌入式学院讲师。 在华清远见的嵌入式培训课程中,linux自负设备驱动程序的编写是嵌入式学院<嵌入式工程师职业培训班>三期课程中嵌入式linux驱动开发方面的重要内容,这里我们先对QT做一下简单介绍。 一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能: 1、对设备初始化和......【阅读全文】

阅读(184) | 评论(0) | 转发(0)

发布时间:2013-01-09 12:17:05

作者:刘洪涛,华清远见嵌入式学院讲师。 在Linux2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢? 下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建设备结点添加的。          #include <linux/module.h>     &nbs......【阅读全文】

阅读(144) | 评论(0) | 转发(0)

发布时间:2013-01-09 12:17:01

在Linux操作系统下有3类主要的设备文件类型:块设备、字符设备和网络设备。这种分类方法可以将控制输入/输出设备的驱动程序与其他操作系统软件分离开来。 字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则不然,它利用一块系统内存作为缓冲区,若用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请求函数来进行实际的I/O操作。块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的CPU时间用来等待。网络设备可以通过BSD套接口访问数据。 每个设备文件都有其文件属性(c/b),表示是字符设备还是块设备。另外每个文件都有2......【阅读全文】

阅读(126) | 评论(0) | 转发(0)

发布时间:2013-01-09 12:16:50

作者:孙天泽,华清远见嵌入式学院金牌讲师。 和Windows下的开发不同,嵌入式Linux开发显得有些复杂。其实并不是复杂,而是我们面前的新知识有点多:Linux操作系统、交叉编译器、库、大小端、软浮点... 前几天用cross-3.3.2编译器编译Linux-2.6.14内核,就出现了链接错误。对于初学者,这类非语法类错误是非常难查的,所以我只能建议大家换编译器版本。比如这个cross-3.3.2编译器在编译u-boot-1.3.1时就有问题出现,但是没想到在编译2.6.14内核的时候也能出现问题。你可以通过根据错误提示,进行代码修改,但是这并不明智,这种做法就像拆东墙补西墙一样,......【阅读全文】

阅读(135) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册