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

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

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

嵌入式硬件的軟件開(kāi)發(fā)工具趨勢(shì)

djelje ? 2022-12-28 09:51 ? 次閱讀

都說(shuō)手里只有錘子的人,看什么都像釘子。為正確的工作使用正確的工具對(duì)于任何技術(shù)職業(yè)的有效性和效率都是至關(guān)重要的。嵌入式系統(tǒng)開(kāi)發(fā)也不例外。也就是說(shuō),直到最近,針對(duì)嵌入式開(kāi)發(fā)的工具還缺乏針對(duì)桌面、Web 和移動(dòng)開(kāi)發(fā)人員的開(kāi)發(fā)工具中的改進(jìn)和現(xiàn)代功能集。此外,對(duì)微控制器FPGA 進(jìn)行編程歷來(lái)需要相當(dāng)昂貴的硬件編程器/調(diào)試器和專有軟件許可證。最近對(duì)更多開(kāi)源生態(tài)系統(tǒng)(例如,RISC-V 微處理器Arduino IDE 等)的推動(dòng),可以說(shuō)對(duì)許多嵌入式開(kāi)發(fā)工具的穩(wěn)健性和用戶友好性產(chǎn)生了積極影響。

集成開(kāi)發(fā)環(huán)境 (IDE):許多開(kāi)發(fā)人員喜歡使用簡(jiǎn)單的文本編輯器進(jìn)行編碼,尤其是 Linux 上的 Vim 或 Nano。它們是輕量級(jí)的,默認(rèn)情況下幾乎可以在每個(gè) Linux 發(fā)行版中找到。然而,現(xiàn)代代碼編輯器和 IDE 提供了更多的功能,這使得它們對(duì)嵌入式開(kāi)發(fā)人員非常有吸引力。此外,許多嵌入式硬件制造商提供特定于其各種微控制器系列的定制 IDE。以制造商為中心的 IDE 提供了許多優(yōu)勢(shì),例如訪問(wèn)外部組件的支持庫(kù)、多個(gè)微控制器的模板以及幫助開(kāi)發(fā)人員開(kāi)始使用新硬件的示例。

版本控制工具:如果不是連續(xù)的,軟件開(kāi)發(fā)就什么都不是。此外,很少有單個(gè)開(kāi)發(fā)人員開(kāi)發(fā)現(xiàn)代嵌入式系統(tǒng)?;蛘咧辽伲度胧介_(kāi)發(fā)人員必須與移動(dòng)或 Web 開(kāi)發(fā)人員合作,因?yàn)榍度胧较到y(tǒng)往往是更大軟件生態(tài)系統(tǒng)的一部分。Git 等版本控制工具提供了在整個(gè)開(kāi)發(fā)周期中管理源代碼迭代的能力。GitHub 和 GitLab 是兩個(gè)流行的基于云的源代碼和其他設(shè)計(jì)文件存儲(chǔ)庫(kù)。版本控制、發(fā)布管理和錯(cuò)誤報(bào)告只是使用版本控制工具的部分好處。但是,也有一些缺點(diǎn)。主要是它們已成為網(wǎng)絡(luò)安全攻擊鏈的一部分,因?yàn)殚_(kāi)發(fā)人員有時(shí)會(huì)不小心留下用戶名、密碼、或他們推送到公開(kāi)可用存儲(chǔ)庫(kù)的提交中的加密密鑰。然后,不良行為者會(huì)搜索這些存儲(chǔ)庫(kù)以查找該信息并將其整合到他們的惡意軟件攻擊中。

調(diào)試器:從歷史上看,調(diào)試微控制器意味著昂貴的硬件。在線仿真器 (ICE) 是插入更廣泛系統(tǒng)的微控制器插座的設(shè)備。它們?cè)试S實(shí)時(shí)執(zhí)行固件,同時(shí)還提供調(diào)試功能,例如寄存器和內(nèi)存訪問(wèn)、條件斷點(diǎn)和跟蹤緩沖區(qū)。更常見(jiàn)且更便宜的是在線調(diào)試器 (ICD)。通常,設(shè)備位于開(kāi)發(fā)人員工作站和目標(biāo)微控制器之間,并允許通過(guò)在線串行編程 (ICSP) 協(xié)議進(jìn)行調(diào)試。某些現(xiàn)代微控制器開(kāi)發(fā)板甚至內(nèi)置調(diào)試 ICSP 硬件,并通過(guò)直接連接目標(biāo)開(kāi)發(fā)板和開(kāi)發(fā)人員工作站的 USB 電纜進(jìn)行訪問(wèn)。

Linter:當(dāng)我們寫(xiě)文章或報(bào)告時(shí),我們通過(guò)拼寫(xiě)和語(yǔ)法檢查工具運(yùn)行最終草稿。linter 是一個(gè)類似的概念,但用于源代碼。linter 靜態(tài)地查看源代碼(即,在編譯之前,而不是在機(jī)器代碼在目標(biāo)設(shè)備上運(yùn)行時(shí)),并且可以檢測(cè)由風(fēng)格錯(cuò)誤、配置錯(cuò)誤、項(xiàng)目結(jié)構(gòu)錯(cuò)誤、庫(kù)依賴性錯(cuò)誤引起的問(wèn)題。這些錯(cuò)誤會(huì)影響從可讀性到阻止成功編譯的任何事情。

GitHub Copilot:幾十年來(lái),自動(dòng)完成一直是許多代碼編輯器的一個(gè)功能。自動(dòng)完成通過(guò)在開(kāi)發(fā)人員輸入源代碼時(shí)為關(guān)鍵字和變量名稱提供實(shí)時(shí)智能建議來(lái)幫助開(kāi)發(fā)人員提高效率。GitHub 的 Copilot 是一種基于 AI 的代碼完成工具(Visual Studio Code 的插件),它將自動(dòng)完成的理念提升到了一個(gè)全新的水平。Copilot 將檢查開(kāi)發(fā)人員編寫(xiě)的函數(shù)名稱,并推薦執(zhí)行該函數(shù)所需的全部源代碼。例如,假設(shè)您編寫(xiě)以下內(nèi)容:

float calculateVolume

Copilot 將完成函數(shù)聲明如下:

float calculateVolume(float radius) {

return (4.0/3.0) * PI * radius * radius * radius;

}

Copilot 本質(zhì)上是一位 AI 同事,他可以通過(guò)至少提供函數(shù)定義的起點(diǎn)來(lái)幫助開(kāi)發(fā)代碼。但是,與任何自動(dòng)化工具一樣,它并不能取代人工審查并在必要時(shí)更正 Copilot 生成的代碼的需要。

HTTP 和 API 檢查工具:嵌入式設(shè)備(即物聯(lián)網(wǎng)設(shè)備)不通過(guò)網(wǎng)絡(luò)通信的情況越來(lái)越少,即使不是互聯(lián)網(wǎng)本身。不幸的是,Web 應(yīng)用程序開(kāi)發(fā)人員很可能正在(與嵌入式開(kāi)發(fā)工作)并行創(chuàng)建軟件。Postman 等工具允許嵌入式開(kāi)發(fā)人員獨(dú)立檢查和測(cè)試 HTTP 請(qǐng)求方法(例如,PUT、POST、GET)和 API 請(qǐng)求并在將它們提交到固件之前。因此,故障排除與嵌入式硬件無(wú)關(guān),確保 API 的任何問(wèn)題都完全是因?yàn)?API 本身,而不是固件或嵌入式硬件。

數(shù)據(jù)包檢查工具:雖然面向開(kāi)發(fā)的 HTTP 和 API 檢查工具非常適合高級(jí)調(diào)試,但有時(shí)需要在數(shù)據(jù)包級(jí)別進(jìn)行檢查,或者可能需要檢查不同的協(xié)議,例如 Zigbee。在這些情況下,有必要使用 Wireshark 等數(shù)據(jù)包檢測(cè)工具。Wireshark 可以記錄和檢查許多基于數(shù)據(jù)包的通信協(xié)議。

基于軟件的邏輯分析儀:開(kāi)發(fā)人員越來(lái)越普遍地使用基于軟件的工具來(lái)調(diào)試他們的設(shè)備,而不是擺滿笨重的基于硬件的示波器和邏輯分析儀。通常,基于軟件的工具通過(guò) USB 電纜連接到個(gè)人計(jì)算機(jī),界面以桌面應(yīng)用程序的形式提供。流行的入門(mén)級(jí)/中級(jí)邏輯分析儀是 Saleae 邏輯分析儀。這些基于軟件的工具對(duì)現(xiàn)場(chǎng)技術(shù)人員來(lái)說(shuō)非常有吸引力。通過(guò)將傳統(tǒng)上基于實(shí)驗(yàn)室的分析帶到現(xiàn)場(chǎng),他們可以更有效地檢查和排除已部署設(shè)備的故障?;谲浖姆治銎鞯囊粋€(gè)重要優(yōu)勢(shì)是,除了支持的默認(rèn)協(xié)議(例如 I2C、SPI、串行)之外,還可以為自定義通信協(xié)議編寫(xiě)您自己的協(xié)議分析器。

安全外殼 (SSH) 終端客戶端:對(duì)于運(yùn)行操作系統(tǒng)并提供 shell 訪問(wèn)以進(jìn)行遠(yuǎn)程管理的更強(qiáng)大的嵌入式系統(tǒng),可能需要通過(guò) SSH 連接到設(shè)備以執(zhí)行特定的維護(hù)任務(wù)?;蛘呖赡苄枰h(yuǎn)程登錄多個(gè)物聯(lián)網(wǎng)設(shè)備與之通信的服務(wù)器,并對(duì)后端服務(wù)進(jìn)行更改。無(wú)論如何,遠(yuǎn)程訪問(wèn)系統(tǒng)的能力至關(guān)重要,而 Termius 等 SSH 終端客戶端使之成為可能?,F(xiàn)代客戶端中的其他有用功能包括通過(guò)單擊鼠標(biāo)創(chuàng)建、存儲(chǔ)和運(yùn)行 bash 代碼片段。它們還提供一次訪問(wèn)多個(gè)終端的能力。最后,一些客戶端還提供安全文件傳輸 (SFTP) 功能,用于將文件傳輸?shù)奖镜赜?jì)算機(jī)或從遠(yuǎn)程設(shè)備傳輸文件。

審核編輯黃昊宇

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

    關(guān)注

    5105

    文章

    19288

    瀏覽量

    310197
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IAR發(fā)布云端平臺(tái),助力現(xiàn)代嵌入式軟件開(kāi)發(fā)團(tuán)隊(duì)

    該平臺(tái)為嵌入式軟件開(kāi)發(fā)人員提供前所未有的自由度與靈活性,助力開(kāi)發(fā)團(tuán)隊(duì)在工具選擇和日常工作流中實(shí)現(xiàn)更高效的協(xié)作與創(chuàng)新。
    的頭像 發(fā)表于 03-12 11:56 ?86次閱讀

    盤(pán)點(diǎn)工程師常用的嵌入式開(kāi)發(fā)工具

    嵌入式開(kāi)發(fā)涉及硬件軟件的緊密結(jié)合,開(kāi)發(fā)工具的選擇對(duì)效率和質(zhì)量至關(guān)重要。以下是嵌入式開(kāi)發(fā)中常用的工具
    的頭像 發(fā)表于 02-07 10:06 ?600次閱讀

    嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境

    設(shè)備和智能傳感器)上,這些設(shè)備通常具有有限的計(jì)算能力、存儲(chǔ)空間和功耗。本文將您介紹嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性,以及常見(jiàn)的機(jī)器學(xué)習(xí)開(kāi)發(fā)軟件開(kāi)發(fā)環(huán)境。 嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與優(yōu)勢(shì) 由于
    的頭像 發(fā)表于 01-25 17:05 ?302次閱讀
    <b class='flag-5'>嵌入式</b>機(jī)器學(xué)習(xí)的應(yīng)用特性與<b class='flag-5'>軟件開(kāi)發(fā)</b>環(huán)境

    最新Simplicity SDK軟件開(kāi)發(fā)工具包發(fā)布

    最新的SimplicitySDK軟件開(kāi)發(fā)工具包已經(jīng)發(fā)布!此次更新針對(duì)SiliconLabs(芯科科技)第二代無(wú)線開(kāi)發(fā)平臺(tái)帶來(lái)了包括藍(lán)牙6.0的信道探測(cè)(Channel Sounding
    的頭像 發(fā)表于 12-24 09:47 ?405次閱讀

    嵌入式工程師常用的開(kāi)發(fā)工具有哪些?

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

    嵌入式系統(tǒng)開(kāi)發(fā)硬件的關(guān)系 嵌入式系統(tǒng)開(kāi)發(fā)常見(jiàn)問(wèn)題解決

    嵌入式系統(tǒng)開(kāi)發(fā)硬件的關(guān)系 嵌入式系統(tǒng)是專為特定應(yīng)用設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它們通常嵌入在所控制的設(shè)備中。這些系統(tǒng)的關(guān)鍵特點(diǎn)是它們與
    的頭像 發(fā)表于 12-09 09:38 ?586次閱讀

    一文了解嵌入式軟件開(kāi)發(fā)的對(duì)象

    以前應(yīng)用場(chǎng)景很單一,嵌入式開(kāi)發(fā)可能談不上面向?qū)ο?b class='flag-5'>開(kāi)發(fā)。但現(xiàn)在,做嵌入式開(kāi)發(fā),沒(méi)有面向?qū)ο?b class='flag-5'>開(kāi)發(fā),你就有點(diǎn)落伍了。 本文結(jié)合個(gè)人經(jīng)驗(yàn)和周立功《抽象接口技術(shù)和組件
    的頭像 發(fā)表于 11-15 10:31 ?528次閱讀
    一文了解<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>的對(duì)象

    你認(rèn)為嵌入式軟件開(kāi)發(fā)的盡頭是什么?

    嵌入式軟件開(kāi)發(fā)的“盡頭”是一個(gè)富有哲理且多維度的概念,因?yàn)樗粌H關(guān)乎技術(shù)發(fā)展的極限,還涉及到行業(yè)應(yīng)用、市場(chǎng)需求、技術(shù)融合與創(chuàng)新等多個(gè)方面。從幾個(gè)不同的視角來(lái)看
    的頭像 發(fā)表于 09-18 09:42 ?592次閱讀
    你認(rèn)為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>的盡頭是什么?

    嵌入式開(kāi)發(fā)常用軟件有哪些?

    查看源代碼,注釋文檔等非常方便,因?yàn)樗檎?,定位,彩色顯示等功能非常強(qiáng)大。開(kāi)發(fā)人員會(huì)當(dāng)成源代碼閱讀工具使用。 4.Keil uVision5 Keil 5 軟件是一款功能強(qiáng)大的嵌入式
    發(fā)表于 09-09 15:22

    嵌入式linux開(kāi)發(fā)板芯片的工作原理

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

    嵌入式軟件開(kāi)發(fā)與AI整合

    嵌入式軟件開(kāi)發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢(shì)之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來(lái)越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于
    的頭像 發(fā)表于 07-31 09:25 ?1041次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>與AI整合

    嵌入式系統(tǒng)怎么學(xué)?

    、C++或者Python。這些語(yǔ)言在嵌入式系統(tǒng)開(kāi)發(fā)中都被廣泛應(yīng)用。 3、微處理器/微控制器架構(gòu):學(xué)習(xí)常見(jiàn)的微處理器和微控制器架構(gòu),如ARM、AVR、PIC等,了解其特性和應(yīng)用場(chǎng)景。 4、嵌入式系統(tǒng)
    發(fā)表于 07-02 10:10

    嵌入式硬件VS軟件,到底哪個(gè)更難?

    嵌入式系統(tǒng)開(kāi)發(fā)中,硬件軟件是密不可分的兩個(gè)方面。但是,究竟是硬件開(kāi)發(fā)更具挑戰(zhàn)性,還是
    的頭像 發(fā)表于 06-13 08:10 ?1447次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>硬件</b>VS<b class='flag-5'>軟件</b>,到底哪個(gè)更難?

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式
    發(fā)表于 05-16 11:00

    AMD Vitis? Embedded嵌入式軟件開(kāi)發(fā)套件的功能和特性概述

    Vitis Embedded 是一款獨(dú)立的嵌入式軟件開(kāi)發(fā)套件,主要用于為 AMD 自適應(yīng) SoC 和 FPGA 中的 AMD 嵌入式處理子系統(tǒng)(基于 ARM 的子系統(tǒng)和 AMD MicroBlaze)
    的頭像 發(fā)表于 04-08 10:50 ?1114次閱讀
    AMD Vitis? Embedded<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開(kāi)發(fā)</b>套件的功能和特性概述