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

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

时间:2016-06-04 19:39:45      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

尽管 Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据 而是与 本机的 I/0 内存(νO Memory ,位于内核空间〉进行交互。所谓 1/0 内存是通过各种接口(PCI 、 USB 、蓝牙、以太网口等〉连接到主机( PC 、手机〉的硬件〈网卡、声卡、摄像头等〉在主机内 存中的映射。例如,在 Ubuntu Linux 运行的驱动只需要访问运行 Ubuntu Linux 的主机中的I/O内存即可,然后 Linux 内核会利用I/O内存中的数据硬件交互。Linux 内核提供了多个与 1/0 内存交互的函数,如 ioread16 ioread32 iowrite16 iowrite32 等。 Linux 核的内存管理模块负责同步 I/0 存与硬件中的数据。每一个连接 Linux 的硬件在I/O内存中都会有映射首地址。在使用 ioread32 等函数读 I/O 内存时需要指定这些首地址。 开发板上的 LED 也有其 映射首地址。编写LED驱动的步骤如下:一、创建LED驱动的设备文件:第一步:使用 cdev_init函数初始化cdev

第二步:指定设备号;第三步:使用cdev_add 函数将字符设备添加到内核中的字符设备数组中;第四不:使用 clascreate宏创建 struct class;第五步:使用 device create 函数创建设备文件。然后卸载 LED 驱动的设备文件。设置寄存器与初始化 LED 驱动。LED 驱动可以使用如下两种方式控制:LED通过字符串控制;通过命令控制LED。在将LED灯代码编写完成后,然后进行LED灯的测试。也可以使用JAVA测试LED灯驱动。测试完成后可以将LED灯移植。

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

标签:

原文地址:http://www.cnblogs.com/dongchao1/p/5559368.html

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