在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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 可視化擴展等等,各種炫酷功能,但是基本功太不扎實,在閱讀源碼時的基礎功能沒做好,但是在開發時非常順手。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5143

    文章

    19563

    瀏覽量

    315521
  • Linux
    +關注

    關注

    87

    文章

    11469

    瀏覽量

    212957
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    IAR發布云端平臺,助力現代嵌入式軟件開發團隊

    該平臺為嵌入式軟件開發人員提供前所未有的自由度與靈活性,助力開發團隊在工具選擇和日常工作流中實現更高效的協作與創新。
    的頭像 發表于 03-12 11:56 ?307次閱讀

    嵌入式機器學習的應用特性與軟件開發環境

    設備和智能傳感器)上,這些設備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機器學習的應用特性,以及常見的機器學習開發軟件開發環境。 嵌入式機器學習的應用特性與優勢 由于
    的頭像 發表于 01-25 17:05 ?575次閱讀
    <b class='flag-5'>嵌入式</b>機器學習的應用特性與<b class='flag-5'>軟件開發</b>環境

    如何提高嵌入式代碼質量?

    嵌入式代碼的質量是至關重要的。本文將探討如何通過有效的開發方法和工具來提高嵌入式代碼的質量,以確
    發表于 01-15 10:48

    嵌入式工程師常用的開發工具有哪些?

    仿真器可以模擬復雜的微控制器和外設,幫助工程師在早期階段進行軟件開發和調試。這大大縮短了開發周期,降低了開發成本。 總之,嵌入式工程師需要熟練掌握這些
    發表于 12-20 15:29

    ZLG致遠電子與麒麟軟件攜手推出兩款銀河麒麟嵌入式工控機

    近日,ZLG致遠電子與國產操作系統龍頭企業麒麟軟件積極響應嵌入式產品國產化的大潮,共同推出了兩款重磅級的銀河麒麟嵌入式操作系統工控機產品。 這兩款
    的頭像 發表于 12-16 11:02 ?1289次閱讀

    一文了解嵌入式軟件開發的對象

    以前應用場景很單一,嵌入式開發可能談不上面向對象開發。但現在,做嵌入式開發,沒有面向對象開發,你就有點落伍了。 本文結合個人經驗和周立功《抽象接口技術和組件
    的頭像 發表于 11-15 10:31 ?770次閱讀
    一文了解<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的對象

    你認為嵌入式軟件開發的盡頭是什么?

    嵌入式軟件開發的“盡頭”是一個富有哲理且多維度的概念,因為它不僅關乎技術發展的極限,還涉及到行業應用、市場需求、技術融合與創新等多個方面。從幾個不同的視角來看
    的頭像 發表于 09-18 09:42 ?737次閱讀
    你認為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的盡頭是什么?

    EsDA,一站嵌入式軟件

    EsDA是一套面向工業智能物聯領域的嵌入式系統設計自動化工具集,包含實時操作系統AWorksLP、低代碼開發平臺AWStudio、資源管理平臺AXPI、跨平臺GUI引擎AWTK和云服務
    的頭像 發表于 09-15 08:10 ?669次閱讀
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>

    嵌入式開發常用軟件有哪些?

    查看源代碼,注釋文檔等非常方便,因為它查找,定位,彩色顯示等功能非常強大。開發人員會當成源代碼閱讀工具使用。 4.Keil uVision5
    發表于 09-09 15:22

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是
    的頭像 發表于 09-02 09:11 ?1129次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺。它通常包括一個處理器、內
    的頭像 發表于 09-02 09:09 ?711次閱讀

    嵌入式linux開發板芯片的工作原理

    了處理器、存儲器、輸入/輸出接口等硬件資源的嵌入式系統開發平臺。它通常采用Linux操作系統作為底層軟件平臺,提供了豐富的開發工具和庫函數,
    的頭像 發表于 09-02 09:07 ?742次閱讀

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式
    的頭像 發表于 07-31 09:25 ?1259次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>與AI整合

    嵌入式軟件開發招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發經驗,音視頻領域應用層開發 地址:北京市昌平區 郵箱:10
    發表于 07-26 13:44

    【《軟件開發珠璣》閱讀體驗】+ 心得

    【《軟件開發珠璣》閱讀體驗】+ 心得 感謝電子發燒友論壇提供的讀書機會。讀這本書使我在編程方面多了位資深老師。 在軟件項目開發領域的時,我閱讀
    發表于 06-23 17:56
    主站蜘蛛池模板: 操你啦在线视频 | 色婷婷六月天 | 亚洲美女视频在线观看 | 亚洲高清在线视频 | 大桥未久加勒比女热大陆在线 | 国产一区二区三区美女图片 | 久久精品国产99国产精品澳门 | 69日本xxxxxxxxx98 69日本xxxxxxxxx内谢 | 久久国产视频网站 | 美女18毛片 | 欧美一级视频在线观看欧美 | 亚洲精品成人久久久影院 | 成人av在线电影 | 国产片18在线观看 | 黄色网址视频在线观看 | 天天夜夜狠狠一区二区三区 | 四虎永久在线日韩精品观看 | 乱j伦小说在线阅读 | 色se01短视频永久免费 | 日本黄色免费片 | 午夜片 飘香香影院 | 日本亚洲免费 | 一区二区三区视频 | 国内自拍露脸普通话对白在线 | 稀缺资源呦视频在线网站 | 在线播放免费 | 一区精品视频 | 台湾三级毛片 | dy天堂 | 4388x17亚洲最大成人网 | 日本不卡高清视频 | 午夜亚洲国产 | 加勒比一到三区 | 国产一区二区在线观看免费 | 国产色婷婷精品综合在线 | 黄色片网站日本 | 天天摸天天操天天射 | 日本特级黄色录像 | 亚洲国产精品自在现线让你爽 | 欧美影院一区 | 男女免费在线视频 |