linux 驱动开发之linux vscode环境搭建以及第一个驱动 helloWorld

Edie ·
更新时间:2024-09-21
· 696 次阅读

下载linux版的vscode ,并且安装

我用的板子是nxp的imx6ull,下载nxp的的arm交叉编译工具链和他们的内核(也可以下载官方版本的内核和编译工具链),解压并设置路径,我的路径如下:
内核路径/home/mayunzhi/linux/Linux-4.9.88
工具链路径/home/mayunzhi/linux/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/

创建一个helloworld的文件夹mkdir helloworld ,创建一个c文件:touch helloworld.c

用vscode打开文件夹helloworld 编辑helloworld.c

#include static int __init hello_init(void){ printk(KERN_INFO"hello world init !\n"); return 0; } static void __exit hello_exit(void){ printk(KERN_INFO"hello world exit !\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); 创建Makefile   touch Makefile 编辑Makefile KERNELDIR :=/home/mayunzhi/linux/Linux-4.9.88 CURRENT_PATH :=$(shell pwd) build:kernel_modules kernel_modules:   $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules clean:   $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

在vscode下打开终端,默认当前目录为helloworld文件夹下,执行make命令

产生这些文件:
helloworld.mod.c helloworld.mod.o modules.order helloworld.ko helloworld.o

后缀名为.ko的文件就是我们开发板需要的模块驱动文件,将helloworld.ko拷贝到开发板文件系统里的/lib/module/4.1.15/中,这里是通过nfs环境,(后面会有详细的教程).

在开发板中cd到/lib/module/4.1.15/,执行insmod helloworld.ko命令将helloworld驱动加载到内核,在开发板终端会看到"hello world init !"的信息
5.要卸载驱动只需要在当前目录下执行rmmod helloworld.ko,就可以卸载helloworld驱动,会看到终端有"hello world exit !"的信息

以上就是一个最简单的helloworld的linux 驱动设计方式,只是输出了信息,没有涉及soc上的硬件操作,比如gpio,中断,i2c,spi,lcd等等,当然我们的驱动开发远没有这么简单,后面我会详细介绍,


作者:myz348



Linux helloworld vscode

需要 登录 后方可回复, 如果你还没有账号请 注册新账号