芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 5468|回复: 0

【Zynq】【Linux】【Kernel】驱动静态编译

[复制链接]

该用户从未签到

68

主题

85

帖子

937

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
937
发表于 2022-3-14 14:05:11 | 显示全部楼层 |阅读模式

引言

在linux驱动的开发阶段,我们一般选择将驱动代码单独编译成驱动模块,然后在linux中加载它,这种方法称为动态编译。使用动态编译的好处是方便调试,每次修改代码后,直接编译出模块,加载即可。在驱动编写并调试完毕后,就可以使用静态编译将驱动添加到linux内核里,每次启动后系统就会自动加载该驱动,不用再手动加载。

方法步骤

这里我以SII9022芯片的驱动为例

1.将编写好的驱动代码sii9022_drv.c文件拷贝到linux内核源码的目录driver/i2c路径下。

2.修改该路径下的Makefile文件,添加以下代码:

obj-$(CONFIG_SII9022) += sii9022_drv.o

3.修改路径下的Kconfig文件,添加以下代码:

config SII9022
    tristate "I2c device SII9022 driver support"
    default y
    help
        Select "Y" to initializes the sii9022 device

4.由于这里默认配置为“y”,也就是默认加载该驱动,因此直接编译内核,生成新的内核镜像即可。

5.使用新的内核镜像替换旧的,重新启动linux系统,就会发现sii9022芯片在开机后已经被初始化完毕了。

image.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-11-21 16:48 , Processed in 0.112445 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表