嵌入式Linux驱动及内核模块问题总结

本文总结了嵌入式Linux驱动及内核模块的相关操作,包括驱动程序测试、内核驱动设备号的分配、I/O内存申请、ioctl函数的使用以及模块编译过程。详细阐述了如何在Kconfig和Makefile中配置驱动,以及如何通过alloc_chrdev_region、cdev_init和device_create等函数进行设备注册。同时提到了ioctl命令的定义及其宏的使用。
摘要由CSDN通过智能技术生成

一、驱动程序测试

    1、在Kconfig文件中添加相应的config xxx编译选项,在Makefile中添加obj-$(CONFIG_xxx) += xx.o

          <注意上面的两个xxx是对应的,而xx需要与源文件xx.c相对应>

    2、配置好后需要先编译一遍内核和dtb文件,在make modules才能正确加载模块。<至于是跟内核有关还是跟dtb文件有关就不知道了>


二、内核驱动设备号、设备类、设备节点等的操作

    1、第一组组合

        ①、int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)

                自动分配设备号,成功返回0,失败返回小于0值。

        ②、

                a、void cdev_init(struct cdev *cdev, const struct file_operations *fops)

                       建立cdev与file_operations 之间的连接

                 b、int cdev_add(struct c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值