RK3568驱动指南|第二篇 字符设备基础-第8章 驱动模块编译进内核实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】824412014(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第二篇 字符设备基础_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第8章 驱动模块编译进内核实验

通过上一章的学习,我们学会了使用menuconfig图形化配置工具,以及了解了menuconfig相关的文件:Kconfig .config XXXdefconfig。本章节学习将helloworld驱动编译进内核。

输入“cd drivers/char”进入到 drivers/char 目录下,然后输入“mkdir hello”建立hello文件夹,并输入“cd hello”进入hello文件夹,如下(图8-1)所示:

img

然后将第三章编写的hello.c文件拷贝到hello文件夹内。如下(图8-2)所示:

img

输入“touch Kconfig”命令创建Kconfig文件,Kconfig文件内容如下所示:

config HELLO
tristate "hello world"
help
	hello hello

然后“touch Makefile”命令创建Makefile文件,Makefile文件内容如下所示:

obj-$(CONFIG_HELLO)+=helloworld.o

接下来修改上一级目录的Kconfig文件和Makefile文件,也就是driver/char目录。Makefile添加如下图(图8-3)所示内容。

obj-y += hello/

img

Kconfig添加如下图(图8-4)所示内容:

source “drivers/char/hello/Kconfig”

img

最后打开menuconfig图形化配置工具,在配置界面选择helloworld驱动。把驱动编译进Linux内核,用 * 来表示,所以配置选项改为*。如果想要将驱动编译为模块,则用M来表示,配置选项改为M。这里我们选择成 *

Device Drivers ─>
    Character devices --->
        <*> hello world或者<M> hello world

img

然后将光标移动到save,保存配置,如下图(图8-6)所示:

img

保存到.config文件,如下(图8-7)所示:

img

退出配置界面,然后输入以下命令便可以编译源码了。

make savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig 
cd ../
./build.sh kernel

img

编译成功之后,进入到drivers/char/hello目录下,可以看到会生成对应的.o文件。就说明已经成功将驱动编译进内核。

img

将编译好的内核镜像烧写到开发板上后,在开发板系统启动的时候也可以成功看到加载helloworld驱动,如下图(图8-10)所示:

img

如果在图形化配置界面中选择的M,也就是编译成驱动模块,则生成helloworld.ko文件如下图(图8-11)所示:

img
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值