字符设备驱动模块的编译
2023-12-15 19:04:32
一.? 简介
本文继上一篇文章的学习,上一篇文章学习了字符设备驱动框架的初步编写。文章地址如下:
本文对上一篇编写的驱动模块初步框架进行编译。
二.? 字符设备驱动模块的编译
上一篇文章,编写了字符设备驱动加载与卸载的框架代码,这里对代码进行编译。
编写 Makefile文件,Makefile 文件内容如下:
KERNELDIR := /home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
第
1
行,
KERNELDIR
表示开发板所使用的
Linux
内核源码目录,使用绝对路径,大家根
据自己的实际情况填写即可。
第
2
行,
CURRENT_PATH
表示当前路径,直接通过运行 “
pwd
” 命令来获取当前所处路
径。
第
3
行,
obj-m
表示将
chrdevbase.c
这个文件编译为
chrdevbase.ko
模块。
第
8
行,具体的编译命令,后面的
modules
表示编译模块,
-C
表示将当前的工作目录切
换到指定目录中,也就是
KERNERLDIR
目录。
M
表示模块源码目录,“
make modules
” 命令
中加入
M=dir
以后程序会自动到指定的
dir
目录中读取模块的源码并将其编译为
.ko
文件。
Makefile
编写好以后,就可以输入“
make
” 命令编译驱动模块。操作如下:
从上面信息可以看出,进入我设置的 Linux内核源码(更改后的NXP官方Linux内核)目录中进行编译,编译完成后面又退出了 Linux内核源码路径。
查看是否生成 .ko文件:
可以看出,编译成功。生成了 chrdevbase.ko文件。
文章来源:https://blog.csdn.net/wojiaxiaohuang2014/article/details/135020993
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!