【Linux Device Driver】—(3.1)—ioctl——代码

本文介绍了通过阅读《Linux Device Driver》一书,学习并实践使用ioctl控制LED灯的亮灭。实验包括编写驱动程序(tiny6410_led_ioctl.c, tiny6410_led_ioctl.h)和测试程序(tiny6410_led_ioctl_app.c),以加深对ioctl的理解。" 108973095,9628446,APP专项测试详解,"['移动开发', 'APP测试', '敏捷开发', '兼容性测试', '性能测试']
摘要由CSDN通过智能技术生成

《Linux Device Driver》这本书的却做的很好,对于一个初学者来说虽然有点难度,但是只要认真看,绝对是大有裨益的!

好了,昨天把ioctl的原理以及涉及到的代码贴了一下,今天就做了做实验,感觉还凑合,所以就贴出来!对自己也算是做个笔记吧!

今天这个实验主要就是通过ioctl来控制LED灯的亮灭,虽然有点简单,但是毕竟也是需要花费点时间的。

1、驱动程序

①、tiny6410_led_ioctl.c

 

#include <linux/module.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#include <linux/ioport.h>
#include <asm/io.h>
#include <linux/miscdevice.h>
#include <linux/device.h>
#include <linux/cdev.h>
#include <linux/ioctl.h>

#include "tiny6410_led_ioctl.h"

MODULE_LICENSE("GPL");

static struct cdev cdev;
static dev_t devno;
struct class *tiny6410_class;
static int major;
volatile unsigned long *gpkcon0 = NULL;
volatile unsigned long *gpkcon1 = NULL;
volatile unsigned long *gpkdat = NULL;



int led_open(struct inode *inode, struct file *filp)
{
	/*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值