Windows下使用AI编程工具 Cursor 代替 VS code 阅读Linux源码和嵌入式Linux驱动开发------实现对驱动代码的智能提示, 让编程更简单

前言

AI是这两年很火的话题, 关于AI是否会取代程序员话题的讨论喋喋不休, 或许未来某一天程序员真的会被"取代", 但重要的是最先被取代的一定是不会使用AI作为提升开发效率工具的程序员, 那么cursor作为其中风头正盛的AI 编程工具, 基于原生vscode的开发, 可以一键导入配置, 无痛从vscode转移到cursor进行编程, 经过本人1个多月的使用测试, 认为它不止能用来做传统互联网(java、vue、js...)的编程, 用在嵌入式行业依旧合适.... 因为它的智能提示实在是太精准!

如果想用它来做嵌入式开发, 无论是linux应用/驱动 Or 单片机 统统拿捏, 相比source Insight和VS code优势巨大, 如果你用过vscode中的AI插件, 然后使用这个工具, 就会体验到真正的差距! 但是有个大前提: 它是收费的, 且价格不菲

提示: 可以某鱼某多某宝买, 我个人买的是是30天 23米, 相比官网太便宜了

在这里插入图片描述


Cursor详细使用教程(看完无敌版本)

阅读Linux源码

为了快速上手, 我这里以韦东山的教程为例, 省去中间复杂的环境搭建环节

百问网已经制作好了完备的Ubuntu镜像,可以从这里下载:
链接:https://pan.baidu.com/s/1vw4VUV_Mvt0HXz8IC66ACg 
提取码:iftb 

unbuntu上的操作

  • 安装基本开发工具
git clone https://e.coding.net/weidongshan/DevelopmentEnvConf.git
cd DevelopmentEnvConf
sudo ./Configuring_ubuntu.sh
  • 安装bear
sudo apt install bear
  • 下载和编译内核
下载内核, 执行如下命令:
git clone https://e.coding.net/codebug8/repo.git
mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk
../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask_imx6ull_linux4.9.88_release.xml --no-repo-verify
../repo/repo sync -j4

配置工具链:
vi ~/.bashrc
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
source ~/.bashrc

编译内核:
vscode的clangd插件使用compile_commands.json文件来生成索引文件,这样当我们点击某个函数时
可以飞快跳转到它定义的地方。
compile_commands.json文件中记录的是每个文件的编译选项,样式如下:
"arguments": [
          "arm-buildroot-linux-gnueabihf-gcc",
          "-c",
          "-Wp,-MD,init/.main.o.d",
          "-nostdinc",
          "-isystem",
          "/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/7.5.0/include",
          "-I./arch/arm/include",
          "-I./arch/arm/include/generated/uapi",
          "-I./arch/arm/include/generated",
          "-I./include",
          "-I./arch/arm/include/uapi",
          "-I./include/uapi",
          "-I./include/generated/uapi",
          "-include",
          "./include/linux/kconfig.h",
          "-D__KERNEL__",
          "-mlittle-endian",
          "-Wall",
          "-fno-dwarf2-cfi-asm",
          "-fno-omit-frame-pointer",
          "-o",
          "init/.tmp_main.o",
          "init/main.c"
      ],
      "directory": "/home/book/100ask_imx6ull-sdk/Linux-4.9.88",
      "file": "init/main.c"
  },

我们使用bear命令来生成compile_commands.json,它的用法如下:
bear make [其他make本身的参数]
它会记录make过程编译文件时用到的命令。

所以我们编译内核的目的是生成compile_commands.json,执行如下命令:
cd /home/book/100ask_imx6ull-sdk/Linux-4.9.88
make 100ask_imx6ull_defconfig
bear make zImage -j4

如果你之前曾经编译过内核但是没有在前面使用bear命令,那么需要重新编译:
make  clean
bear make zImage -j4
  • 编译完成
    编译成功后就会在当前目录下得到文件compile_commands.json,需要如下修改:
    在这里插入图片描述
    在gedit中使用快捷键"Ctrl+H"即可如下操作:
    在这里插入图片描述

Windows上的操作

大部分截图都用参考文档里的, 界面显示是vscode, 因cursor是基于vscode原生开发的, 操作是一样的

C/C++
C/C++ Extension Pack
C/C++ Snippets
Clangd
Remote SSH
Code Runner
Code Spell Checker
vscode-icons
compareit
DeviceTree
Tabnine AI Autocomplete
Bracket Pair Colorization Toggler
Rainbow Highlighter
	高亮文字:shift + alt + z
	取消高亮:shift + alt + a
Arm Assembly
Chinese
Hex Editor
One Dark Pro
Markdown All in One
Markdown Preview Enhanced
  • 远程登录服务器, 也就是ubuntu开发环境
    安装好插件后,即可远程登录服务器,如下操作:
    在这里插入图片描述
    在这里插入图片描述
  • 在服务器上安装插件
    连接上服务器后,查看本地插件,发现有如下字样的插件就点击"Install in SSH"
    在这里插入图片描述
    安装完后,可以如下图查看,确保远程服务器上已经有了clangd插件:
    在这里插入图片描述
  • 配置clangd
    前面只是安装clangd插件,它的使用还需要一个运行在Linux服务器上的clangd程序。
    我们以后使用cursor打开C文件时,会提示你安装clangd程序,它会安装最新版本(版本15),但是这个
    版本有一些Bug,所以我们手工安装版本13。
    在Ubuntu中使用浏览器打开https://github.com/clangd/clangd/releases/tag/13.0.0,下载Linux安装
    包:

    在这里插入图片描述
    把下载到的clangd-linux-13.0.0.zip放到/home/book目录下,执行解压命令:
cd /home/book
unzip clangd-linux-13.0.0.zip

在Windows的cursor界面按下图步骤打开setting.json文件(下图为vscode, cursor点击文件->首选项即可):
在这里插入图片描述
在setting.json中写入如下内容(我们第1次打开源码目录后,这个文件可能被自动修改,你需要再次修改它):

{
    "clangd.path": "/home/book/clangd_13.0.0/bin/clangd",
    "C_Cpp.default.intelliSenseMode": "linux-gcc-arm",
    "C_Cpp.intelliSenseEngine": "Disabled",
    "clangd.arguments": [
        "--compile-commands-dir=${workspaceFolder}",
        "--background-index",
        "--completion-style=detailed",
        "--header-insertion=never",
        "-log=info"
    ],
}

使用cusor阅读源码

确保Ubuntu上Linux内核源码目录下已经有了文件compile_commands.json。

  • cursor已经连接到Ubuntu后,如下操作:
    在这里插入图片描述
  • 触发clangd建立索引
    在vscode里打开任意一个C文件,就会触发clangd建立索引:
    在这里插入图片描述
  • 验证cursor阅读源码

CTRL+鼠标左键点击可以跳转到原型
在这里插入图片描述

使用cursor做驱动开发

  • 在Linux内核根目录随便创建一个test文件夹并创建test.c文件, 验证函数原型的跳转和智能提示
    在这里插入图片描述
    在这里插入图片描述

总结:

我个人在开发过程中使用过 source Insight、VS code + Github Copilot或各种AI插件、字节开发的AI编程工具Trae, 依旧觉得cursor是最好用的, 我在用vscode的AI插件一段时间之后, 就把智能提示关闭了… 如果不想花钱的话, 那么cursor有新用户体验两周, 其实各个电商平台上的cursor账号买的这么便宜, 都是无限申请新用户账号, 你懂得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值