单片机
返回首页

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

2024-10-21 来源:cnblogs

在之前章节了解到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驱动所有必要的部分。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 光控音效发生器电路

  • 离子检测器电路分析

  • 非常简单的150W功放电路图

  • 基于IC555的可变PWM振荡器电路

  • 使用NE555和磁簧开关的橱柜照明电路

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章