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

5 篇文章 0 订阅
吐舌头驱动层代码 吐舌头
/*************************************************************************
	> 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
       
       
        
        
#include
        
        
         
         

int 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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值