【VSCode】VScode 配置 Linux 驱动环境(简单版)

文章介绍了如何使用VScode作为编辑器配置Linux内核驱动开发环境,包括下载和解压内核源码,设置VScode的C++环境,添加头文件路径,以及通过UI和配置文件进行环境配置。同时提到了安装必要的插件以提升编码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开始编写驱动之前,我们需要保证良好的编码环境,这里编写代码所使用的编辑器是VScode,如果进行环境配置,可能会提示很多错误,比如头文件找不到、内核函数的定义无法跳转等等。

VScode 在这里只作为编辑器使用,配置的是编辑环境,而不是编译环境


目录

一、内核源码准备

1、下载并解压内核源码

2、内核源码解压

二、VScode 编辑环境配置

三、VScode安装插件


一、内核源码准备

1、下载并解压内核源码

编写驱动时,我们需要用到内核中的一些头文件,如 linux/module.h、fs.h 等,因此,我们需要先下载内核源码,本人使用的是imx6ull mini 版,可以在正点原子官方论坛下载到内核源码。

正点原子下载中心链接:正点原子下载中心

下载以后,然后解压,按照下图提示就可以获取到内核源码了。

2、内核源码解压

内核源码我们需要有两份,一份是放在Windows环境下,用于解决我们编写代码时,VScode找不到头文件的问题。

一份是放在Linux环境下,用于提供一些内核库,以便于将写好的源文件编译成模块(.ko 文件)

Windows下解压

解压以后记住解压路径,等会在配置VScode的时候会用到。本人这里的解压路径是 D:/linux-kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek

Linux下解压

解压以后同样要记住解压路径,等会在编写Makefile文件的时候,需要指明内核源码所在目录。本人这里的解压路径是 /home/pigeon/workspace/linux-kernel 

二、VScode 编辑环境配置

方式一:VScode UI 配置

按下 Ctrl + Shift + P 打开设置面板,输入 c++ configure,选择Edit Configurations(UI) 

接下来就可以根据自身需求配置 C/C++ 环境了,下面选择的是调试时使用的编译器

这里是额外添加一些头文件路径,以便于我们在调试时可以跳转到指定头文件。下次再点进来看,似乎会被清空,但是效果依然在。

"D:\\linux-kernel\\linux-imx-4.1.15-source-compiled\\include"
"D:\\linux-kernel\\linux-imx-4.1.15-source-compiled\\arch\\arm\\include"
"D:\\linux-kernel\\linux-imx-4.1.15-source-compiled\\arch\\arm\\include\\asm"

这里选择的是 C语法标准和 C++ 语法标准

方式二:配置文件配置 

除了在这个地方配置,其实还可以通过配置文件来配置,你打开 vscode 的时候,当前目录下会有一个 .vscode 目录,里面就包含了 c_cpp_properties.json 和 settings.json 两个配置文件。

c_cpp_properties.json 和上面UI 配置的效果是一样的,可以手动修改头文件路径、编译器路径、编译器选项等。

settings.json 可以对VSCode进行页面风格、代码格式、字体颜色大小等的编辑设置,此外还可以在我们查找时自动过滤某些文件(即不纳入查找)

三、VScode安装插件

VSCode 支持多种语言,比如 C/C++、Python、C#等等,为了方便后续代码编写,需要安装一些插件,如 C/C++的扩展包、设备树语法、Makefile语法等。

  • C/C++:必须要有的,支持C/C++语法
  • C/C++ Snippets:C/C++重用代码块
  • C/C++ Advanced Lint:C/C++静态检测
  • Include AutoComplete:自动头文件包含
  • Rainbow Brackets:彩虹花括号,有助于阅读代码
  • Arm Assembly:支持 ARM 汇编语法高亮显示
  • vscode-icons:VSCode 图标插件,主要是资源管理器下各个文件夹的图标
  • DeviceTree:设备树语法插件
  • TabNine:一款 AI 自动补插件
### 配置VSCode进行Linux内核模块及驱动程序的编写与调试 #### 安装必要的工具链和依赖项 为了能够在VSCode中顺利地编写并调试Linux内核模块以及驱动程序,首先需要安装一系列的基础软件包。这通常包括但不限于`build-essential`, `linux-headers-(uname -r)`以及其他可能必需的库文件。 对于特定硬件平台(例如引用中的imx6ull mini),还需要获取对应的交叉编译器和支持该架构的额外资源[^4]。 #### 获取合适的内核源码树 由于编写驱动时需要用到系统内核的各种头文件,因此必须拥有匹配目标系统的内核源码。可以按照具体项目需求从官方渠道下载相应本的内核源码,并将其放置在一个易于访问的位置以便后续集成到IDE环境中[^3]。 #### 设置工作区结构 建议创建一个新的文件夹作为整个项目的根目录,在其中建立子文件夹用于存放不同类型的文件: - **src/** 存放所有的C/C++源代码; - **include/** 放置自定义或第三方提供的头文件; - **scripts/** 包含构建脚本和其他辅助工具; - **.vscode/** VSCode专属配置文件所在位置; 这种布局有助于保持良好的组织性和可维护性。 #### 安装VSCode插件 针对高效开发Linux驱动的需求,推荐安装以下几个重要的VSCode扩展: -SSH, WSL...) :允许远程连接至服务器执行任务; - GitLens — Git supercharged:增强Git操作体验; - Docker:如果涉及到容器化部署的话也可以考虑加入进来; 这些插件能够极大地提升工作效率并简化日常编码流程。 #### 配置launch.json以实现GDB/KGDB调试功能 为了让开发者可以通过图形界面轻松启动调试会话,需编辑`.vscode/launch.json`来指定正确的参数组合。下面是一个基本模板供参考: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_module.ko", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "make", "miDebuggerPath":"/usr/bin/gdb" }, { "name": "Attach to KGDB", "type": "cppdbg", "request": "attach", "targetArchitecture":"arm", "remoteDebugEnabled":true, "pipeTransport":{ "pipeProgram": "/path/to/qemu-system-arm", "pipeArgs":[...], "debuggerVisualizer":"kgdboe" }, "MIMode":"gdb", "miDebuggerPath":"/usr/bin/arm-linux-gnueabihf-gdb" } ] } ``` 请注意上述JSON片段仅作为一个起点,实际应用过程中还需根据个人情况调整各项属性值。特别是当采用KGDB方式进行跨机调试时,应确保QEMU模拟器或其他虚拟化解决方案已正确配置好网络接口并与宿主机建立了稳定通信通道[^1]。 #### 创建tasks.json自动化编译过程 通过定制化的task设定可以让每次保存后的增量编译变得更加便捷快速。这里给出一段样例代码帮助理解如何完成这项工作: ```json { "version": "2.0.0", "tasks": [ { "label": "make", "command": "make", "group": { "kind": "build", "isDefault": true }, "detail": "Build the project using Make.", "problemMatcher": ["$gcc"], "presentation": {"echo": true,"reveal": "silent","focus": false,"panel": "shared"} } ] } ``` 此段配置使得用户只需点击一次按钮就能触发完整的Make指令序列,从而大大节省了时间成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值