日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式分享
[導(dǎo)讀]除非你一直躲在一塊巖石下,否則你可能已經(jīng)看到ChatGPT正在席卷整個世界。雖然ChatGPT已經(jīng)引起了人們的普遍興趣,但它是一種人工智能模型,有助于證明開發(fā)者和企業(yè)正在重新思考我們?nèi)绾喂ぷ骱烷_發(fā)軟件系統(tǒng)。我并不是說該技術(shù)正處于我們可以讓人工智能模型為我們編寫生產(chǎn)代碼的階段。相反,我建議人工智能可以通過幾種方式來改變嵌入式軟件開發(fā)人員學(xué)習(xí)、工作和編寫軟件的方式。讓我們探索一些。

除非你一直躲在一塊巖石下,否則你可能已經(jīng)看到ChatGPT正在席卷整個世界。雖然ChatGPT已經(jīng)引起了人們的普遍興趣,但它是一種人工智能模型,有助于證明開發(fā)者和企業(yè)正在重新思考我們?nèi)绾喂ぷ骱烷_發(fā)軟件系統(tǒng)。我并不是說該技術(shù)正處于我們可以讓人工智能模型為我們編寫生產(chǎn)代碼的階段。相反,我建議人工智能可以通過幾種方式來改變嵌入式軟件開發(fā)人員學(xué)習(xí)、工作和編寫軟件的方式。讓我們探索一些。

史詩方法#1-通過人工智能對編程加速開發(fā)

我一直喜歡的一個敏捷方法是成對編程。配對編程讓兩個開發(fā)人員一起開發(fā)一個軟件特性。一個開發(fā)人員通過編寫代碼作為驅(qū)動程序,另一個作為導(dǎo)航員,檢查準確性并記住更大的圖片。我很久以前就知道,為嵌入式系統(tǒng)編寫代碼并不是困難的部分。任何人都可以編寫代碼;它檢查代碼是否正確,并做它需要的,這就是訣竅。

人工智能模型可以生成代碼。Github的副駕駛和OpenAI的代碼沙箱做得很好。將一個人作為導(dǎo)航器與一個將編寫代碼的AI模型配對是加速開發(fā)人員吞吐量的好方法。例如,我最近正在開發(fā)一個軟件模塊,其中包括單元測試,在那里我使用了副駕駛來幫助我加速開發(fā)。當我開始輸入我正在編寫的函數(shù)或測試的名稱時,副駕駛會開始建議代碼的樣子,比如:

TEST(HeaterGroup, CreateThread)

{

UINT status;

TX_THREAD HeaterThread;

status = tx_thread_create(&HeaterThread, "HeaterThread", HeaterTask, 0,

HeaterThreadStack, HEATER_THREAD_STACK_SIZE,

HEATER_THREAD_PRIORITY, HEATER_THREAD_PRIORITY,

TX_NO_TIME_SLICE, TX_AUTO_START);

CHECK_EQUAL(status, TX_SUCCESS);

}

副駕駛很快就產(chǎn)生了一個測試,我必須在這個案例中進行審查和祝福。它并不總是正確的,也并不總是有一個好的建議,但總的來說,它提高了我編寫代碼的速度。人工導(dǎo)航器可以導(dǎo)致更高的質(zhì)量和更快的代碼開發(fā)。

史詩般的方式#2-更快的調(diào)試

我發(fā)現(xiàn)ChatGPT在查找代碼中的錯誤或建議改進代碼方面相對不錯。從歷史上看,根據(jù)安斯彭可2020年嵌入式營銷調(diào)查,開發(fā)者平均花了20%的時間來調(diào)試代碼。然而,我遇到過許多開發(fā)人員和團隊,他們花費了超過40%的時間!減少調(diào)試時間可以節(jié)省數(shù)月和數(shù)十萬美元的開發(fā)成本。人工智能工具將幫助開發(fā)者實現(xiàn)這一目標。

我最近在一篇演示C緩沖區(qū)溢出的文章中使用了代碼。該代碼如下:

#include

#include

int main (void){

printf ("Hello, world!\n");

printf ("Let's overflow the buffer!\r\n");

uint32_t array[5] = {0, 0, 0, 0, 0,};

for(int index = 0; index < 6; index++) {

printf("Index %d: %d\r\n", index, array[index]);

}

return 0;

}

我把這個代碼,粘貼到ChatGPT中,并要求它找到這個bug。其結(jié)果如下:

“在這段代碼中有一個緩沖區(qū)溢出。該數(shù)組被定義為大小為5,但是for循環(huán)試圖訪問一個索引6,這是越界的。這可能會導(dǎo)致未定義的行為,例如覆蓋不應(yīng)該修改的內(nèi)存。

要解決這個問題,您可以改變for循環(huán)條件,以停止在5,如下:

for(int index = 0; index < 5; index++) {

printf("Index %d: %d\r\n", index, array[index]);

}

This way the loop will only access the valid indices of the array, and will not cause buffer overflow.”

這可能看起來微不足道,但其潛力是令人信服的。ChatGPT能夠找到緩沖區(qū)溢出,提出修復(fù)它的方法并解釋原因。開發(fā)人員可能花了超過10-20秒的時間來發(fā)現(xiàn)這樣的錯誤,特別是如果錯誤更復(fù)雜的話。

我們已經(jīng)使用了靜態(tài)的和動態(tài)的分析工具來改進我們的代碼。使用人工智能工具來審查代碼并提出改進建議是合乎邏輯的下一步。我已經(jīng)和幾十個工程師交談過了,他們已經(jīng)在使用ChatGPT來幫助他們學(xué)習(xí)Rust,改進他們的C++代碼,找到更好的編寫Python的方法,等等。

史詩般的方法#3-將開發(fā)者指向正確的方向

有時,開發(fā)人員會遇到他們以前沒有完成過的活動。在這些情況下,開發(fā)人員將需要在網(wǎng)上走出去,做一些搜索,做一些研究,嘗試一些事情,最終,他們會弄明白。然而,這個過程有時可能需要比我們想要的更多的時間。有了人工智能工具,開發(fā)者可以找到正確的方向,并更快地加快速度。

例如,如果你正在開始開發(fā)一個新產(chǎn)品,并且必須制定一個軟件開發(fā)計劃,你可以問人工智能應(yīng)該包括什么。響應(yīng)可能是如下的:

項目概述:對項目的目標、目標和范圍的總結(jié)。

需求:對軟件的功能需求和非功能需求的詳細描述。

設(shè)計:對軟件的整體架構(gòu)和設(shè)計的描述,包括任何相關(guān)的圖表或原理圖。

開發(fā)時間表:關(guān)于軟件開發(fā)的詳細計劃,包括任務(wù)、里程碑和截止日期。

測試和質(zhì)量保證:一個關(guān)于測試和質(zhì)量保證的計劃,包括任何相關(guān)的測試工具和方法。

部署和維護:部署軟件并在生產(chǎn)過程中維護軟件的計劃。

資源分配:對項目所需資源的描述,包括人員、設(shè)備和預(yù)算。

風(fēng)險管理:識別和減輕整個項目中潛在風(fēng)險的計劃。

溝通:在項目團隊之間和與利益相關(guān)者之間的溝通計劃。

附錄:與項目相關(guān)但未包括在計劃主體中的任何附加信息。

ChatGPT生成了上述列表。是否準確?我認為這是一個優(yōu)秀的第一次通過。我使用的軟件開發(fā)計劃有更多的內(nèi)容,但所有這些項目都包括在內(nèi)了。因此,一個創(chuàng)建他們的第一個軟件開發(fā)計劃的人將會有一個方向要走。

現(xiàn)在,我認為這是一個很好的時機來指出,你不能總是相信人工智能工具會告訴你做的事情。我最近在做一個項目,其中我必須啟用糾錯碼(ECC)。我沒有在那個微控制器上做過,我很好奇ChatGPT是否會給我正確的答案,或者給我指明正確的方向。我閱讀了數(shù)據(jù)表,把我需要做的事情放在一起,然后實現(xiàn)了它。在驗證了我的解決方案后,我問ChatGPT如何做同樣的事情。生成的輸出是正確的方向,但遺漏了一些關(guān)鍵的細節(jié)。如果我單獨依賴它,我可能還會試圖弄清楚為什么ECC不工作。

結(jié)論

像ChatGPT、CoPilot等許多其他工具將極大地改變企業(yè)和開發(fā)人員編寫軟件的方式(以及更多)。然而,我不相信我們會很快把鑰匙交給機器。我懷疑這些工具能否優(yōu)化實時性能,或創(chuàng)建正確的權(quán)衡,以確保在多任務(wù)處理環(huán)境中能夠滿足最后期限。然而,增強開發(fā)者并幫助他們變得更高效的潛力是巨大的。大多數(shù)嵌入式系統(tǒng)公司面臨的兩個最大挑戰(zhàn)是上市時間和開發(fā)預(yù)算。自動化和流程可以幫助團隊沿著這條道路前進,但人工智能可能只是最終解決這些挑戰(zhàn)的工具。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉