imx6q led灯驱动及测试代码(自动创建设备文件v1)

2024-06-12 14:38

本文主要是介绍imx6q led灯驱动及测试代码(自动创建设备文件v1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

吐舌头驱动层代码 吐舌头
/*************************************************************************
> File Name: led_drv.c
> Author: XXDK
> Email: v.manstein@qq.com 
> Created Time: Sun 26 Feb 2017 04:28:00 AM PST
************************************************************************/
#include#include#include#include#include#include #include #define SABRESD_GPIO_LED4 IMX_GPIO_NR(3, 21) #define SABRESD_GPIO_LED5 IMX_GPIO_NR(3, 22) #define SABRESD_GPIO_LED6 IMX_GPIO_NR(3, 23) #define LED_ON 1 #define LED_OFF 0 struct led_resource { int gpio; char *name; int data; }; static struct cdev led_cdev; static dev_t led_dev_id; static struct class *cls; static struct led_resource led_res[] = { [0] = { .gpio = SABRESD_GPIO_LED4, .name = "xxdk_led4", }, [1] = { .gpio = SABRESD_GPIO_LED5, .name = "xxdk_led5", }, [2] = { .gpio = SABRESD_GPIO_LED6, .name = "xxdk_led6", } }; static int led_open(struct inode* ip, struct file* fp) { int i; printk("%s\n", __func__); for(i=0; i 
偷笑应用层代码 偷笑
/*************************************************************************
> File Name: led_test.c
> Author: XXDK
> Email: v.manstein@qq.com 
> Created Time: Sun 26 Feb 2017 05:22:08 AM PST
************************************************************************/
#include#include#include#includeint main(void)
{
int fd;
fd = open("/dev/led@xxdk", O_RDWR);
if(fd < 0) {
printf("open led device failed!\n");
return -1;
}
sleep(3);
close(fd);
return 0;
}
得意Makefile代码 得意
#Makefile
ifneq ($(KERNELRELEASE),)
obj-m += led_drv.o
else
KERNEL_DIR = /opt/EmbedSky/TQIMX6/TQ_COREC/linux_IMX6_CoreC_3.0.35_for_Linux
all:
PWD=$(shell pwd)
$(MAKE) -C $(KERNEL_DIR) M=$(PWD)
clean:
rm -rf .*.cmd *.o *.mod.c *.ko *.tmp_versions module* Module*
endif

这篇关于imx6q led灯驱动及测试代码(自动创建设备文件v1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054502

相关文章

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur