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

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式分享
[導(dǎo)讀]幾乎我見過的每一個程序員都想寫一個堅如磐石的軟件。你對自己的發(fā)展感到驕傲,如果你的工作是編寫軟件,你希望軟件能夠運行。我從來沒有見過任何人在項目開始時說過,"讓我們寫出人類所知道的最糟糕的,緊密耦合的,昂貴的代碼。我們都想編寫好的代碼,使我們的產(chǎn)品無縫地工作,并贏得我們的贊揚,或至少我們的老板。不幸的是,編寫嵌入式軟件往往會變成一個充滿了bug、漏洞和其他令人毛骨悚然的東西的泥沼。所以,讓我們打破鏈條吧!這篇文章將討論構(gòu)建堅固的嵌入式軟件的五個基本技巧和技巧,我發(fā)現(xiàn)這些技巧和技巧有利于我的客戶、同事、學(xué)生、我自己,希望還有你。

幾乎我見過的每一個程序員都想寫一個堅如磐石的軟件。你對自己的發(fā)展感到驕傲,如果你的工作是編寫軟件,你希望軟件能夠運行。我從來沒有見過任何人在項目開始時說過,"讓我們寫出人類所知道的最糟糕的,緊密耦合的,昂貴的代碼"。我們都想編寫好的代碼,使我們的產(chǎn)品無縫地工作,并贏得我們的贊揚,或至少我們的老板。不幸的是,編寫嵌入式軟件往往會變成一個充滿了bug、漏洞和其他令人毛骨悚然的東西的泥沼。所以,讓我們打破鏈條吧!這篇文章將討論構(gòu)建堅固的嵌入式軟件的五個基本技巧和技巧,我發(fā)現(xiàn)這些技巧和技巧有利于我的客戶、同事、學(xué)生、我自己,希望還有你。

技巧1--讓你的產(chǎn)品及早且經(jīng)常地落入客戶的手中。

你可能會想知道什么東西能讓你的客戶提前拿到產(chǎn)品,并且經(jīng)常與堅固的嵌入式軟件有關(guān)。最后,你的客戶會決定你的產(chǎn)品是否堅固。如果你在沒有你的客戶的情況下,把你所有令人敬畏的、優(yōu)雅的、改變世界的代碼寫在一個倉庫里,你將會被一個突然的覺醒。

現(xiàn)在許多團(tuán)隊開始在沒有實際需求的情況下開發(fā)他們的產(chǎn)品。消費者通常不知道他們想要什么,直到他們觸摸、感覺和玩一種產(chǎn)品。因此,如果開發(fā)人員不與客戶密切合作,他們就可以隨意或構(gòu)建他們認(rèn)為客戶需要的東西。即使一個團(tuán)隊足夠幸運地?fù)碛行枨?這并不意味著客戶實際上知道他們想要什么。他們常常以為自己知道,但經(jīng)常改變主意。我不知道你怎么樣,但是盡管我有很高的學(xué)位和勤奮的工作,客戶還是經(jīng)常給我驚喜。獲得客戶反饋是至關(guān)重要的,我知道這聽起來很靈活,但也許那些家伙畢竟在做什么。

在我早期的咨詢生涯中,我有一個發(fā)展了月球屋頂?shù)目蛻?。他們需要幫助系統(tǒng)測試他們的產(chǎn)品,以確保他們的固件充分工作。一個驕傲的工程師把他們的原型帶出來,給我看了所有的鐘和口哨,以及它的偉大性。作為顧客,我做的第一件事就是同時按兩個按鈕。系統(tǒng)失控了。在震驚的表情變成憤怒之后,他問:"誰會同時按兩個按鈕?""。顯然,我和任何其他惡作劇的顧客,想知道如果我同時按下這兩個按鈕會發(fā)生什么!你只是不知道什么或如何使用一個產(chǎn)品,直到客戶,不設(shè)計它的人,掌握它。

技巧2-利用和使用現(xiàn)代測試技術(shù)

構(gòu)建堅固的軟件的關(guān)鍵是利用現(xiàn)代測試技術(shù)來提高代碼的健壯性。在當(dāng)今的行業(yè)中,人們正在大力推動嵌入式團(tuán)隊采用開發(fā)計劃和CI/CD等工具。這些方法和工具能夠在小型單元(單元測試)、多個模塊(集成測試)和系統(tǒng)一級(系統(tǒng)測試)中測試軟件,以及許多其他可能的測試。測試使團(tuán)隊能夠在特定的、受控制的條件下發(fā)現(xiàn)他們的軟件存在的問題。結(jié)果是一個更加健壯的軟件系統(tǒng)!

埃德斯格·迪杰斯特拉曾經(jīng)說過:"測試只能證明存在錯誤,而不能證明沒有錯誤。"明智的智慧應(yīng)該提醒你,構(gòu)建健壯的軟件不僅需要測試。采用單元測試和CI/CD可以很有吸引力地顯示您有100%的代碼覆蓋,您的系統(tǒng)是堅固的。不幸的是,這種想法是個陷阱!是的,您必須采用現(xiàn)代測試技術(shù)來提高您的代碼質(zhì)量,測試您的系統(tǒng),并提高其健壯性。然而,您還需要采取額外的行動,例如執(zhí)行代碼評審、利用對編程、體系結(jié)構(gòu)性能和分析、度量監(jiān)控等等。

技巧3-應(yīng)用靜態(tài)代碼分析工具來識別潛在的錯誤

嵌入式軟件開發(fā)人員日常使用的編程語言通常沒有完全指定。有些構(gòu)造或行為沒有在語言標(biāo)準(zhǔn)中定義,而是編譯器定義的行為。例如,如果讓一個整數(shù)循環(huán)在C中滾動,會發(fā)生什么情況?你能得到什么價值?這取決于編譯器,因為C標(biāo)準(zhǔn)沒有告訴你,所以編譯器供應(yīng)商決定了最佳的行動方案。

靜態(tài)代碼分析是一個您必須利用的工具,以具有健壯的固件。靜態(tài)分析將幫助您識別代碼中的潛在錯誤。靜態(tài)分析可以指出不推薦的特定構(gòu)造,檢查代碼是否符合編碼標(biāo)準(zhǔn),檢測漏洞,并提供代碼度量,僅舉幾個例子。我無法計算靜態(tài)分析工具在我的代碼出現(xiàn)潛在問題時,或在我允許復(fù)雜性進(jìn)入野草時,抓住它的頻率。我無法強(qiáng)調(diào)設(shè)置靜態(tài)分析工具并將其納入正常的日常編碼和開發(fā)流程的重要性。

技巧4-使用代碼分析工具來識別和優(yōu)化性能瓶頸

當(dāng)您考慮堅如磐石的嵌入式軟件時,您可能會考慮滿足客戶需求和沒有bug的軟件。然而,一個經(jīng)常被忽視的基本組成部分是系統(tǒng)的最佳運行。響應(yīng)性可能和系統(tǒng)不崩潰或一些丑陋的錯誤抬頭一樣重要。我非常喜歡使用分析工具來監(jiān)控和優(yōu)化產(chǎn)品的性能。有時候我做了一個簡單的代碼更改,大大提高了CPU的利用率。

分析工具可以幫助您檢查任務(wù)的周期性、執(zhí)行時間、狀態(tài)機(jī)行為、內(nèi)部通信性能等等。你需要使用工具來幫助你想象你的系統(tǒng)的性能,并抓住那些讓你頭疼的小問題。你不能依靠人類系統(tǒng)的監(jiān)控來說它是正確的。我不想說,但是我們無法捕捉和監(jiān)控我們的工具所能做到的一切!(至少不是實時的)。

技巧5-結(jié)合防御性編程技術(shù)來處理意外的輸入和場景

你可能是一個好的程序員或者管理者,在他們的團(tuán)隊中有好的程序員。然而,在所有的嵌入式系統(tǒng)代碼中,我仍然發(fā)現(xiàn)團(tuán)隊錯過的最少的成果之一是驗證他們的輸入和輸出。我知道,它是編程101的東西。然而,它似乎被許多開發(fā)人員忽略了。我不確定開發(fā)人員是不是太專注于編寫盡可能少的代碼行,還是覺得驗證在某種程度上膨脹了他們的代碼。如果您想編寫堅如磐石的嵌入式軟件,您必須使用基本的防御性編程技術(shù)來處理您可能無法預(yù)料的意外輸入和場景。

一個簡單的例子可能是檢查函數(shù)中接收的參數(shù)是否在預(yù)期范圍之內(nèi)。另一種可能是假設(shè)內(nèi)存損壞可能在循環(huán)中發(fā)生,并將其等于值(==在C++中)改變?yōu)橐粋€比或大的等號(&tt;=)。健壯的軟件并不是通過宏偉的建筑細(xì)節(jié)或巧妙、優(yōu)雅的代碼編寫來實現(xiàn)的。相反,它是通過謹(jǐn)慎和近乎偏執(zhí)地管理代碼的逐行細(xì)節(jié)來實現(xiàn)的。

結(jié)論

我們都想編寫可靠的高質(zhì)量軟件。不幸的是,今天的大部分軟件都離它很遠(yuǎn)。別誤會,我想情況在改善,但我們還有很長的路要走。我們已經(jīng)探索了五個關(guān)鍵的技巧,希望你們本周能仔細(xì)考慮。您是否在您的開發(fā)過程中使用了其中的每一個?你在注意細(xì)節(jié)嗎?你的客戶能提前拿到你的產(chǎn)品嗎?你會發(fā)現(xiàn),問自己幾個簡單的問題,關(guān)于這些小貼士,你會發(fā)現(xiàn)你需要做的調(diào)整,以開始編寫和提供更堅實的嵌入式軟件。


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

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

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

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

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

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

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

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

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

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

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

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(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)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(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)閉