icon-cookie
The website uses cookies to optimize your user experience. Using this website grants us the permission to collect certain information essential to the provision of our services to you, but you may change the cookie settings within your browser any time you wish. Learn more
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