0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CDT 4.0嵌入式開發(fā)的更多功能

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Doug Schaefer ? 2022-08-12 09:32 ? 次閱讀

2006 年對于 Eclipse C/C++ 開發(fā)工具 (CDT) 環(huán)境來說是具有里程碑意義的一年,幾乎在項目的每個領(lǐng)域都有增長。目前,開發(fā)人員每月下載 CDT 超過 85,000 次(高于 2006 年初的 60,000 次),并且有十幾個提交者正在開發(fā)下一個 CDT 版本。同時,許多工具供應(yīng)商現(xiàn)在重新分發(fā) Eclipse 和 CDT 及其產(chǎn)品,特別是在 CDT 已成為事實上的標準開發(fā)環(huán)境的嵌入式市場。

CDT 中有什么

CDT 主要關(guān)注軟件開發(fā)的編輯、構(gòu)建和調(diào)試周期。它的主要目標是提高程序員用 C 和 C++ 編寫代碼的效率,同時利用開發(fā)人員已經(jīng)用于構(gòu)建和調(diào)試的高質(zhì)量工具鏈。最初,CDT 項目專注于使用 GNU 工具鏈的開發(fā)人員,包括 gcc 和 gdb,這是迄今為止開源社區(qū)中最流行的工具集。但是,CDT 項目現(xiàn)在也支持其他環(huán)境,直接或通過商業(yè)供應(yīng)商提供的基于 CDT 的環(huán)境。

CDT 遵循與其他基于 Eclipse 的開發(fā)環(huán)境相同的用戶界面和項目資源結(jié)構(gòu)。用戶界面包含一組視圖和編輯器,這些視圖和編輯器顯示為 Eclipse 窗口的選項卡式部分。視圖顯示有關(guān)項目的各種信息,編輯器允許開發(fā)人員更改項目中的文件??梢詫⒁晥D組織到稱為透視圖的頁面中,這些頁面可以自定義視圖的布局以用于各種目的,例如編輯和調(diào)試。用戶還可以根據(jù)自己的特定需求調(diào)整和保存視角。圖 1 顯示了 C/C++ 透視圖。

圖 1: C/C++ 透視圖

pYYBAGL1rc6AE_aVAAsiCQLnpGw651.png

Eclipse 中的項目是用戶使用的頂級資源。通常,項目映射到用戶文件系統(tǒng)中的根目錄。Eclipse 插件可以遞歸地訪問該目錄及其子目錄中的每個文件。Eclipse 還提供了將其他文件和目錄鏈接到項目結(jié)構(gòu)中的機制,但不提供排除文件的通用機制。

Eclipse 平臺提供對文件和項目的管理。CDT 擴展了這種管理以區(qū)分源文件、目標文件和其他文件類型;它還提供文件內(nèi)容的結(jié)構(gòu)化表示。使用這種表示,CDT 填充大綱視圖(顯示當前文件中的目錄)和 C/C++ 項目視圖(顯示可用項目中的目錄)。

CDT 核心還維護每個項目的符號數(shù)據(jù)庫。這個稱為索引的數(shù)據(jù)庫允許許多功能提供源代碼分析和導(dǎo)航。例如,用戶可以在源代碼中選擇一個函數(shù)名稱并進行搜索以找到對該函數(shù)的所有引用。然后,用戶可以調(diào)用重命名重構(gòu)功能來更改整個項目中該函數(shù)的名稱。

CDT 編輯器提供了開發(fā)人員在高級集成開發(fā)環(huán)境 (IDE) 中所期望的許多生產(chǎn)力功能。最大的生產(chǎn)力增強器是內(nèi)容輔助功能,它使用來自 CDT 的內(nèi)置解析器的信息來提供有效的代碼完成,給定當前包含光標的上下文。編輯器還提供代碼著色,區(qū)分關(guān)鍵字和標識符以增強代碼可讀性,以及括號匹配和自動制表符,使復(fù)雜的代碼結(jié)構(gòu)更容易輸入。

CDT 還包含以下兩個構(gòu)建系統(tǒng):

標準構(gòu)建:重用用戶現(xiàn)有的構(gòu)建基礎(chǔ)設(shè)施。此功能對于在傳統(tǒng) make 文件上投入巨資以確保高質(zhì)量、可重復(fù)構(gòu)建的項目團隊尤其重要。

托管構(gòu)建:允許工具供應(yīng)商提供高級用戶界面來設(shè)置編譯和鏈接選項;它還自動調(diào)用構(gòu)建。托管構(gòu)建對于新項目和寧愿花時間編寫源代碼而不是創(chuàng)建構(gòu)建文件的用戶很有用。

CDT 調(diào)試透視圖提供了調(diào)試會話的可視化(參見圖 2)。原生調(diào)試器(如 gdb)處理執(zhí)行應(yīng)用程序、設(shè)置斷點和提取變量值的具體細節(jié)。表 1 總結(jié)了調(diào)試透視圖提供的可視化。

此視圖顯示器

調(diào)試當前調(diào)試會話以及正在調(diào)試的應(yīng)用程序的線程和堆棧幀

變量當前堆棧幀的變量值

登記CPU 寄存器的當前值

記憶內(nèi)存的二進制內(nèi)容

拆卸當前執(zhí)行位置的指令的匯編代碼

表格1

圖 2: CDT 調(diào)試透視圖提供了調(diào)試會話的可視化

poYBAGL1rdWAZzkmAAmw5Idwmw8888.png

CDT 4.0 中的新功能

隨著 CDT 貢獻者的大量涌入,新版本將引入一些令人興奮的功能,以改善用戶體驗、提高生產(chǎn)力并提供更大的可擴展性。正在開發(fā)的功能包括:

內(nèi)部構(gòu)建器:通過消除處理 make 文件的需要來提高構(gòu)建性能。為了確定構(gòu)建必須處理哪些文件,Internal Builder 使用 Eclipse 跟蹤文件更改的能力并使用存儲在 CDT 源索引中的文件間依賴關(guān)系信息。構(gòu)建器可以并行化編譯器以在多核機器上提供更快的構(gòu)建時間。

支持預(yù)建索引信息:為了進一步提高索引性能,CDT 索引器將允許軟件開發(fā)工具包 (SDK) 供應(yīng)商,包括主要操作系統(tǒng)供應(yīng)商,為 SDK 提供的頭文件預(yù)建索引信息。索引器然后可以將此信息與用戶代碼的索引集成,從而無需在用戶環(huán)境中解析 SDK 頭文件。

增強的索引信息: CDT 團隊增強了捕獲的索引信息以啟用新的導(dǎo)航

和源代碼分析視圖。Call Hierarchy View(圖 3)允許在函數(shù)和它們調(diào)用或被調(diào)用的函數(shù)之間導(dǎo)航。Include Hierarchy View 允許基于包含關(guān)系在文件之間導(dǎo)航,Type Hierarchy View 可以基于繼承關(guān)系在 C++ 類之間導(dǎo)航。

圖 3:調(diào)用層次結(jié)構(gòu)視圖

pYYBAGL1rbiAWL7zAADZjBca8XM463.jpg

對 Windows SDK 的支持:最近,Microsoft 提供了它的編譯器作為其 Windows SDK 的免費下載。CDT 4.0 將包括構(gòu)建和調(diào)試支持,讓這些工具與 CDT 項目一起工作。因此,開發(fā)人員將不再需要在 Windows 上使用 GNU 工具,這些工具由于需要仿真環(huán)境(如 cygwin)或不完整的 SDK 支持(如 mingw)而存在問題。這種構(gòu)建和調(diào)試支持還將為 Visual Studio 用戶在未來將他們的項目遷移到 CDT 打開大門。

項目生成框架:許多針對特定平臺的 IDE 可以為各種項目類型生成框架項目。例如,桌面 GUI 應(yīng)用程序的項目可以生成足夠的源代碼以使框架運行并在屏幕上顯示窗口。此樣板代碼為開發(fā)人員在構(gòu)建項目時提供了一個良好的開端。CDT 4.0 將為此類項目生成提供框架。

CDT 4.0 將成為 CDT 的里程碑式版本。除了允許 CDT 團隊確定 API 之外,該版本還引入了新功能,使 CDT 成為所有開發(fā)人員構(gòu)建 C/C++ 應(yīng)用程序的有吸引力的環(huán)境,無論他們針對哪個平臺。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3553

    瀏覽量

    88994
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2113

    瀏覽量

    73742
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1639

    瀏覽量

    49197
收藏 人收藏

    評論

    相關(guān)推薦

    Java開發(fā)嵌入式開發(fā)

    、Android開發(fā)和大數(shù)據(jù)開發(fā)等領(lǐng)域,這些領(lǐng)域也都有大量的崗位需求。從行業(yè)發(fā)展趨勢來看,隨著5G標準的落地以及產(chǎn)業(yè)互聯(lián)網(wǎng)的發(fā)展,未來物聯(lián)網(wǎng)領(lǐng)域的發(fā)展前景將非常廣闊,而嵌入式開發(fā)作為物聯(lián)網(wǎng)開發(fā)
    發(fā)表于 11-05 08:02

    多功能嵌入式解碼軟件的相關(guān)資料分享

    使用方法第四章多功能嵌入式解碼軟件(4)  在UARTTOOL中使用類庫概述  在嵌入式開發(fā)的過程中,由于經(jīng)常需要下位機與上位機通信,通信之間...
    發(fā)表于 12-20 08:05

    嵌入式開發(fā)圣經(jīng)

    嵌入式系統(tǒng)開發(fā)圣經(jīng):嵌入式開發(fā)圣經(jīng)
    發(fā)表于 03-25 13:08 ?88次下載

    基于ARM的嵌入式開發(fā)

    基于ARM的嵌入式開發(fā):華清遠見/孫天澤基于ARM的嵌入式開發(fā)內(nèi)容有:ARM簡介,基于ARM的嵌入式產(chǎn)品,ARM架構(gòu),基于ARM的嵌入式開發(fā)。
    發(fā)表于 10-04 08:49 ?83次下載

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進行開發(fā)嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式開發(fā)入門_學嵌入式開發(fā)需要看哪些書籍

    現(xiàn)在嵌入式開發(fā)越來越吃香,很多人都想要學習卻不知道要從何下手。本文分析了學習嵌入式軟件開發(fā)需要具備哪些基本知識和技能,開發(fā)學習的基本步驟,并給出了各種參考資料及網(wǎng)站,同時小編還推薦了學
    的頭像 發(fā)表于 04-04 10:25 ?2.5w次閱讀

    嵌入式開發(fā)好學嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么

    本文首先來了解一下嵌入式前景及薪資待遇,其次解答了嵌入式開發(fā)好學不好學的問題,最后闡述了嵌入式開發(fā)必會知識以及嵌入式開發(fā)職業(yè)的四大發(fā)展方向,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 05-18 16:41 ?9203次閱讀

    嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程

    本文主要闡述了嵌入式開發(fā)的產(chǎn)品,其次介紹了嵌入式開發(fā)的流程。
    發(fā)表于 08-31 15:38 ?1.1w次閱讀

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在PC機的Windows系統(tǒng)下安裝Ubuntu虛擬機,搭建
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費分享

    嵌入式開發(fā)資料免費分享嵌入式工程師經(jīng)驗分享:如何學習嵌入式開發(fā)截取文檔部分學習嵌入式工程師經(jīng)驗分享的資料分享給大家,文檔上從、嵌入式系統(tǒng)的概
    發(fā)表于 10-21 11:07 ?47次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費分享

    嵌入式開發(fā)Linux入門

    調(diào)試器嵌入式開發(fā)的流程步驟1:開發(fā)引導(dǎo)加載程序步驟2:內(nèi)核實現(xiàn)步驟3:創(chuàng)建模塊(設(shè)備驅(qū)動程序)步驟4:創(chuàng)建應(yīng)用程序步驟5(最后一步):系統(tǒng)調(diào)整結(jié)束語導(dǎo)語近年來,“嵌入式設(shè)備”對Linux的采用越來越多。Linux標準擁有的許
    發(fā)表于 11-02 14:36 ?31次下載
    <b class='flag-5'>嵌入式開發(fā)</b>Linux入門

    python做嵌入式開發(fā)_Python和嵌入式的區(qū)別是什么?可以做嵌入式開發(fā)嗎?

    從概念上來說,嵌入式和Python的區(qū)別還是比較明顯的,嵌入式是一個開發(fā)領(lǐng)域,而Python則是一門編程語言。下面就來和大家說一說嵌入式和Python這兩個之間的區(qū)別。
    發(fā)表于 11-02 20:21 ?14次下載
    python做<b class='flag-5'>嵌入式開發(fā)</b>_Python和<b class='flag-5'>嵌入式</b>的區(qū)別是什么?可以做<b class='flag-5'>嵌入式開發(fā)</b>嗎?

    嵌入式開發(fā)培訓(xùn)學什么?嵌入式開發(fā)板知識講解

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進行開發(fā),一般常用的系統(tǒng)有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或匯編開發(fā);用高級處理器,arm7,a
    發(fā)表于 11-02 20:21 ?16次下載
    <b class='flag-5'>嵌入式開發(fā)</b>培訓(xùn)學什么?<b class='flag-5'>嵌入式開發(fā)</b>板知識講解

    嵌入式開發(fā) ---必看圖書

    1.《linux驅(qū)動設(shè)備驅(qū)動開發(fā)詳解》 基于linux4.0 是目前主流的 嵌入式開發(fā)用的系統(tǒng) 整個開發(fā)流程很詳細,是嵌入式開發(fā)的入門之選,
    發(fā)表于 11-03 13:06 ?12次下載
    <b class='flag-5'>嵌入式開發(fā)</b> ---必看圖書

    嵌入式開發(fā)蜂鳴器代碼

    嵌入式開發(fā)蜂鳴器代碼
    發(fā)表于 03-29 17:04 ?3次下載