【环境配置笔记】VScode+clang15搭建linux内核代码阅读环境

环境:

  1. Toolchain(yocto导出)
  2. Linux5-15,arm64
  3. VS code
  4. clangd15.0.3

1. VScode配置

在VS code / VS code server中配置以下插件:

  • Clangd
  • C/C++
  • C/C++ Extension Pack
  • C/C++ Snippets
  • Code Runner
  • Code Spell Checker
  • compareit
  • DeviceTree
  • Tabnine AI Autocomplete
  • Bracket Pair Colorization Toggler
  • Rainbow Highlighter

2. clangd配置

2.1 下载clangd

从clangd的github(https://github.com/clangd/clangd/releases)下载最新的clangd工具:

image-20221116113013594

然后将其解压到/home/xxx目录下:

unzip clangd-linux-15.0.3.zip

2.2 配置clangd

根据下图的步骤打开json文件,我这里演示的是远程服务器端的配置,如果你本身是linux环境,则需要先点击【用户】,再按第四步来。

image-20221116113419779

打开setting.json文件后,填入以下内容:

这里的"Disabled"

{
    "C_Cpp.default.intelliSenseMode": "linux-gcc-arm64",
    "C_Cpp.intelliSenseEngine": "Disabled",
    "clangd.path": "/home/xxxx/clangd_15.0.3/bin/clangd",
    "clangd.arguments": [
        "--log=verbose",
    ],
}

C/C++插件里的intellisense和clangd是冲突的,如果我们没有手工设置setting.json,当使用vscode打开C文件时时会提示禁止intellisense,不要点击!!!!!因此点击了会有Bug,其中的"Disabled"会被改成"disabled"。

2.3 安装bear

在vscode中使用clangd,要实现精确跳转,需要使用bear分析源码生成compile_commands.json。

执行如下命令安装:

sudo apt instll bear

3.使用bear编译内核【必须先编译】

由于我们使用的是Yocto导出的Toolchain,在激活工具链后需要先使用unset LDFLAGS,然后使用以下命令:

bear -l /usr/lib/x86_64-linux-gnu/bear/libear.so make -j12

!!!!!!!!!For ubuntu22.04!!!!!!!!!
bear --library  /usr/lib/x86_64-linux-gnu/bear/libexec.so -- make -j8

由于此时我们使用的是Yocto SDK,里面不包含bear的库,因为我们需要手动指定库的位置。

编译完会生成compile_commands.json。

3.索引Linux源码

在索引源码之前,还需要再Linux文件夹中新建.clangd文件,并填入以下内容:

CompileFlags:
    Remove:
    [
        -mabi=lp64,
    ]

clangd索引失败的原因大部分都是CompileFlags的问题,你可以在索引失败的clangd日志中查看出错的原因,并添加需要移除的CompileFlags。

现在用VS code打开Linux文件夹,打开任意c文件触发索引,你会看到下面的索引进度:

image-20221116122847067

4.跳转测试

这里以main.c进行测试,找到start_kernel函数:

image-20221116123504718

Ctrl+鼠标点击setup_arch函数,可以看到能够正确跳转到arm64架构下的setup_arch函数。

image-20221116123950283

参考:在Ubuntu中搭建嵌入式Linux开发环境

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Mac上使用VSCodeClang搭建Linux驱动源码阅读环境,您需要按照以下步骤进行设置: 1. 安装VSCode:在Mac上下载并安装Visual Studio Code。您可以从官方网站或App Store下载安装程序。 2. 安装VSCode插件:打开VSCode并安装必要的插件。例如,您可以搜索并安装C/C++插件,以支持C语言和C++编程。 3. 安装Clang:可以使用Homebrew等软件包管理器来安装Clang编译器。打开终端,运行以下命令安装Clang: ``` brew install llvm ``` 这将同时安装LLVM和Clang。 4. 配置VSCode:在VSCode中打开设置面板,并配置Clang作为默认的C/C++编译器。在"Preferences"菜单下选择"Settings",搜索"Clang Path"并指定安装的Clang路径。 5. 克隆Linux驱动源码:使用git工具将Linux驱动源码克隆到您的本地环境。您可以通过访问Linux内核源码仓库的网站,找到您想要阅读的驱动源码,并使用git命令进行克隆。 ``` git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git ``` 这将把源码克隆到当前目录下的"linux"文件夹中。 6. 在VSCode中打开源码:在VSCode中打开刚刚克隆的Linux驱动源码文件夹。您可以使用"File"菜单中的"Open Folder"选项,选择"linux"文件夹进行打开。 现在,您可以在VSCode中使用Clang阅读和分析Linux驱动源码。您可以使用VSCode的功能来导航源码、搜索函数和变量,或者使用断点调试功能进行代码调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫游嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值