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

 

1.LED驱动的实现原理

   Linux内核提供了多个与I/O内存交互的函数,如ioread16ioread32iowrite16iowrite32等;Linux内核的内存管理模块负责同步I/O内存与硬件中的数据。

2.编写LED驱动

 (1)创建LED驱动的设备文件

   使用cdev_initregister_chrdev_regioncdev_addclass_createdevice_create等函数

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

  第二步:指定设备号

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

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

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

  (2)卸载LED驱动的设备文件

依次调用device_destoryclass_destoryunregister_chrdev_region方法。

  (3)设置寄存器与初始化LED驱动

LED有两个引脚:GPB0GPB1

控制LED需要3个寄存器完成,分别是GPMCONGPMDATGOMPUD

每一个寄存器可以使用4个字节。

  (4)控制LED

     有两种方法,第一种是通过字符串控制LED,第二种是通过I/O命令控制LED

   (5LED驱动的模块参数

   为Linux驱动指定一个模块参数需要使用module_param宏,使用module_param宏指定模块参数时,会在/sys/module/s3c6410_leds/parameters

3.测试LED驱动

  (1)编写测试I/O控制命令的通用程序

  (2)使用NDK测试LED驱动

  (3)使用java测试LED驱动

4.LED驱动的移植

posted @ 2016-05-30 09:37  穆小木木木木木  阅读(71)  评论(0)    收藏  举报