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

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

3天内不再提示

嵌入式Linux软件开发:两款阅读源代码的工具对比

strongerHuang 来源:Mculover666 作者:mculover666 2022-03-30 13:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式 Linux 软件开发的时候,经常会阅读大型工程源码,比如 uboot 源代码,Linux Kernel 源码等。

所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。 阅读源码的时候,其实无非也就两个重要的功能:

① 定义或者声明快速跳转

② 快速搜索指定内容

另外还有一些功能是和开发体验相关的,比如:

① 工具的主题(亮色和暗色)

② 工具是否方便修改编辑内容

③ 工具是否还提供其它的方便功能

目前常用的就是 Source Insight 和 VS Code,下面就来按照上述需求进行对比,看看哪个更适合?

创建代码工程

Source Insight 在阅读工程代码时,可以通过创建 Source Insight 工程来选择哪些文件加入,哪些文件不加入。

对于 uboot 这种包含有大量板级文件夹的工程,加入之后其中的文件只和目前移植的这款处理器有关,这个功能是非常有优势的,也是众多工程师喜爱 Source Insight 的原因。

159b3f22-ac30-11ec-aa7f-dac502259ad0.png

相比之下,VS Code并不提供这种选择加入的功能,VS Code 非常粗暴,文件夹就是工作区,只需要打开源码文件夹,所有文件全部加入:

15aa8ab8-ac30-11ec-aa7f-dac502259ad0.png

相比之下,我觉得 Source Insight 胜出,VS Code 这种将所有文件一股脑全部加入的方式,在查找文件时非常麻烦。

文件架构

在 Source Insight 中,打开一个文件的时候,会列出当前文件中所有预处理、宏定义、变量、函数的架构,如图:

15bd8b4a-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中打开文件时也有同样的功能,但又是一股脑的按照顺序将所有函数声明和定义列出,实际查看时也没有什么太多作用:

15d68a14-ac30-11ec-aa7f-dac502259ad0.png

在文件整体架构方面,Source Insight 胜出,VS Code 对于代码架构方面的显示,还需要再优化。

定义跳转功能

在 Source Insight 中,可以右键跳转函数声明或者直接按住 Ctrl 点击函数名称,如果定义有重复会先提示,供你选择,如图:

15f06308-ac30-11ec-aa7f-dac502259ad0.png

在 VScode 中,首先需要安装 C/C++扩展,然后才支持定义跳转,可以按住 Ctrl 键点击或者右键跳转:

1602db46-ac30-11ec-aa7f-dac502259ad0.png

如果有重复也会出现提示,选择需要查看哪个定义。 在定义跳转功能上,两者持平,功能基本都够用。

全局搜索指定内容

在 Source Insight 中,提供的搜索功能如下:

161490b6-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中也提供了全局搜索的功能,但是由于它将所有文件都包含进来了,无用的搜索结果比较多:

16290f8c-ac30-11ec-aa7f-dac502259ad0.png

所以,在搜索功能上,由于 Source Insight 先天性的优势,本轮胜出。

主题设置

阅读源码需要很长时间,所以提供一个舒服的主题也是很重要的。 Source Insight 提供的主题有:

16391f80-ac30-11ec-aa7f-dac502259ad0.png

VScode 提供的主题就非常棒了:

16449838-ac30-11ec-aa7f-dac502259ad0.png

Source Insight 提供的这些主题我觉得还行,但换出来感觉效果都比较怪,没有那么舒服,相比之下 VS Code 的主题做的就比较好,无论亮色还是暗色看着都很舒服,对于我个人而言,本轮 VS Code 胜出。

其他功能

Source 除了我上述说的主要功能之外,还有非常多的功能,但我都没怎么用过。 此处,我必须要说一下 VS Code,因为 Uboot 源码需要在 linux 上编译,但是我日常使用的系统是 Windows,所以我一般将 VSCode 安装在 Windows 上,使用 VS Code 提供的远程 SSH 功能,去连接远程 Linux 主机,它会将远程主机上的目录直接作为工作区,另外还提供了集成终端,修改后直接在终端中编译即可,如图:

16637f3c-ac30-11ec-aa7f-dac502259ad0.jpg

另外,VSCode 内部集成了 git 可视化功能,可以方便的使用 git 管理代码。 相比之外,Source Insight 在修改文件之后,还需要把修改的文件上传到 Linux 服务器去编译,过程有点繁琐。 所以,在额外功能的扩展性上,我觉得 VScode 胜出。

总结

经过上述比较,我来说说我的体验和看法:Source Insight 就像是一个老大哥,基本功很扎实,比如源码查看,文件架构列表这些,很方便实用,在阅读代码的时候非常方便,但在开发时相对不太方便。对于它的文件选择加入功能,其实我是不太喜欢的,这么庞大的源码工程,既然我知道哪些文件有用,哪些文件没用,那我还看啥呢?所以对初学者不太友好。而 VS Code 呢,就是一个年轻小伙,后起之秀,比如主题随便换,可以远程连接 Linux 主机进行开发,Git 可视化扩展等等,各种炫酷功能,但是基本功太不扎实,在阅读源码时的基础功能没做好,但是在开发时非常顺手。

审核编辑:郭婷

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

    关注

    5186

    文章

    20146

    浏览量

    328791
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下
    发表于 11-28 07:48

    嵌入式开发工具版本的选择策略

    今天,我们就来结合嵌入式常见的几个软件(如Keil / IAR、VS Code 、Source Insight、VMware、Git等),简单讲一讲嵌入式开发工具软件版本选择策略。 开发
    发表于 11-25 06:11

    嵌入式软件测试与专业测试工具的必要性深度解析

    嵌入式系统作为控制、监视或辅助装置运行的专用计算机系统,其软件测试面临着独特的挑战和严格的要求。专业测试工具嵌入式软件开发过程中发挥着不可
    发表于 09-28 17:42

    新一代嵌入式开发平台 AMD嵌入式软件工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版
    的头像 发表于 08-20 09:15 3625次阅读

    AMD 2025.1版嵌入式软件工具的新增功能

    AMD 2025.1 版嵌入式软件工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1030次阅读

    2025“芯原杯”全国嵌入式软件开发大赛圆满落幕

    此前,2025年7月20日至26日,第四届“芯原杯”全国嵌入式软件开发大赛决赛在海口成功举办。
    的头像 发表于 08-06 09:51 1103次阅读

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】+基础概念学习理解

    软件包的依赖关系、编译选项、配置参数等。掌握元数据的使用方法对于定制和优化嵌入式 Linux 系统至关重要。 BitBake BitBake 是 Yocto 项目的构建工具。通过学习这
    发表于 08-04 22:29

    嵌入式软件开发常用的软件有哪些?

    文档等非常方便,因为它查找,定位,彩色显示等功能非常强大。开发人员会当成源代码阅读工具使用。 4. Keil uVision5 Keil 5
    发表于 07-03 17:06

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是种不同的嵌入式系统开发方式,它们在应用领域、
    发表于 06-20 09:46

    如何成为一名嵌入式软件工程师?

    、Java等)和软件开发工具,还需要对硬件的工作原理有深入的理解。 在团队中,嵌入式软件工程师往往扮演着核心角色,他们的工作直接关系到产品的性能、稳定性和用户体验。 02掌握核心技能与知识
    发表于 04-15 14:37

    IAR发布云端平台,助力现代嵌入式软件开发团队

    该平台为嵌入式软件开发人员提供前所未有的自由度与灵活性,助力开发团队在工具选择和日常工作流中实现更高效的协作与创新。
    的头像 发表于 03-12 11:56 603次阅读

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件开发环境。 嵌入式机器学习的应用特性与优势 由于
    的头像 发表于 01-25 17:05 1210次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与<b class='flag-5'>软件开发</b>环境

    如何提高嵌入式代码质量?

    嵌入式代码的质量是至关重要的。本文将探讨如何通过有效的开发方法和工具来提高嵌入式代码的质量,以确
    发表于 01-15 10:48

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发和调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要熟练掌握这些
    发表于 12-20 15:29

    ZLG致远电子与麒麟软件携手推出两款银河麒麟嵌入式工控机

    近日,ZLG致远电子与国产操作系统龙头企业麒麟软件积极响应嵌入式产品国产化的大潮,共同推出了两款重磅级的银河麒麟嵌入式操作系统工控机产品。 这两款
    的头像 发表于 12-16 11:02 1690次阅读