The website uses cookies. By using this site, you agree to our use of cookies as described in the Privacy Policy.
I Agree
blank_error__heading
blank_error__body
Text direction?

vscode在linux下搭建内核驱动开发环境

一、前言

Souce insight是一个阅读、开发linux内核驱动模块的好工具,但是Source insight是收费的软件,而且没有原生linux版本,要是想在纯linux环境下进行linux驱动开发,就只能wine+Source insight,而wine版的不好用容易卡死而且cpu占用还高,我就想到用开源跨平台的vscode进行linux内核开发,体验能否和source insight一样好呢?

二、实践

经过搜索和自己亲身实践,最后发现vscode+global插件,可以实现和source insight相媲美的体验

三、准备工作

  • linux内核源代码文件夹
  • linux下安装好vscode

四、安装global软件包和vscode global插件

我用的是deepin-linux操作系统,在终端输入apt命令安装global

sudo apt install global
Shell

在vscode的插件商店里搜索安装global插件

安装global插件.png

五、打开linux源码文件夹

利用vscode的打开文件夹的功能,打开linux内核源码的文件夹

打开文件夹.jpg

提示无法在这个工作区中监视文件更改,按照网页的提示,修改最大文件监控数就可以了,不改对开发也没什么影响

无法监视文件.png

六、安装c/c++扩展

随便打开一个c文件,右下角会提示你安装c/c++扩展,点安装就可以自动安装了

安装cc++扩展.png

安装完毕,又会提示你配置 IntelliSense 设置以帮助查找缺少的标头,点配置即可,这里我配置了一个交叉编译器的地址,这个其实也没什么用,不配置也可以

配置头文件.png

关闭配置页面,这个页面不配置也不影响,这个时候下面会有问题输出,不用管

问题输出.png

七、生成global数据库

在vscode下Ctrl+Shift+P进入命令行模式,输入gl,选择Global: Rebuild Gtags Database执行

执行global生成.jpg

过几分钟生成完毕,就会在linux源码目录下生成GTAGS、GRTAGS、GPATH三个tag数据库文件

生成完毕.jpg

三个tag文件.png

接着,就可以用F12愉快的跳转定义啦,输入代码的时候也会有给力的代码提示

代码提示.jpg

备注:global的版本要注意

又备注:目前在使用过程中,有自定义的结构体成员比如u32这种类型的无法识别无法提示的问题,不知大家有无方法解决,可以在下方评论我

Measure
Measure
Related Notes
Get a free MyMarkup account to save this article and view it later on any device.
Create account

End User License Agreement

Summary | 1 Annotation
GTAGS、GRTAGS、GPATH三个tag数据库文件
2020/09/03 08:41