天才教育網(wǎng)合作機構 > 培訓機構 >

                                                                                        綜合教育資訊

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        400-850-8622

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:培訓問(wèn)答 > 嵌入式開(kāi)發(fā):硬件工程師的 10 個(gè)軟件技巧

                                                                                        嵌入式開(kāi)發(fā):硬件工程師的 10 個(gè)軟件技巧

                                                                                        日期:2025-05-24     瀏覽:98    來(lái)源:綜合教育資訊
                                                                                        核心提示:嵌入式系統設計通常不僅需要了解硬件,還需要了解軟件如何影響硬件并與之交互。設計硬件需要一定的工程范例,這可能與設計軟件截然

                                                                                        嵌入式系統設計通常不僅需要了解硬件,還需要了解軟件如何影響硬件并與之交互。設計硬件需要一定的工程范例,這可能與設計軟件截然相反。在嵌入式開(kāi)發(fā)中,當從硬件設計過(guò)渡到軟件設計時(shí),硬件工程師在開(kāi)始開(kāi)發(fā)軟件時(shí)應該記住十個(gè)軟件技巧。

                                                                                        技巧1——首先是流程圖,其次是實(shí)現當一個(gè)工程師*次踏入軟件開(kāi)發(fā)的領(lǐng)域時(shí),有一種強烈的誘惑讓他立即投入并開(kāi)始編寫(xiě)代碼。這種思維模式相當于在原理圖完成之前就試圖設計PCB。坐下來(lái)開(kāi)發(fā)軟件時(shí),忽略開(kāi)始編寫(xiě)代碼的沖動(dòng),而是使用流程圖來(lái)開(kāi)發(fā)軟件的架構圖,這一點(diǎn)至關(guān)重要。這將使開(kāi)發(fā)人員了解應用程序所需的不同部件和組件,就像原理圖告訴工程師需要什么硬件組件一樣。通過(guò)這樣做,整個(gè)程序將有更好的機會(huì )被很好地組織和思考,從長(cháng)遠來(lái)看,這將通過(guò)減少調試時(shí)間來(lái)節省時(shí)間和頭痛。

                                                                                        技巧2——使用狀態(tài)機來(lái)控制程序流程20世紀*偉大的軟件發(fā)明之一就是狀態(tài)機。一個(gè)應用程序通??梢苑纸獬啥鄠€(gè)狀態(tài)機,每個(gè)狀態(tài)機控制應用程序的一個(gè)特定組件。這些狀態(tài)機中的每一個(gè)都有自己的內部狀態(tài)和狀態(tài)轉換,決定了軟件如何對各種激勵做出反應。使用狀態(tài)機設計軟件將使模塊化、可維護和易于理解的軟件開(kāi)發(fā)變得容易。存在大量展示狀態(tài)機理論和算法的資源。

                                                                                        技巧3——避免使用全局變量在過(guò)去的函數式編程中,函數優(yōu)先于形式,嵌入式開(kāi)發(fā)人員的*目標是讓程序盡可能快地按預期運行,而不考慮程序結構或可重用性。這種編程范式不擔心使用程序中任何函數都可以修改的全局變量。結果是增加了變量損壞或誤用變量的機會(huì )。在新推薦的面向對象范例中,變量應該在盡可能小的范圍內定義,并被封裝以防止其他函數誤用或破壞變量。因此,建議您限制使用全局范圍的變量的數量。在C語(yǔ)言中,可以通過(guò)使用extern關(guān)鍵字來(lái)標識這些變量。

                                                                                        技巧4——利用模塊化的優(yōu)勢如果你問(wèn)任何一個(gè)工程師,項目中*有可能延遲交付和超出預算的部分,答案將是軟件。軟件通常很復雜,很難開(kāi)發(fā)和維護,尤其是當整個(gè)應用程序駐留在一個(gè)文件或多個(gè)松散關(guān)聯(lián)的文件中時(shí)。為了簡(jiǎn)化可維護性、可重用性和復雜性,強烈建議利用現代編程語(yǔ)言的模塊化,將常見(jiàn)功能分解為模塊。通過(guò)以這種方式分解代碼,程序員可以開(kāi)始構建函數庫和特性庫,這些函數庫和特性庫可以從一個(gè)應用程序重用到下一個(gè)應用程序,從而通過(guò)連續測試提高代碼質(zhì)量,并減少時(shí)間和開(kāi)發(fā)成本。

                                                                                        技巧5–保持中斷服務(wù)例程簡(jiǎn)單中斷服務(wù)例程用于從當前正在執行的代碼分支中中斷處理器,以便處理中斷剛剛被觸發(fā)的外設。每當執行中斷時(shí),都需要一定量的開(kāi)銷(xiāo)來(lái)保存當前程序狀態(tài),運行中斷,然后將處理器返回到原始程序狀態(tài)?,F代處理器比幾年前快得多,但仍需要考慮這種開(kāi)銷(xiāo)。一般來(lái)說(shuō),為了不干擾主代碼分支,嵌入式開(kāi)發(fā)人員希望盡量減少中斷時(shí)間。這意味著(zhù)中斷應該短而簡(jiǎn)單。不應從中斷中調用函數。此外,如果中斷開(kāi)始變得太復雜或花費太多時(shí)間,則應該使用該中斷來(lái)完成當時(shí)所需的*少任務(wù),例如將數據加載到緩沖區并設置一個(gè)標志,然后允許主分支處理傳入的數據。這樣做可以確保處理器的大部分周期都用于運行應用程序,而不僅僅是處理中斷。

                                                                                        技巧6——使用處理器示例代碼試驗外設在設計硬件時(shí),構建原型測試電路總是有幫助的,這樣可以確保工程師在布局電路板之前對電路的理解是正確的。寫(xiě)軟件也可以這樣。硅制造商通常有示例代碼,可以用來(lái)測試微處理器的部件,以便工程師可以了解部件的工作原理。這允許洞察軟件架構應該如何組織以及可能遇到的任何潛在問(wèn)題。在設計過(guò)程的早期識別潛在的障礙,而不是在發(fā)貨前的*后幾個(gè)小時(shí)才發(fā)現。這是預先測試代碼片段的好方法,但是要注意,制造商代碼通常不是模塊化的,在實(shí)際應用中不需要大量修改就可以輕松使用。隨著(zhù)時(shí)間的推移,這種情況一直在改變,也許有*會(huì )從芯片提供商那里得到生產(chǎn)就緒的代碼。

                                                                                        技巧7——當處理任何復雜的任務(wù)時(shí),*簡(jiǎn)單的方法是把它分成更小更簡(jiǎn)單的任務(wù),這樣更容易處理。隨著(zhù)任務(wù)或功能變得越來(lái)越復雜,人類(lèi)越來(lái)越難跟蹤所有細節而不出錯。當一個(gè)函數被寫(xiě)出來(lái)的時(shí)候,它的復雜性在當時(shí)看起來(lái)是合適的,但是當它需要在六個(gè)月后被維護的時(shí)候,工程師將會(huì )如何看待它應該被考慮。有很多方法可以測量函數的復雜度,比如圈復雜度。有一些工具可以自動(dòng)計算函數的圈復雜度。一般經(jīng)驗表明,圈復雜度低于10的函數是理想的。

                                                                                        技巧8——使用源代碼庫并提交經(jīng)常犯錯是人類(lèi)的一部分,當人類(lèi)編寫(xiě)代碼時(shí),他們不會(huì )奇跡般地改變。這就是嵌入式開(kāi)發(fā)人員使用源代碼庫至關(guān)重要的原因。源代碼庫允許開(kāi)發(fā)人員簽入一個(gè)好的代碼版本,并描述對代碼庫做了哪些更改。這使得開(kāi)發(fā)人員不僅可以恢復或回到舊版本的代碼,還可以比較以前版本的變化。如果開(kāi)發(fā)人員做了一堆改變,然后破壞了系統,回到一個(gè)好的代碼版本只是一個(gè)點(diǎn)擊!請記住,如果代碼沒(méi)有被頻繁地提交,那么存儲庫將不會(huì )像預期的那樣工作。如果進(jìn)行了不可逆轉的更改,等待兩周提交代碼然后返回將會(huì )損失大量的工作和時(shí)間!

                                                                                        技巧9——徹底記錄代碼在軟件開(kāi)發(fā)的激烈競爭中,很容易只關(guān)注代碼的編寫(xiě)和調試,而忽略記錄。文檔經(jīng)常成為項目任務(wù)的結尾,因為當有壓力時(shí),它是開(kāi)發(fā)人員*不想做的事情。然而,重要的是當代碼在你的腦海中還清晰的時(shí)候,記錄下來(lái),這樣將來(lái)的開(kāi)發(fā)人員或者你自己就可以閱讀注釋并理解代碼是如何工作的。

                                                                                        技巧10——使用敏捷開(kāi)發(fā)過(guò)程當進(jìn)行任何類(lèi)型的工程設計時(shí),總是建議定義并遵循某種過(guò)程,其結果是一致的質(zhì)量、成本和按時(shí)交付。嵌入式開(kāi)發(fā)人員已經(jīng)成功地使用敏捷開(kāi)發(fā)過(guò)程來(lái)開(kāi)發(fā)高質(zhì)量的軟件。該流程允許開(kāi)發(fā)具有優(yōu)先級的需求。*高優(yōu)先級的任務(wù)首先在一個(gè)被稱(chēng)為迭代的預定時(shí)間段內執行。該過(guò)程的美妙之處在于它允許軟件開(kāi)發(fā)過(guò)程是流動(dòng)的,允許需求和任務(wù)根據客戶(hù)的結果和需求隨著(zhù)每次迭代而適應和改變。

                                                                                        免責聲明:本信息由用戶(hù)發(fā)布,本站不承擔本信息引起的任何交易及知識產(chǎn)權侵權的法律責任!

                                                                                        本文由 綜合教育資訊 整理發(fā)布。更多培訓課程,學(xué)習資訊,課程優(yōu)惠,課程開(kāi)班,學(xué)校地址等學(xué)校信息,可以留下你的聯(lián)系方式,讓課程老師跟你詳細解答:
                                                                                        咨詢(xún)電話(huà):400-850-8622

                                                                                        如果本頁(yè)不是您要找的課程,您也可以百度查找一下:

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..