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


        在之前章节了解到Linux驱动程序可以控制软硬件,可以实现软硬件之间的交互。在这章我们学习LED驱动的实现原理。Linux内核提供了多个与I/O内存交互的函数可以实现控制硬件。
        编写LED驱动,LED驱动会建立一个/dev/s3c6410_leds设备文件,该Linux驱动可以控制4个LED,靠近电池的LED编号为1,以此类推,另外1表示开,0表示关。接下来创建LED驱动的设备文件:第一步:使用cdev_init函数初始化cdev;第二步:指定设备号;第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中;第四步:使用class_create宏创建struct class;第五步:使用device_create函数创建设备文件。
        接着还介绍了卸载LED驱动的设备文件,需要一次调用device_destroy、class_destroy和unregister_chrdev_region方法。
        设置寄存器与初始化LED驱动,并控制LED。LED驱动可以使用如下两种方式控制LED:1.通过字符串控制LED。2.通过I/O命令控制LED
        使用NDK测试LED驱动,NDK程序测试和可执行程序测试差不多, 如果想在Android应用程序中测试Linux驱动,最直接的方法就是是使用DNK。
        使用Java测试LED驱动,用于JDK为提供发送I/O命令的API,因此使用Java只能通过发送控制字符串测试LED驱动。
        LED驱动是这本书第一个在软硬件之间交互。虽然不复杂,但是它的实现包括了Linux驱动所有必要的部分。

  • 相关阅读:
    Linux日常之命令sort
    Linux日常之命令sed
    Linux日常之命令grep
    Linux日常之命令awk
    Linux日常之命令tee
    Linux日常之数据重定向
    Hibernate打印SQL及附加参数
    使用D3 Geo模块画澳大利亚地图
    基于Spring-WS的Restful API的集成测试
    做项目时需要考虑的安全性问题
  • 原文地址:https://www.cnblogs.com/yxy666/p/5561614.html
Copyright © 2020-2023  润新知