0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

写驱动模块时候linux内核Vscode中头文件报红,clangd插件实现函数自由跳转

jf_96633414 来源:jf_96633414 作者:jf_96633414 2024-05-31 09:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

linux驱动开发环境

1.卸载c/c++插件, 安装clangd插件
2.安装clangd-15或者其他版本,apt install clangd-15,并设置插件的Clangd:Path为/usr/bin/clangd-15
3.用bear编译内核,即先下载bear再bear -- make.....
4.随便点击kernel下的.c文件生成compile_commands.json
5.把.json中的编译器改为交叉编译器
6.重新打开文件夹,不行的话在kernel下添加.clang文件,编写内容例如为CompileFlags: Add: --target=aarch64-linux-gnu Remove: -mabi=lp64
image.png

7.效果图:ctrl+左击就可以跳进去
image.png
8.自己的工程, 应用程序与驱动程序都可以,只要生成.json文件:
随便写个.c再bear -- make, 生成.json文件就可以实现函数跳转自由,效果图:
image.png

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11806

    浏览量

    219508
  • 驱动模块
    +关注

    关注

    0

    文章

    67

    浏览量

    14891
  • vscode
    +关注

    关注

    1

    文章

    173

    浏览量

    9260
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何理解Linux内核中的PCIe驱动

    我们习惯了用 Verilog 去死磕 PCIe 的底层协议状态机。但一旦越过硬件边界来到操作系统层面,Linux 内核是如何接管并驱动这些 PCI/PCIe 设备的呢?由于不同的 CPU 架构
    的头像 发表于 04-11 17:22 1232次阅读

    Linux内核三大核心模块深度解析:调度、内存与I/O

    Linux内核作为操作系统的核心,其进程调度、内存管理和文件I/O三大模块共同决定了系统的性能与稳定性。无论是多核服务器的高并发处理,还是嵌入式设备的资源受限场景,深入理解这些底层机制
    的头像 发表于 03-12 09:00 221次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>三大核心<b class='flag-5'>模块</b>深度解析:调度、内存与I/O

    Linux内核驱动开发的技术核心精要

    嵌入式Linux驱动开发是连接硬件与操作系统的关键环节。随着内核演进(如Linux 6.13)和硬件复杂度提升,开发者需掌握并发控制、中断分层、内存管理、设备树、调试工具等核心知识。本
    发表于 03-10 13:56

    Linux内核伙伴系统内存申请函数详解:从原理到实战

    Linux 内核中,内存管理是整个系统稳定运行的基石,而伙伴系统(Buddy System) 作为内核物理内存分配的核心机制,更是驱动开发、内核
    的头像 发表于 02-10 16:58 3717次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>伙伴系统内存申请<b class='flag-5'>函数</b>详解:从原理到实战

    深度解析ES8389/ES8390/音频芯片Linux驱动Linux6.1内核

    基于 Linux6.1 内核,从驱动架构、寄存器配置、核心函数、数据流走向四个维度,完整拆解 ES8389 的 Linux
    的头像 发表于 02-02 11:37 2289次阅读
    深度解析ES8389/ES8390/音频芯片<b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>(<b class='flag-5'>Linux</b>6.1<b class='flag-5'>内核</b>)

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读深入理解Linux内核内存分配

    *kmalloc(size_t size, int flags);”函数。 通过对这章的学习,深刻体会到Linux内核的内存分配管理机制博大精深,有些知识点还是初次触碰到,当然也有一些耳熟能详的概念,比如“
    发表于 01-16 20:05

    【「Linux 设备驱动开发(第 2 版)」阅读体验】Linux内核开发基础

    感谢电子发烧友论坛提供的《Linux设备驱动开发(第2版)》阅读机会,测评将从Linux内核开发基础、Linux
    发表于 01-12 22:45

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读内核处理的核心辅助函数

    上周收到《Linux 设备驱动开发(第 2 版)》书籍,这是一本介绍Linux内核开发的指导性书籍。全面了解Linux
    发表于 01-10 22:08

    ElfBoard嵌入式教育科普|Linux系统I/O接口:Open函数详解

    1.函数概述open()是Linux/Unix内核提供的底层系统调用,核心功能是打开或创建文件。成功调用后,内核会返回一个整型的
    的头像 发表于 12-29 11:41 1257次阅读
    ElfBoard嵌入式教育科普|<b class='flag-5'>Linux</b>系统I/O接口:Open<b class='flag-5'>函数</b>详解

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件
    的头像 发表于 11-28 07:27 3036次阅读

    Linux内核模块的加载机制

    可能会有限制。 接下来是模块的初始化。内核会执行模块的初始化函数,通常是用module_init宏定义的函数。这个
    发表于 11-25 06:59

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
    的头像 发表于 11-21 13:25 1580次阅读
    【迅为工业RK3568稳定可靠】itop-3568开发板<b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>开发实战:RK3568<b class='flag-5'>内核模块</b>符号导出详解

    vscode的rtthread micropython插件没有创建工程的图标,为什么?

    我想用micropython开发ESP32,请问我的vscode已经安装了RT-Thread micropython插件,为什么在下方没有创建micropython的“+”图标呢?
    发表于 09-28 13:13

    VSCode 编写自己的 KiCad 插件(下)

    成功,接下来可以我们的 python 插件了。按照 kic ad  官方 开发手册, 实现一个显示 PCB 对应图层的插件: https://dev-docs.kicad.org/z
    的头像 发表于 06-19 11:44 3139次阅读
    用 <b class='flag-5'>VSCode</b> 编写自己的 KiCad <b class='flag-5'>插件</b>(下)

    迅为RK3568开发板内核模块实现-模块加载与卸载

    有了内核模块以后,我们要如何使用呢?编译驱动有俩种方式,那 Linux 驱动的运行方式也肯定有俩种。一种就是将驱动编译进
    发表于 05-14 10:56