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

尽管 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灯移植。

转载于:https://www.cnblogs.com/dongchao1/p/5559368.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值