移植加载自己的写的驱动(关键字:makefile和kconfig的编写、头文件包含)

本文详细介绍了Linux驱动开发的过程,包括编写驱动时的makefile、kconfig和.c文件的创建。kconfig用于配置模块,makefile则指导编译。在编写驱动时,涉及到了module_init和module_exit宏,以及file_operations结构体的定义。驱动安装部分讲解了如何使用insmod、rmmod和modinfo命令进行模块的安装、卸载和查看。
摘要由CSDN通过智能技术生成

1、编写自己的写的驱动

        1.1 前言:驱动框架处理一些算法,数据结构,它是内核人员写的,内核并不知道你到底是什么样的硬件,所以无法进行硬件操作,真的对硬件操作的是我们驱动人员写的驱动,区分驱动和驱动框架。


    1.2 makefile、kconfig、xxx.c  (这3个文件需要我们自己创建)

           1.2.1  kconfig:这个文件里面定义模块最后在menuconfig中通过Y(添加),N(不添加),M(模块形式加载)配置,如下:LEDS_CLASS,最后会被linux背后的一套机制加上CONFIG_,kconfig中核心代码如下:

                config LEDS_CLASS
                tristate "LED Class Support"

        1.2.2  makefile:最后make会生成一个配置文件config,里面记录着menuconfig配置后,所有的类似CONFIG_LEDS_CLASS的值,然后在makefile中通过menuconfig配置的值,看是否会被编译成o文件链接到内核中。 

                    obj-$(CONFIG_LEDS_CLASS) += xxx.o  相当于 obj-m/y += xxx.o

                    (1)如果是很大的工程,自己需要编写并添加很多模块,当前makefile中不需要编写如何生成.KO的步骤,最后统一在顶层makefile中写,一次性编译成ko,而不用在各自makefile中一个个make去生成:相关代码如下:

                    $(MAKE) -C $(KENREL_DIR) M=$(PWD) modules

                    (2)单个模块生成ko就在自己的ma

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值