嵌入式開發:為什麼嵌入式系統如斯落後?

首頁 > 科技

嵌入式開發:為什麼嵌入式系統如斯落後?

來源:子非魚 釋出時間:2023-08-31 19:01

嵌入式系統一直被以為是現代技術的支柱,為從智慧手機到汽車到家用電器的一切提供動力。儘管嵌入式系統在我們的日常生活中扮演著至關重要的角色,但在程式碼開發方面,它仍舊需要遇上其他技術領域。在本文中,我們將探討為什麼會泛起這種情況,並討論微服務理念如何匡助加速嵌入式開發。

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

因為它們常常需要更多的記憶體和計算能力,因此實現繁重的演算法和功能具有挑戰性。你不要在42MHz,2k RAM的MCU上執行Windows 11!開發人員需要最佳化他們的應用程式,透過專門為其目標開發來消耗更少的資源。這使得程式碼不靈活或不適應。同樣,你不能執行Docker或任何虛擬化系統,由於它很重,你需要訪問真實的硬體,而不是虛擬的硬體。

因此,嵌入式系統可能需要特定的工具來跟上技術提高並滿足使用者不斷增長的需求和期望,這可能是一個很大的缺點。例如,跟著物聯網的發展和擴大,對具有尖端連線和計算能力的嵌入式裝置的需求肯定會更大。進步他們能力的一種方法是考慮製作在網際網路上執行的功能,但這變得很難題,由於連線並不老是有保證的——你可能會失去連線,或者在某些難題的情況下被禁止。

這種系統臨界性使得嵌入式開發人員更喜歡使用舊的但經由驗證的技術,以避免可靠性意外。

跟著時間的推移,MCU上有限的資源也可能使維護和更新嵌入式系統變得更加難題。正由於如斯,我們正在建立我們的開源產品,以儘可能使用起碼的系統資源。很多其他作業系統選項,如ROS,需要更多的資源,對於目前可用的最小裝置來說是不夠的。

由超定製需求驅動的整體理念

事實上,嵌入式系統常常被建立為針對特定目的或任務集合進行非常專業和最佳化的,這是開發如斯落後的主要原因之一。這種超定製的理念導致一切從頭開始重新制作,並導致單片程式碼,由於你的優先事項是使某些東西工作,而不是開發一個適應的、可靠的、最佳化的和可伸縮的程式碼架構。

我們常常看到產業版模組化架構的夢想,但沒有時間這樣做——特別是因為它可能會損害大量工作程式碼。所以終極,模組化架構的設法沒有實現。

這使得在不實質性改變當前系統的情況下整合新技術或新功能變得非常難題。這種設計方法導致缺乏模組化和可重用性,終極減慢了開發過程,並增加了對原始設計進行更改時泛起錯誤和缺陷的可能性。加劇這一問題的是,很多嵌入式系統使用專有的硬體和軟體,這可能會限制嵌入式開發開發人員對底層程式碼的訪問和控制。因此,嵌入式系統傾向於更慢地採用新技術。它們可能不如利用更模組化和更靈活的方法建立的系統靈活。

 

元件的多樣性使整個系統變得複雜

這些系統種類繁多是嵌入式系統發展緩慢的另一個原因。嵌入式系統有大量的硬體和軟體元件,所有這些元件在使用前都需要仔細整合和測試。複雜裝置意味著多個電路板使用專用或定製的網路交換資訊,有時甚至在統一產品中使用多種不同的網路技術。同樣,所有這些都需要進行大規模測試。

這可能是一個勞動密集型且輕易犯錯的過程,會減慢開發週期,並使快速實現新功能或新技術變得非常難題。因為其複雜性,建立和管理系統可能具有挑戰性,由於可能需要特定的知識和經驗來理解每個元件如何作為一個整體進行互動和執行。

對實時應用的需求給嵌入式領域增加了另一層重要的複雜性。最重要的是,你不能像在正常的軟體除錯過程中那樣輕易地從執行的嵌入式程式碼中提取資訊。事實上,同樣的人機介面在嵌入式(螢幕、鍵盤、網際網路)中是不存在的。結果,除錯和測試變得更加難題。我們看不到正在發生的事情。

像Luos這樣的方法旨在為使用者提供將系統活動實時視為數字孿生的能力。你可以使用Luos建立實際系統的數字複製品,以測試和觀察任何潛伏的問題。

讓我們將微服務的願景應用於這些問題

如今,嵌入式系統依賴於連線的子系統。我們稱之為網路物理系統(CPS)。但獨立的子系統並不意味著你不是單片的,你可能有不可能維護的單電影元件,也不直接與其他元件相容。此外,為了連線整個系統的所有部門,嵌入式開發人員需要建立一個經由調整的通訊系統,這可能需要花費大量時間才能使其可靠。你可能無法將其用於其他產品。

因為設計更改、產品可用性或任何其他外部變數,這種靈活性的缺乏導致很多與我們互動的開發人員重做他們的整個系統(數月的工作)。半導體危機是眾多僵化舉措的一個典型例子,這些舉措僅僅由於相容性問題而被迫戛然而止。

網路物理系統可以利用很多緊湊、自主的服務來建立,這些服務因為微服務而易於組合和修改。我們必需把嵌入式系統看作一種產品,而不是一塊板。

近年來,微服務哲學在軟體行業越來越受歡迎,這為解決這些同樣的問題提供了補救措施。微服務將軟體應用程式分離為可治理的、自包含的部門,這些部門可以獨立建立、部署和擴充套件。因此,開發人員可以輕鬆地新增新功能或技術,而無需對當前系統進行大的調整。微服務的模組化設計也使測試和實現新功能變得更簡樸,這有助於縮短開發週期。但正如本文開頭所提到的,我們不能在嵌入式世界中使用相同的工具。像Luos專案這樣的開源努力正在創造未來所需的工具。

延遲問題

在嵌入式系統中使用微服務可能存在一定的延遲問題。在考慮微服務時,開發人員可能會想到治理各種服務之間通訊的延遲。基於微服務的系統將需要在服務之間進行一種板間IPC(程序間通訊),這可能會導致延遲。嵌入式開發人員可以透過丈量延遲並使其對實時應用程式具有確定性來治理延遲。透過使用時間戳,它將答應你以數學方式計算延遲。我們可以使用排隊和排程等策略來確保哀求得到一致處理,並使延遲具有確定性。

 

市場需求

嵌入式系統的設計和構建通常是為了滿意短期需求,但需要長期維護。因此,解決某些尺度可能優先於新增可能需要一些時間才能變得必要或重要的新技術或功能。嵌入式系統適應不斷變化的環境或不斷髮展的需求的能力可能會受到這種對實現精確目標的誇大的阻礙。

在研發程式常常受到限制的情況下,從長遠來看,考慮一個嵌入式專案需要更多的時間,從而需要更多的資金。因此,嵌入式系統可能難以跟上技術提高。考慮使事物具有適應性老是比在給定時間產生滿意需求的系統更復雜。

此外,市場需求可能會迫使嵌入式系統開發採用同樣久經考驗的方法,這終極可能會使靈活性和互操作性面臨挑戰。

到目前為止,已有一些專案試圖建立一個“開發尺度”,但很少有專案能在受嵌入式系統影響的各個領域真正獲益。開源哲學可以成為一種解決方案。開源的使用保證了無論發生任何意外事件(公司崩潰或出售),你都可以長期維護你的系統。它由嵌入式開發人員社群維護,可以更好地適應你的需求,更新最新功能,並在開發方面具有靈活性。

以更可持續的方式發展

透過使用更可持續的方法,嵌入式系統的開發可以變得更加靈活和適應性,以及更加有效和資源高效。這種方法意味著開發可根據你的需求重複使用的程式碼,而不僅僅是當前的特定專案。這種可重用性可以應用於系統中的程式碼或元件,並且應該從可重用性的角度進行長期考慮,而不僅僅是針對當前的特定專案。

透過將你的全域性系統劃分為小程式碼塊來開發你的專案,也將答應跟著時間的推移進行更好的維護。這種維護將針對系統的單個元件,這樣就不會改變整個系統的其他功能。

總結

總之,因為其複雜性、專業性以及對專有硬體和軟體的依靠,嵌入式系統在發展方面落後於其他技術領域。然而,透過使用微服務或數字孿生等方法來思索一種新的系統開發方式,可以匡助開發人員在日常生活中發揮作用。

利用這種微服務的理念,我們正在建立一個開源專案,以增加嵌入式系統的靈活性。我們建立的很多工具可以匡助嵌入式開發人員更快、更輕鬆地編寫程式碼。

嵌入式系統一直被以為是現代技術的支柱,為從智慧手機到汽車到家用電器的一切提供動力。儘管嵌入式系統在我們的日常生活中扮演著至關重要的角色,但在程式碼開發方面,它仍舊需要遇上其他技術領域。在本文中,我們將探討為什麼會泛起這種情況,並討論微服務理念如何匡助加速嵌入式開發。

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

因為它們常常需要更多的記憶體和計算能力,因此實現繁重的演算法和功能具有挑戰性。你不要在42MHz,2k RAM的MCU上執行Windows 11!開發人員需要最佳化他們的應用程式,透過專門為其目標開發來消耗更少的資源。這使得程式碼不靈活或不適應。同樣,你不能執行Docker或任何虛擬化系統,由於它很重,你需要訪問真實的硬體,而不是虛擬的硬體。

因此,嵌入式系統可能需要特定的工具來跟上技術提高並滿足使用者不斷增長的需求和期望,這可能是一個很大的缺點。例如,跟著物聯網的發展和擴大,對具有尖端連線和計算能力的嵌入式裝置的需求肯定會更大。進步他們能力的一種方法是考慮製作在網際網路上執行的功能,但這變得很難題,由於連線並不老是有保證的——你可能會失去連線,或者在某些難題的情況下被禁止。

這種系統臨界性使得嵌入式開發人員更喜歡使用舊的但經由驗證的技術,以避免可靠性意外。

跟著時間的推移,MCU上有限的資源也可能使維護和更新嵌入式系統變得更加難題。正由於如斯,我們正在建立我們的開源產品,以儘可能使用起碼的系統資源。很多其他作業系統選項,如ROS,需要更多的資源,對於目前可用的最小裝置來說是不夠的。

由超定製需求驅動的整體理念

事實上,嵌入式系統常常被建立為針對特定目的或任務集合進行非常專業和最佳化的,這是開發如斯落後的主要原因之一。這種超定製的理念導致一切從頭開始重新制作,並導致單片程式碼,由於你的優先事項是使某些東西工作,而不是開發一個適應的、可靠的、最佳化的和可伸縮的程式碼架構。

我們常常看到產業版模組化架構的夢想,但沒有時間這樣做——特別是因為它可能會損害大量工作程式碼。所以終極,模組化架構的設法沒有實現。

這使得在不實質性改變當前系統的情況下整合新技術或新功能變得非常難題。這種設計方法導致缺乏模組化和可重用性,終極減慢了開發過程,並增加了對原始設計進行更改時泛起錯誤和缺陷的可能性。加劇這一問題的是,很多嵌入式系統使用專有的硬體和軟體,這可能會限制嵌入式開發開發人員對底層程式碼的訪問和控制。因此,嵌入式系統傾向於更慢地採用新技術。它們可能不如利用更模組化和更靈活的方法建立的系統靈活。

 

元件的多樣性使整個系統變得複雜

這些系統種類繁多是嵌入式系統發展緩慢的另一個原因。嵌入式系統有大量的硬體和軟體元件,所有這些元件在使用前都需要仔細整合和測試。複雜裝置意味著多個電路板使用專用或定製的網路交換資訊,有時甚至在統一產品中使用多種不同的網路技術。同樣,所有這些都需要進行大規模測試。

這可能是一個勞動密集型且輕易犯錯的過程,會減慢開發週期,並使快速實現新功能或新技術變得非常難題。因為其複雜性,建立和管理系統可能具有挑戰性,由於可能需要特定的知識和經驗來理解每個元件如何作為一個整體進行互動和執行。

對實時應用的需求給嵌入式領域增加了另一層重要的複雜性。最重要的是,你不能像在正常的軟體除錯過程中那樣輕易地從執行的嵌入式程式碼中提取資訊。事實上,同樣的人機介面在嵌入式(螢幕、鍵盤、網際網路)中是不存在的。結果,除錯和測試變得更加難題。我們看不到正在發生的事情。

像Luos這樣的方法旨在為使用者提供將系統活動實時視為數字孿生的能力。你可以使用Luos建立實際系統的數字複製品,以測試和觀察任何潛伏的問題。

讓我們將微服務的願景應用於這些問題

如今,嵌入式系統依賴於連線的子系統。我們稱之為網路物理系統(CPS)。但獨立的子系統並不意味著你不是單片的,你可能有不可能維護的單電影元件,也不直接與其他元件相容。此外,為了連線整個系統的所有部門,嵌入式開發人員需要建立一個經由調整的通訊系統,這可能需要花費大量時間才能使其可靠。你可能無法將其用於其他產品。

因為設計更改、產品可用性或任何其他外部變數,這種靈活性的缺乏導致很多與我們互動的開發人員重做他們的整個系統(數月的工作)。半導體危機是眾多僵化舉措的一個典型例子,這些舉措僅僅由於相容性問題而被迫戛然而止。

網路物理系統可以利用很多緊湊、自主的服務來建立,這些服務因為微服務而易於組合和修改。我們必需把嵌入式系統看作一種產品,而不是一塊板。

近年來,微服務哲學在軟體行業越來越受歡迎,這為解決這些同樣的問題提供了補救措施。微服務將軟體應用程式分離為可治理的、自包含的部門,這些部門可以獨立建立、部署和擴充套件。因此,開發人員可以輕鬆地新增新功能或技術,而無需對當前系統進行大的調整。微服務的模組化設計也使測試和實現新功能變得更簡樸,這有助於縮短開發週期。但正如本文開頭所提到的,我們不能在嵌入式世界中使用相同的工具。像Luos專案這樣的開源努力正在創造未來所需的工具。

延遲問題

在嵌入式系統中使用微服務可能存在一定的延遲問題。在考慮微服務時,開發人員可能會想到治理各種服務之間通訊的延遲。基於微服務的系統將需要在服務之間進行一種板間IPC(程序間通訊),這可能會導致延遲。嵌入式開發人員可以透過丈量延遲並使其對實時應用程式具有確定性來治理延遲。透過使用時間戳,它將答應你以數學方式計算延遲。我們可以使用排隊和排程等策略來確保哀求得到一致處理,並使延遲具有確定性。

 

嵌入式系統一直被以為是現代技術的支柱,為從智慧手機到汽車到家用電器的一切提供動力。儘管嵌入式系統在我們的日常生活中扮演著至關重要的角色,但在程式碼開發方面,它仍舊需要遇上其他技術領域。在本文中,我們將探討為什麼會泛起這種情況,並討論微服務理念如何匡助加速嵌入式開發。

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

因為它們常常需要更多的記憶體和計算能力,因此實現繁重的演算法和功能具有挑戰性。你不要在42MHz,2k RAM的MCU上執行Windows 11!開發人員需要最佳化他們的應用程式,透過專門為其目標開發來消耗更少的資源。這使得程式碼不靈活或不適應。同樣,你不能執行Docker或任何虛擬化系統,由於它很重,你需要訪問真實的硬體,而不是虛擬的硬體。

因此,嵌入式系統可能需要特定的工具來跟上技術提高並滿足使用者不斷增長的需求和期望,這可能是一個很大的缺點。例如,跟著物聯網的發展和擴大,對具有尖端連線和計算能力的嵌入式裝置的需求肯定會更大。進步他們能力的一種方法是考慮製作在網際網路上執行的功能,但這變得很難題,由於連線並不老是有保證的——你可能會失去連線,或者在某些難題的情況下被禁止。

這種系統臨界性使得嵌入式開發人員更喜歡使用舊的但經由驗證的技術,以避免可靠性意外。

跟著時間的推移,MCU上有限的資源也可能使維護和更新嵌入式系統變得更加難題。正由於如斯,我們正在建立我們的開源產品,以儘可能使用起碼的系統資源。很多其他作業系統選項,如ROS,需要更多的資源,對於目前可用的最小裝置來說是不夠的。

由超定製需求驅動的整體理念

事實上,嵌入式系統常常被建立為針對特定目的或任務集合進行非常專業和最佳化的,這是開發如斯落後的主要原因之一。這種超定製的理念導致一切從頭開始重新制作,並導致單片程式碼,由於你的優先事項是使某些東西工作,而不是開發一個適應的、可靠的、最佳化的和可伸縮的程式碼架構。

我們常常看到產業版模組化架構的夢想,但沒有時間這樣做——特別是因為它可能會損害大量工作程式碼。所以終極,模組化架構的設法沒有實現。

這使得在不實質性改變當前系統的情況下整合新技術或新功能變得非常難題。這種設計方法導致缺乏模組化和可重用性,終極減慢了開發過程,並增加了對原始設計進行更改時泛起錯誤和缺陷的可能性。加劇這一問題的是,很多嵌入式系統使用專有的硬體和軟體,這可能會限制嵌入式開發開發人員對底層程式碼的訪問和控制。因此,嵌入式系統傾向於更慢地採用新技術。它們可能不如利用更模組化和更靈活的方法建立的系統靈活。

 

元件的多樣性使整個系統變得複雜

這些系統種類繁多是嵌入式系統發展緩慢的另一個原因。嵌入式系統有大量的硬體和軟體元件,所有這些元件在使用前都需要仔細整合和測試。複雜裝置意味著多個電路板使用專用或定製的網路交換資訊,有時甚至在統一產品中使用多種不同的網路技術。同樣,所有這些都需要進行大規模測試。

這可能是一個勞動密集型且輕易犯錯的過程,會減慢開發週期,並使快速實現新功能或新技術變得非常難題。因為其複雜性,建立和管理系統可能具有挑戰性,由於可能需要特定的知識和經驗來理解每個元件如何作為一個整體進行互動和執行。

對實時應用的需求給嵌入式領域增加了另一層重要的複雜性。最重要的是,你不能像在正常的軟體除錯過程中那樣輕易地從執行的嵌入式程式碼中提取資訊。事實上,同樣的人機介面在嵌入式(螢幕、鍵盤、網際網路)中是不存在的。結果,除錯和測試變得更加難題。我們看不到正在發生的事情。

像Luos這樣的方法旨在為使用者提供將系統活動實時視為數字孿生的能力。你可以使用Luos建立實際系統的數字複製品,以測試和觀察任何潛伏的問題。

讓我們將微服務的願景應用於這些問題

如今,嵌入式系統依賴於連線的子系統。我們稱之為網路物理系統(CPS)。但獨立的子系統並不意味著你不是單片的,你可能有不可能維護的單電影元件,也不直接與其他元件相容。此外,為了連線整個系統的所有部門,嵌入式開發人員需要建立一個經由調整的通訊系統,這可能需要花費大量時間才能使其可靠。你可能無法將其用於其他產品。

因為設計更改、產品可用性或任何其他外部變數,這種靈活性的缺乏導致很多與我們互動的開發人員重做他們的整個系統(數月的工作)。半導體危機是眾多僵化舉措的一個典型例子,這些舉措僅僅由於相容性問題而被迫戛然而止。

網路物理系統可以利用很多緊湊、自主的服務來建立,這些服務因為微服務而易於組合和修改。我們必需把嵌入式系統看作一種產品,而不是一塊板。

近年來,微服務哲學在軟體行業越來越受歡迎,這為解決這些同樣的問題提供了補救措施。微服務將軟體應用程式分離為可治理的、自包含的部門,這些部門可以獨立建立、部署和擴充套件。因此,開發人員可以輕鬆地新增新功能或技術,而無需對當前系統進行大的調整。微服務的模組化設計也使測試和實現新功能變得更簡樸,這有助於縮短開發週期。但正如本文開頭所提到的,我們不能在嵌入式世界中使用相同的工具。像Luos專案這樣的開源努力正在創造未來所需的工具。

延遲問題

在嵌入式系統中使用微服務可能存在一定的延遲問題。在考慮微服務時,開發人員可能會想到治理各種服務之間通訊的延遲。基於微服務的系統將需要在服務之間進行一種板間IPC(程序間通訊),這可能會導致延遲。嵌入式開發人員可以透過丈量延遲並使其對實時應用程式具有確定性來治理延遲。透過使用時間戳,它將答應你以數學方式計算延遲。我們可以使用排隊和排程等策略來確保哀求得到一致處理,並使延遲具有確定性。

 

嵌入式系統一直被以為是現代技術的支柱,為從智慧手機到汽車到家用電器的一切提供動力。儘管嵌入式系統在我們的日常生活中扮演著至關重要的角色,但在程式碼開發方面,它仍舊需要遇上其他技術領域。在本文中,我們將探討為什麼會泛起這種情況,並討論微服務理念如何匡助加速嵌入式開發。

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

因為它們常常需要更多的記憶體和計算能力,因此實現繁重的演算法和功能具有挑戰性。你不要在42MHz,2k RAM的MCU上執行Windows 11!開發人員需要最佳化他們的應用程式,透過專門為其目標開發來消耗更少的資源。這使得程式碼不靈活或不適應。同樣,你不能執行Docker或任何虛擬化系統,由於它很重,你需要訪問真實的硬體,而不是虛擬的硬體。

因此,嵌入式系統可能需要特定的工具來跟上技術提高並滿足使用者不斷增長的需求和期望,這可能是一個很大的缺點。例如,跟著物聯網的發展和擴大,對具有尖端連線和計算能力的嵌入式裝置的需求肯定會更大。進步他們能力的一種方法是考慮製作在網際網路上執行的功能,但這變得很難題,由於連線並不老是有保證的——你可能會失去連線,或者在某些難題的情況下被禁止。

這種系統臨界性使得嵌入式開發人員更喜歡使用舊的但經由驗證的技術,以避免可靠性意外。

跟著時間的推移,MCU上有限的資源也可能使維護和更新嵌入式系統變得更加難題。正由於如斯,我們正在建立我們的開源產品,以儘可能使用起碼的系統資源。很多其他作業系統選項,如ROS,需要更多的資源,對於目前可用的最小裝置來說是不夠的。

由超定製需求驅動的整體理念

事實上,嵌入式系統常常被建立為針對特定目的或任務集合進行非常專業和最佳化的,這是開發如斯落後的主要原因之一。這種超定製的理念導致一切從頭開始重新制作,並導致單片程式碼,由於你的優先事項是使某些東西工作,而不是開發一個適應的、可靠的、最佳化的和可伸縮的程式碼架構。

我們常常看到產業版模組化架構的夢想,但沒有時間這樣做——特別是因為它可能會損害大量工作程式碼。所以終極,模組化架構的設法沒有實現。

這使得在不實質性改變當前系統的情況下整合新技術或新功能變得非常難題。這種設計方法導致缺乏模組化和可重用性,終極減慢了開發過程,並增加了對原始設計進行更改時泛起錯誤和缺陷的可能性。加劇這一問題的是,很多嵌入式系統使用專有的硬體和軟體,這可能會限制嵌入式開發開發人員對底層程式碼的訪問和控制。因此,嵌入式系統傾向於更慢地採用新技術。它們可能不如利用更模組化和更靈活的方法建立的系統靈活。

 

元件的多樣性使整個系統變得複雜

這些系統種類繁多是嵌入式系統發展緩慢的另一個原因。嵌入式系統有大量的硬體和軟體元件,所有這些元件在使用前都需要仔細整合和測試。複雜裝置意味著多個電路板使用專用或定製的網路交換資訊,有時甚至在統一產品中使用多種不同的網路技術。同樣,所有這些都需要進行大規模測試。

這可能是一個勞動密集型且輕易犯錯的過程,會減慢開發週期,並使快速實現新功能或新技術變得非常難題。因為其複雜性,建立和管理系統可能具有挑戰性,由於可能需要特定的知識和經驗來理解每個元件如何作為一個整體進行互動和執行。

對實時應用的需求給嵌入式領域增加了另一層重要的複雜性。最重要的是,你不能像在正常的軟體除錯過程中那樣輕易地從執行的嵌入式程式碼中提取資訊。事實上,同樣的人機介面在嵌入式(螢幕、鍵盤、網際網路)中是不存在的。結果,除錯和測試變得更加難題。我們看不到正在發生的事情。

像Luos這樣的方法旨在為使用者提供將系統活動實時視為數字孿生的能力。你可以使用Luos建立實際系統的數字複製品,以測試和觀察任何潛伏的問題。

讓我們將微服務的願景應用於這些問題

如今,嵌入式系統依賴於連線的子系統。我們稱之為網路物理系統(CPS)。但獨立的子系統並不意味著你不是單片的,你可能有不可能維護的單電影元件,也不直接與其他元件相容。此外,為了連線整個系統的所有部門,嵌入式開發人員需要建立一個經由調整的通訊系統,這可能需要花費大量時間才能使其可靠。你可能無法將其用於其他產品。

因為設計更改、產品可用性或任何其他外部變數,這種靈活性的缺乏導致很多與我們互動的開發人員重做他們的整個系統(數月的工作)。半導體危機是眾多僵化舉措的一個典型例子,這些舉措僅僅由於相容性問題而被迫戛然而止。

網路物理系統可以利用很多緊湊、自主的服務來建立,這些服務因為微服務而易於組合和修改。我們必需把嵌入式系統看作一種產品,而不是一塊板。

近年來,微服務哲學在軟體行業越來越受歡迎,這為解決這些同樣的問題提供了補救措施。微服務將軟體應用程式分離為可治理的、自包含的部門,這些部門可以獨立建立、部署和擴充套件。因此,開發人員可以輕鬆地新增新功能或技術,而無需對當前系統進行大的調整。微服務的模組化設計也使測試和實現新功能變得更簡樸,這有助於縮短開發週期。但正如本文開頭所提到的,我們不能在嵌入式世界中使用相同的工具。像Luos專案這樣的開源努力正在創造未來所需的工具。

延遲問題

在嵌入式系統中使用微服務可能存在一定的延遲問題。在考慮微服務時,開發人員可能會想到治理各種服務之間通訊的延遲。基於微服務的系統將需要在服務之間進行一種板間IPC(程序間通訊),這可能會導致延遲。嵌入式開發人員可以透過丈量延遲並使其對實時應用程式具有確定性來治理延遲。透過使用時間戳,它將答應你以數學方式計算延遲。我們可以使用排隊和排程等策略來確保哀求得到一致處理,並使延遲具有確定性。

 

上一篇:小程式為什麼... 下一篇:防爆對講機:...
猜你喜歡
熱門閱讀
同類推薦