千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 嵌入式開發(fā):為什么嵌入式系統(tǒng)如此落后?

嵌入式開發(fā):為什么嵌入式系統(tǒng)如此落后?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-12-10 17:22:32 1702200152

嵌入式系統(tǒng)一直被認(rèn)為是現(xiàn)代技術(shù)的支柱,為從智能手機(jī)到汽車到家用電器的一切提供動力。盡管嵌入式系統(tǒng)在我們的日常生活中扮演著至關(guān)重要的角色,但在代碼開發(fā)方面,它仍然需要趕上其他技術(shù)領(lǐng)域。在本文中,我們將探討為什么會出現(xiàn)這種情況,并討論微服務(wù)理念如何幫助加速嵌入式開發(fā)。

MCU上的資源有限,可能性有限?

微控制器(MCU)具有有限的資源,這可能會限制開發(fā)和應(yīng)用的可能性。

由于它們經(jīng)常需要更多的內(nèi)存和計(jì)算能力,因此實(shí)現(xiàn)繁重的算法和功能具有挑戰(zhàn)性。你不要在42MHz,2kRAM的MCU上運(yùn)行Windows11!開發(fā)人員需要優(yōu)化他們的應(yīng)用程序,通過專門為其目標(biāo)開發(fā)來消耗更少的資源。這使得代碼不靈活或不適應(yīng)。同樣,你不能運(yùn)行Docker或任何虛擬化系統(tǒng),因?yàn)樗苤?,你需要訪問真實(shí)的硬件,而不是虛擬的硬件。

因此,嵌入式系統(tǒng)可能需要特定的工具來跟上技術(shù)進(jìn)步并滿足用戶不斷增長的需求和期望,這可能是一個(gè)很大的缺點(diǎn)。例如,隨著物聯(lián)網(wǎng)的發(fā)展和擴(kuò)大,對具有尖端連接和計(jì)算能力的嵌入式設(shè)備的需求肯定會更大。提高他們能力的一種方法是考慮制作在互聯(lián)網(wǎng)上運(yùn)行的功能,但這變得很困難,因?yàn)檫B接并不總是有保證的——你可能會失去連接,或者在某些困難的情況下被禁止。

這種系統(tǒng)臨界性使得嵌入式開發(fā)人員更喜歡使用舊的但經(jīng)過驗(yàn)證的技術(shù),以避免可靠性意外。

隨著時(shí)間的推移,MCU上有限的資源也可能使維護(hù)和更新嵌入式系統(tǒng)變得更加困難。正因?yàn)槿绱?,我們正在?chuàng)建我們的開源產(chǎn)品,以盡可能使用最少的系統(tǒng)資源。許多其他操作系統(tǒng)選項(xiàng),如ROS,需要更多的資源,對于目前可用的最小設(shè)備來說是不夠的。

由超定制需求驅(qū)動的整體理念

事實(shí)上,嵌入式系統(tǒng)經(jīng)常被創(chuàng)建為針對特定目的或任務(wù)集合進(jìn)行非常專業(yè)和優(yōu)化的,這是開發(fā)如此落后的主要原因之一。這種超定制的理念導(dǎo)致一切從頭開始重新制作,并導(dǎo)致單片代碼,因?yàn)槟愕膬?yōu)先事項(xiàng)是使某些東西工作,而不是開發(fā)一個(gè)適應(yīng)的、可靠的、優(yōu)化的和可伸縮的代碼架構(gòu)。

我們經(jīng)??吹焦I(yè)版模塊化架構(gòu)的夢想,但沒有時(shí)間這樣做——特別是因?yàn)樗赡軙p害大量工作代碼。所以最終,模塊化架構(gòu)的想法沒有實(shí)現(xiàn)。

這使得在不實(shí)質(zhì)性改變當(dāng)前系統(tǒng)的情況下整合新技術(shù)或新功能變得非常困難。這種設(shè)計(jì)方法導(dǎo)致缺乏模塊化和可重用性,最終減慢了開發(fā)過程,并增加了對原始設(shè)計(jì)進(jìn)行更改時(shí)出現(xiàn)錯(cuò)誤和缺陷的可能性。加劇這一問題的是,許多嵌入式系統(tǒng)使用專有的硬件和軟件,這可能會限制嵌入式開發(fā)開發(fā)人員對底層代碼的訪問和控制。因此,嵌入式系統(tǒng)傾向于更慢地采用新技術(shù)。它們可能不如利用更模塊化和更靈活的方法創(chuàng)建的系統(tǒng)靈活。

組件的多樣性使整個(gè)系統(tǒng)變得復(fù)雜

這些系統(tǒng)種類繁多是嵌入式系統(tǒng)發(fā)展緩慢的另一個(gè)原因。嵌入式系統(tǒng)有大量的硬件和軟件組件,所有這些組件在使用前都需要仔細(xì)集成和測試。復(fù)雜設(shè)備意味著多個(gè)電路板使用專用或定制的網(wǎng)絡(luò)交換信息,有時(shí)甚至在同一產(chǎn)品中使用多種不同的網(wǎng)絡(luò)技術(shù)。同樣,所有這些都需要進(jìn)行大規(guī)模測試。

這可能是一個(gè)勞動密集型且容易出錯(cuò)的過程,會減慢開發(fā)周期,并使快速實(shí)現(xiàn)新功能或新技術(shù)變得非常困難。由于其復(fù)雜性,創(chuàng)建和管理系統(tǒng)可能具有挑戰(zhàn)性,因?yàn)榭赡苄枰囟ǖ闹R和經(jīng)驗(yàn)來理解每個(gè)組件如何作為一個(gè)整體進(jìn)行交互和運(yùn)行。

對實(shí)時(shí)應(yīng)用的需求給嵌入式領(lǐng)域增加了另一層重要的復(fù)雜性。最重要的是,你不能像在正常的軟件調(diào)試過程中那樣容易地從運(yùn)行的嵌入式代碼中提取信息。事實(shí)上,同樣的人機(jī)界面在嵌入式(屏幕、鍵盤、互聯(lián)網(wǎng))中是不存在的。結(jié)果,調(diào)試和測試變得更加困難。我們看不到正在發(fā)生的事情。

像Luos這樣的方法旨在為用戶提供將系統(tǒng)活動實(shí)時(shí)視為數(shù)字孿生的能力。你可以使用Luos創(chuàng)建實(shí)際系統(tǒng)的數(shù)字復(fù)制品,以測試和觀察任何潛在的問題。

讓我們將微服務(wù)的愿景應(yīng)用于這些問題

如今,嵌入式系統(tǒng)依賴于連接的子系統(tǒng)。我們稱之為網(wǎng)絡(luò)物理系統(tǒng)(CPS)。但獨(dú)立的子系統(tǒng)并不意味著你不是單片的,你可能有不可能維護(hù)的單片子組件,也不直接與其他組件兼容。此外,為了連接整個(gè)系統(tǒng)的所有部分,嵌入式開發(fā)人員需要?jiǎng)?chuàng)建一個(gè)經(jīng)過調(diào)整的通信系統(tǒng),這可能需要花費(fèi)大量時(shí)間才能使其可靠。你可能無法將其用于其他產(chǎn)品。

由于設(shè)計(jì)更改、產(chǎn)品可用性或任何其他外部變量,這種靈活性的缺乏導(dǎo)致許多與我們互動的開發(fā)人員重做他們的整個(gè)系統(tǒng)(數(shù)月的工作)。半導(dǎo)體危機(jī)是眾多僵化舉措的一個(gè)典型例子,這些舉措僅僅因?yàn)榧嫒菪詥栴}而被迫戛然而止。

網(wǎng)絡(luò)物理系統(tǒng)可以利用許多緊湊、自主的服務(wù)來創(chuàng)建,這些服務(wù)由于微服務(wù)而易于組合和修改。我們必須把嵌入式系統(tǒng)看作一種產(chǎn)品,而不是一塊板。

近年來,微服務(wù)哲學(xué)在軟件行業(yè)越來越受歡迎,這為解決這些同樣的問題提供了補(bǔ)救措施。微服務(wù)將軟件應(yīng)用程序分離為可管理的、自包含的部分,這些部分可以獨(dú)立創(chuàng)建、部署和擴(kuò)展。因此,開發(fā)人員可以輕松地添加新功能或技術(shù),而無需對當(dāng)前系統(tǒng)進(jìn)行大的調(diào)整。微服務(wù)的模塊化設(shè)計(jì)也使測試和實(shí)現(xiàn)新功能變得更簡單,這有助于縮短開發(fā)周期。但正如本文開頭所提到的,我們不能在嵌入式世界中使用相同的工具。像Luos項(xiàng)目這樣的開源努力正在創(chuàng)造未來所需的工具。

延遲問題

在嵌入式系統(tǒng)中使用微服務(wù)可能存在一定的延遲問題。在考慮微服務(wù)時(shí),開發(fā)人員可能會想到管理各種服務(wù)之間通信的延遲?;谖⒎?wù)的系統(tǒng)將需要在服務(wù)之間進(jìn)行一種板間IPC(進(jìn)程間通信),這可能會導(dǎo)致延遲。嵌入式開發(fā)人員可以通過測量延遲并使其對實(shí)時(shí)應(yīng)用程序具有確定性來管理延遲。通過使用時(shí)間戳,它將允許你以數(shù)學(xué)方式計(jì)算延遲。我們可以使用排隊(duì)和調(diào)度等策略來確保請求得到一致處理,并使延遲具有確定性。

市場需求

嵌入式系統(tǒng)的設(shè)計(jì)和構(gòu)建通常是為了滿足短期需求,但需要長期維護(hù)。因此,解決某些標(biāo)準(zhǔn)可能優(yōu)先于添加可能需要一些時(shí)間才能變得必要或重要的新技術(shù)或功能。嵌入式系統(tǒng)適應(yīng)不斷變化的環(huán)境或不斷發(fā)展的需求的能力可能會受到這種對實(shí)現(xiàn)精確目標(biāo)的強(qiáng)調(diào)的阻礙。

在研發(fā)程序經(jīng)常受到限制的情況下,從長遠(yuǎn)來看,考慮一個(gè)嵌入式項(xiàng)目需要更多的時(shí)間,從而需要更多的資金。因此,嵌入式系統(tǒng)可能難以跟上技術(shù)進(jìn)步??紤]使事物具有適應(yīng)性總是比在給定時(shí)間產(chǎn)生滿足需求的系統(tǒng)更復(fù)雜。

此外,市場需求可能會迫使嵌入式系統(tǒng)開發(fā)采用同樣久經(jīng)考驗(yàn)的方法,這最終可能會使靈活性和互操作性面臨挑戰(zhàn)。

到目前為止,已有一些項(xiàng)目試圖建立一個(gè)“開發(fā)標(biāo)準(zhǔn)”,但很少有項(xiàng)目能在受嵌入式系統(tǒng)影響的各個(gè)領(lǐng)域真正獲益。開源哲學(xué)可以成為一種解決方案。開源的使用保證了無論發(fā)生任何意外事件(公司崩潰或出售),你都可以長期維護(hù)你的系統(tǒng)。它由嵌入式開發(fā)人員社區(qū)維護(hù),可以更好地適應(yīng)你的需求,更新最新功能,并在開發(fā)方面具有靈活性。

以更可持續(xù)的方式發(fā)展

通過使用更可持續(xù)的方法,嵌入式系統(tǒng)的開發(fā)可以變得更加靈活和適應(yīng)性,以及更加有效和資源高效。這種方法意味著開發(fā)可根據(jù)你的需求重復(fù)使用的代碼,而不僅僅是當(dāng)前的特定項(xiàng)目。這種可重用性可以應(yīng)用于系統(tǒng)中的代碼或組件,并且應(yīng)該從可重用性的角度進(jìn)行長期考慮,而不僅僅是針對當(dāng)前的特定項(xiàng)目。

通過將你的全局系統(tǒng)劃分為小代碼塊來開發(fā)你的項(xiàng)目,也將允許隨著時(shí)間的推移進(jìn)行更好的維護(hù)。這種維護(hù)將針對系統(tǒng)的單個(gè)元件,這樣就不會改變整個(gè)系統(tǒng)的其他功能。

總結(jié)

總之,由于其復(fù)雜性、專業(yè)性以及對專有硬件和軟件的依賴,嵌入式系統(tǒng)在發(fā)展方面落后于其他技術(shù)領(lǐng)域。然而,通過使用微服務(wù)或數(shù)字孿生等方法來思考一種新的系統(tǒng)開發(fā)方式,可以幫助開發(fā)人員在日常生活中發(fā)揮作用。

利用這種微服務(wù)的理念,我們正在創(chuàng)建一個(gè)開源項(xiàng)目,以增加嵌入式系統(tǒng)的靈活性。我們創(chuàng)建的許多工具可以幫助嵌入式開發(fā)人員更快、更輕松地編寫代碼。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
嵌入式培訓(xùn)課程:探索技術(shù)的無限可能

近年來,嵌入式系統(tǒng)的廣泛應(yīng)用已經(jīng)深刻改變了我們的生活方式。從智能手機(jī)到智能家居,從汽車到醫(yī)療設(shè)備,嵌入式技術(shù)已經(jīng)成為現(xiàn)代社會不可或缺的...詳情>>

2023-12-12 11:02:35
嵌入式開發(fā):Linux網(wǎng)絡(luò)編程的探索與實(shí)踐

在當(dāng)今的科技世界中,嵌入式系統(tǒng)已經(jīng)滲透到我們生活的方方面面,從智能手機(jī)、電視、汽車到醫(yī)療設(shè)備等。而在這些設(shè)備中,Linux網(wǎng)絡(luò)編程扮演著至...詳情>>

2023-12-12 09:55:55
Java游戲項(xiàng)目開發(fā):技術(shù)概覽與實(shí)踐

在數(shù)字化世界中,游戲已經(jīng)成為了人們休閑娛樂的重要方式之一。隨著科技的不斷進(jìn)步,游戲開發(fā)行業(yè)也在不斷發(fā)展,而Java作為一門廣泛使用的編程語...詳情>>

2023-12-12 08:49:15
Web前端的基石:HTML

在數(shù)字化的時(shí)代,網(wǎng)頁設(shè)計(jì)已經(jīng)成為了一個(gè)重要的領(lǐng)域。而在這個(gè)領(lǐng)域中,HTML(HyperTextMarkupLanguage)無疑是最基礎(chǔ)、最重要的一環(huán)。它是構(gòu)建...詳情>>

2023-12-12 08:15:55
嵌入式開發(fā):內(nèi)存分配的方式

嵌入式系統(tǒng)開發(fā)中,內(nèi)存分配是一個(gè)至關(guān)重要的話題。嵌入式系統(tǒng)通常具有有限的內(nèi)存資源,因此合理的內(nèi)存分配方式對系統(tǒng)的性能和穩(wěn)定性至關(guān)重要。...詳情>>

2023-12-12 06:35:55
快速通道