如何最大限度地提高物聯(lián)網(wǎng)項目的效率?對于閱讀最新微控制器數(shù)據(jù)表的開發(fā)人員來說,很容易假設 CPU 資源的有效使用,包括內存和時鐘周期,充其量只是當今硬件的次要問題。對于嵌入式開發(fā)人員來說,現(xiàn)在可能比以往任何時候都更重要的是確保他們的軟件以最高效率運行并且他們自己的時間以一種有效的方式度過。
在現(xiàn)代嵌入式系統(tǒng)上運行的軟件往往來自多種來源。應用程序開發(fā)人員編寫的代碼通常與來自 RTOS(實時操作系統(tǒng))提供商的現(xiàn)成軟件組件相結合,而后者又可能使用最初由半導體公司提供的驅動程序代碼??梢跃帉懨慷未a來優(yōu)化效率,但本文將重點關注現(xiàn)成軟件組件的效率。特別是兩個組件將作為此處介紹的資源效率檢查的基礎:實時內核和事務文件系統(tǒng)。
實時內核:高效系統(tǒng)的核心
實時內核是當今許多嵌入式系統(tǒng)中運行的軟件的核心。簡單來說,內核就是一個調度器;為基于內核的系統(tǒng)編寫應用程序代碼的開發(fā)人員將該代碼劃分為任務,而內核負責調度任務。因此,內核是main()中無限循環(huán)的替代方案,在裸機嵌入式系統(tǒng)中常被用作主要的調度機制。
使用實時內核有很多好處,包括提高效率。選擇基于內核的應用程序代碼的嵌入式開發(fā)人員可以優(yōu)化系統(tǒng)中處理器資源的使用,同時更有效地利用他們的時間。然而,并不是所有的內核都是平等的,并且僅僅決定為一個新項目采用一個內核并不能保證效率的提高。
核心可能不同以及 CPU 資源可以以不同程度的效率使用的關鍵領域是調度。通過提供允許任務響應事件運行的智能調度機制,內核幫助開發(fā)人員在無限循環(huán)中實現(xiàn)效率提升,其中任務(或函數(shù))以固定順序執(zhí)行?;趦群说膽贸绦虻拇_切效率部分取決于其調度程序的實現(xiàn)方式。內核的調度程序——它只是決定何時運行每個任務的一段代碼——最終會產生開銷,而這種開銷并不會抵消從裸機系統(tǒng)轉移所獲得的好處。
內核可以通過兩種方式分配多任務處理所需的基本資源:分配這些資源的責任可以留給應用程序代碼,或者內核本身可以處理分配。任何內核中都不可避免地存在某些變量和數(shù)據(jù)結構,因為它們對于多任務服務的實現(xiàn)至關重要,因此它們完全位于內核范圍內。但是對于用于記錄每個任務狀態(tài)的TCB(或任務控制塊)等數(shù)據(jù)結構,甚至對于上下文切換時存儲CPU寄存器值的棧,內核提供者可以選擇內部分配或者依賴應用程序代碼。
文件系統(tǒng)效率
大多數(shù)設備都需要存儲數(shù)據(jù)和記錄事件的選項,或者作為傳輸?shù)皆浦暗呐R時休息場所,或者更永久地保存在設備上。為此目的設計的任何代碼都是文件系統(tǒng),無論是由嵌入式開發(fā)人員編寫和測試,還是作為 RTOS 解決方案的一部分提供。文件系統(tǒng)還可以提供提高效率的選項。這些范圍從簡單(要保留多少內存緩沖區(qū))到復雜(是否支持完整的 POSIX 操作)。
首先,一些 RTOS 提供類似 FAT 的文件系統(tǒng)。這包括使用標準媒體格式(包括文件夾和文件)執(zhí)行 I/O 的代碼。通常,這不是非??啥ㄖ频?,并且它很少能防止電源故障期間的數(shù)據(jù)丟失。另一種選擇是 Datalight 的 Reliance Edge,它使用事務點來提供電源故障安全環(huán)境。這里令人興奮的是設計的靈活性如何提高效率。
Reliance Edge 提供存儲選項的自定義。在稱為“文件系統(tǒng)要素”的最小用例中,不使用文件夾甚至文件名。數(shù)據(jù)存儲在編號的 inode 中。這些位置的數(shù)量是在編譯時確定的,但大小不是預先確定的。一個“文件”可以包含比其他“文件”更多的數(shù)據(jù),并且僅當“文件”的總大小達到閾值時媒體才滿。文件也可以自由截斷、讀取和寫入。
除了資源使用問題,多年來,效率一直是開發(fā)人員購買內核、文件系統(tǒng)和其他軟件模塊的首要考慮因素。這是因為用于證明采用此類模塊的理由通常是從頭開始編寫等效代碼將浪費時間。換句話說,應用程序開發(fā)人員的時間最有效地用于編寫應用程序,而不是花費數(shù)萬行基礎設施代碼。
如何最大限度地提高物聯(lián)網(wǎng)項目的效率?主要是通過選擇高質量的現(xiàn)成組件作為其項目的基礎,嵌入式開發(fā)團隊可以確保有效利用自己的資源以及嵌入式硬件的資源,并可以專注于編寫創(chuàng)新的應用程序代碼以提供他們的工作站站穩(wěn)腳跟。更多關于物聯(lián)網(wǎng)培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。