码迷,mamicode.com
首页 > 其他好文 > 详细

第7章 LED将为我闪烁:控制发光二极管

时间:2016-05-31 23:49:15      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

所谓I/O内存是通过各种接口连接到主机的硬件在主机内存的映射。LED驱动还提供了两种交互方式:命令和读写设备文件。

创建设备文件的步骤:

第1步:使用cdev_init函数初始化cdev

第2步:指定设备号

       Linux设备文件的设备号分为主设备号和次设备号,其中前12位表示主设备号 ,后20位表示次设备号。设备号有如下两种指定方法:

   (1)直接在代码中指定(硬编码)。

   (2)动态分配。

第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中

第4步:使用class_create宏创建struct class

第5步:使用device_create函数创建设备文件

LED驱动可以使用以下两种方式控制LED:

(1)通过字符串控制LED

(2)通过I/O命令控制LED

    一个完整的Linux驱动主要由内部处理与硬件交互两部分组成。其中内部处理主要是指Linux驱动的装载,卸载,与设备文件相关的动作处理(读写设备文件,向设备文件发送I/O命令等动作)以及业务逻辑等。与硬件交互主要是指通过iowrite32,ioread32等函数与硬件中德寄存器进行数据交互。Linux驱动在不同平台的移植也是处理这两部分。在不同Linux内核版本之间的移植,主要是移植第一部分,也就是Linux驱动的内部处理。

 

第7章 LED将为我闪烁:控制发光二极管

标签:

原文地址:http://www.cnblogs.com/zgen1/p/5547787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!