s3c2440简单驱动编程-led

本文档详细介绍了如何在Linux环境下,针对S3C2440处理器进行LED驱动的编程。首先介绍了驱动的基本构架,包括初始化、注册和退出函数。然后,找到了LED所连接的GPIO管脚,并讲解了配置管脚状态的寄存器。接着,填充了`leds_open`和`leds_ioctl`函数以实现LED的开关控制。最后,提到了驱动模块的编译以及设备文件的创建和测试程序的编写过程。
摘要由CSDN通过智能技术生成

(最近开始学习Linux驱动编程,为了方便总结就把信息简单的归纳下来了。由于初学,技术很欠缺,欢迎纠正错误的地方)

        OS      :linux

        cpu     :s3c2440

        开发板:TQ2440

先制作一个驱动的基本构架: 

    #define MAYOR 0
    #define DEV_NAME "myled"

    static int DevNum = 0;

    static int leds_open (struct inode *inode, struct file *file);
    {}

    static int leds_ioctl (struct inode *, struct file *, unsigned int, unsigned long);
    {}

    static struct file_operations led_fop= {
     .owner = THIS_MODULE;
     .open = leds_open;
     .ioctrl = leds_ioctl;
    };

    static int __init s3c2440_leds_init(void)
    {
     int ret;
     DevNum = register_chrdev( MAYOR, DEV_NAME, &led_fop);
     if( DevNum<0 )
     {
      printk(DEV_NAME" can't register major number\n");
      return DevNum;
     }
     printk(DEV_NAME" initialzed\n");
     return 0;
    }

    static int __exit s3c2440_leds_exit(void)
    {
     if( DevNum>0)
     {
      unregister_chrdev( DevNum, DEV_NAME);
     }
    }

    module_init(s3c2440_leds_init);
    module_exit(s3c2440_leds_exit);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值