国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

以最佳效率開發物聯網裝置

電子工程師 ? 來源:網絡整理 ? 作者:佚名 ? 2018-06-05 18:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近來開發過物聯網(IoT)產品的人都知道,這些硬件的進步并非空穴來風;它們一直在因應終端用戶的期望和設計要求而發生顯著的變化。因此,現在比以往任何時候都更重要的是:開發人員必須確保其軟件以最高效率執行,并且能有效地利用時間。


執行于現代嵌入式系統中的軟件往往出自各種來源。應用開發人員編寫的程序代碼通常結合RTOS供貨商的現成軟件組件,而這些組件又可能利用最初由半導體公司提供的驅動程序碼。開發人員可以編寫每段程序代碼以優化效率,但本文更著重于現成軟件組件中的效率優化。

對于開發人員來說,如果只是鉆研最新的微控制器(MCU)規格表,很容易就會認為有效地使用了CPU資源(包括內存和頻率周期),這是目前在硬件設計上的一個小問題。最新的32位MCU可以為嵌入式系統提供閃存和RAM分配,這在不久前還是前所未聞的;而且其CPU通常還能與桌面計算機默認的運行速度一樣。

然而,近來開發過物聯網(IoT)產品的人都知道,這些硬件的進步并非空穴來風;它們一直在因應終端用戶的期望和設計要求而發生顯著的變化。因此,現在比以往任何時候都更重要的是:開發人員必須確保其軟件以最高效率執行,并且能有效地利用時間。

執行于現代嵌入式系統中的軟件往往出自各種來源。應用開發人員編寫的程序代碼通常結合了實時操作系統(RTOS)供貨商的現成軟件組件,而這些組件又可能利用最初由半導體公司提供的驅動程序碼。開發人員可以編寫每段程序代碼以優化效率,但本文更著重于現成軟件組件中的效率優化。特別是其中兩個組成部份將作為審視資源效率的基礎:實時核心和事務文件系統(transactional file system)。

實時核心:高效系統的核心

實時核心是執行于當今許多嵌入式系統中的軟件核心。簡言之,核心是一個排程器;為基于核心的系統編寫應用程序代碼的開發人員將程序代碼分為多個任務,而核心就負責安排這些任務。那么,核心是main()中無限循環的替代方法,它常常作為裸機(bare-metal)嵌入式系統中的主要調度機制。

使用實時核心提供了重要優點,包括提高效率。選擇將其應用程序代碼用于核心基礎的開發人員可以優化其系統中處理器資源的使用,同時更有效率地利用自己的時間。然而,并不是所有的核心都生而相同,因此,簡單地決定在新的項目中采用核心,并不一定能保證提高效率。

“排程”(scheduling)是可能有不同核心且CPU資源的使用效率差異大的關鍵領域。透過提供一種允許任務以響應事件的方式執行的智慧調度機制,讓核心有助于開發人員在無限循環中提升效率,并以固定順序執行任務(或函數)。基于核心的應用程序之確切效率部份取決于其排程器的實現方式。一個核心的排程器(只是一段負責決定每項任務何時執行的程序代碼)最終是一項開銷,但它必須不能蠶食掉透過擺脫裸機系統獲得的好處。

以最佳效率開發物聯網裝置

圖1:在μC/OS-II排程器中,每一項任務的優先級由數組中的位表示

通常,在實時核心中,排程任務是基于優先級的,這意味著應用程序開發人員為其任務分配優先級(通常以時間數字表示),而且在進行排程決策時,核心即可支持更高優先級的任務執行。在這種機制下,核心必須保持某種類型的數據結構,即追蹤應用程序不同任務的優先級以及每項任務的當前狀態。例如Micrium的μC/OS-II核心,如圖1所示。

在OSRdyTbl[]中顯示8-元素數組(每元素8位),每個位表示不同的任務優先級;其中:第一個元素的最低有效位對應最高優先級;最后一個元素的最高有效位表示最低優先級。數組中的位值反映任務狀態:如果相關優先級的任務準備就緒,則用1表示;若任務尚未準備就緒,就用0表示。

附帶的OSRdyTbl[]是μC/OS-II排程器的一部份,即圖中所示的單個八位變量——OSRdyGrp。該變量中的每個位表示數組中的一整行或元素:1位表示對應的行至少有一個任務就緒;0位表示該行尚無就緒的任務。透過使用列表1中所示的程序代碼先掃描OSRdyGrp、再掃描OSRdyTbl[],μC/OS-II即可確定在特定時間中準備好執行的最高優先任務。如列表所示,如此的作業方式十分高效率,只需要兩行C程序代碼。


當然,緊湊、高效率的程序代碼只是開發人員在核心中尋求的特性之一。有鑒于大多數新款MCU提供的閃存相對多于RAM,對于開發人員來說,考慮核心所占用空間的資料端也很重要。對于核心的排程器來說,龐大的RAM占用空間導致過多的開銷,從而減少了多任務應用程序代碼通常具有的好處。

核心可以采用兩種方法來分配多任務處理所需的基本資源:分配這些資源的責任可以留給應用程序代碼,或是本身可以處理分配的核心。在任何核心中必然存在某些變量和數據結構,因為它們對于執行多任務服務至關重要,所以這些變量和數據結構完全存放在核心中。然而,對用于記錄每個任務狀態的任務控制區塊(TCB)等數據結構,或甚至在情境切換期間儲存CPU緩存器值的堆棧,核心供貨商可以選擇在內部進行分配或交給應用程序代碼來實現。

無論是哪一種方法,只要在建置時以靈活性為目標之一,即可產生一個高效核心。延遲將資源分配給應用程序代碼也是為開發人員提供最大靈活性的方法之一,因為它提供了選擇靜態或動態分配機制的空間。Micrium的μC/OS-III即采用這種方法,讓應用開發人員決定如何最有效地分配其TCB和堆棧。然而,如同在μC/OS-II的TCB情況一樣,強制在核心中實施資源分配是同樣有效的方法,只要能配置分配資源量的方法即可。最終,應用開發人員需要一種從系統的內存空間中消除未使用資源的方法。

文件系統效率

大多數的裝置都需要儲存數據和記錄事件的選項,作為在傳送到云端之前的臨時保存空間、或者是更長久地儲存在裝置上。為此目的設計的任何程序代碼就是文件系統,無論是由開發人員編寫和測試的,還是以RTOS解決方案的一部份提供。文件系統還可以提供效率選項,其范圍從簡單(保留多少內存緩沖)到復雜(是否支持完整的POSIX作業)。

開發人員應該從對于儲存數據的要求開始。數據是否能在現場進行操作?或只是暫存并在稍后傳送?要測量多少內容?數據應該分開或合并儲存?數據暫時儲存至裝置進行收集之后?還是要傳送到云端?儲存媒體有多可靠?設計能完全免受于電源故障的影響嗎?

首先,有些RTOS提供類似FAT的文件系統。這包括使用標準媒體格式(包括文件夾和檔案)執行I/O的程序代碼。一般來說,其可訂制程度有限,很少能防范電源故障時的數據遺失。另一個選擇是Datalight的Reliance Edge,它采用交易點提供電源故障安全環境,其令人振奮之處在于設計的靈活性如何有助于提高效率。

Reliance Edge提供儲存選項的訂制化。在最小化的用例中,它稱為「文件系統要素」,不必使用文件夾或甚至檔名。數據儲存于編號的索引節點(inode)中。這些位置的計數在編譯時確定,但大小無需預先確定。一個「檔案」可能包含較其它檔案更多的數據,并且僅在「檔案」的總容量達到閾值時,儲存媒體才算滿載。還可自由地對檔案進行截取、讀取和寫入。

以最佳效率開發物聯網裝置

圖2:FAT文件系統與Reliance Edge


相形之下,FAT格式的文件系統具有專用于兩種文件分配表的媒體建構模塊。針對每個用戶數據文件,為其分配檔名和元數據——前者可能相當大以支持較長的檔名。如果使用子文件夾,其元數據和長文件名也將會占用空間。所有的結果都會導致儲存媒體上用于收集用戶數據的可用空間變少。

對于較大的設計,Reliance Edge提供了更像是POSIX的環境。這里的文件名、文件夾和文件系統元數據(如屬性以及數據和時間)是一種可配置的選項。對于期望從其它設計移植POSIX界面的應用來說,這可能是非常好的選擇。最終,文件系統要求的最終選擇與用例直接相關,成為最有效率的資源方案。

全面考慮效率

除了資源使用問題之外,多年來,在購買核心、文件系統和其他軟件模塊時,效率一直是開發人員關注的頭等大事。這是因為用于證明采用這種模塊的理由通常是:從頭開始編寫等效的程序代碼相當浪費時間。換句話說,應用開發人員最有效的時間利用是編寫應用程序,而不是埋首于數萬行的基礎架構程序代碼。

然而,正如核心和文件系統的使用本身并不能保證CPU資源的有效應用一樣,將這些模塊導入新項目的決定,也不會自動確保開發人員能最有效地利用時間。為了讓開發人員真正專注于應用級程序代碼,嵌入式軟件模塊必須具有直觀的接口,該接口還必須有詳盡的文檔介紹。在缺乏有效文檔的情況下,開發人員可能要花數周的時間解決事后證明是函數誤用導致的問題。

遺憾的是,如果無法可靠地實現所描述的功能,即使是文文件編寫良好的程序代碼也會不必要地浪費開發時間。這就是為什么除了要求完整的文檔外,開發人員在為新項目選擇軟件時,應尋求可靠性證據——例如過去的認證或測試結果。實際上,每個軟件模塊在宣傳文獻中聽起來都很可靠,但只有一部份模塊提供了可靠證明能確保其「言行一致」。例如,Datalight的Reliance Edge就提供了各種不同測試的源代碼,讓應用開發人員確認文件系統在特定開發環境中能否可靠執行。

以最佳效率開發物聯網醫療裝置

什么類型的開發環境可能出現在物聯網項目中?有鑒于嵌入式裝置對于連接性的要求迅速增加,不可能確定一種硬件、軟件和工具鏈的特定組合來界定這個范圍。要找到一種能完全代表物聯網可能范圍的終端產品同樣具有挑戰性。盡管如此,這一領域的討論當然可以從具體的例子中受益。

為了說明物聯網開發人員面臨的挑戰,本文以一款在幾年前還未被視為連網裝置的血糖儀為例。這種產品的關鍵特征之一是市場容量:血糖儀每年的產量有數百萬,并且往往以低于成本的價格出售,甚至免費贈送。因此,降低BOM成本,并以最少時間開發這些儀器的壓力很大。不過,開發這些設備并不容易。事實上,新的血糖儀功能增加了彩色顯示、數據記錄功能和云端連接。

面對如此復雜的需求,負責血糖儀開發的團隊當然希望利用核心的多任務處理功能。優化核心的內存占用空間可能是開發團隊的首要關注之一,因為典型的高產量、低成本MCU往往只有有限的閃存和RAM資源。減少空間占用的關鍵步驟是刪除應用程序代碼不需要的核心資源(如TCB)。消除應用中各種核心管理任務所需的堆棧耗費也將會有幫助。

例如像Micrium μC/Probe這樣的工具,可用于實現這一目標,如圖2所示。μC/Probe可以深入了解基于核心的應用的堆棧使用情況,讓開發人員輕松地辨識低效情況,以及提高效率。

以最佳效率開發物聯網裝置

圖3:μC/Probe提供對于系統數據的運行時間存取,包括核心統計信息

當實施血糖儀的數據記錄功能時,儀器的開發團隊將可從文件系統的功能中受益。在此,與核心一樣,使用現成的軟件模塊可以減輕開發基礎架構程序代碼的負擔,從而有助于實現時間更短、更具成本效益的開發周期。處理器資源的使用一直是系統的整體限制之一,在開發數據記錄程序代碼時不可避免地必須予以考慮,因此使用高效的事務文件系統較為理想。藉由Reliance Edge等文件系統方案,開發團隊可以輕松地將服務縮減到最低限度,以便盡量為應用程序留出最多的儲存空間。

結論

雖然每個嵌入式系統都有其獨特的需求,但適于為血糖儀實現最高效率的方法也可以輕松地用于開發其它裝置類型。重復利用組件早已被公認為軟件開發的最佳實踐,而血糖儀所需的許多基礎架構程序代碼(包括實時核心和文件系統)可以作為其它裝置開發的基礎,除了替換少數底層程序代碼外,僅需很少改動。

透過選擇具有質量保證的現成組件作為項目的基礎,開發團隊可以確保自己的資源以及嵌入式硬件的有效利用,并且可以專注于編寫創新的應用程序代碼,使其設計在眾多的產品中脫穎而出。物聯網創新的曙光已經開始閃爍。







聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IOT
    IOT
    +關注

    關注

    190

    文章

    4397

    瀏覽量

    208660
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PPEC inside 數字電源在托卡馬克裝置中的應用

    大科技工程提供了堅實的電力保障。 托卡馬克裝置的穩定運行,離不開精準、可靠的電源支撐。依托自研的 PPEC Workbench 智能化開發平臺,森木磊石打造的 PPEC inside 系列數字電源,已
    發表于 01-22 10:38

    電源的效率如何觀察?

    形式的能量損失。 電源效率曲線:電源的效率通常隨著負載的變化而變化。因此,電源制造商通常提供電源效率曲線圖,顯示了在不同負載下電源的效率。這可以幫助用戶選擇
    發表于 12-30 08:19

    如何確定特定應用場景下電能質量在線監測裝置最佳校準提醒周期?

    確定特定應用場景下電能質量在線監測裝置最佳校準提醒周期,核心邏輯是 “基準周期 + 場景修正因子” 結合,兼顧精度要求、環境影響、運維成本與行業標準,最終實現 “數據準確 + 成本最優” 的平衡
    的頭像 發表于 12-12 15:10 ?272次閱讀
    如何確定特定應用場景下電能質量在線監測<b class='flag-5'>裝置</b>的<b class='flag-5'>最佳</b>校準提醒周期?

    有沒有針對特定行業或場景的裝置數據驗證效率提升方案?

    不同行業 / 場景的電能質量監測需求、裝置部署特點及運行約束差異極大(如新能源場站裝置分散、醫療場景禁止干擾、數據中心需零停機),其數據驗證效率的瓶頸也各不相同。以下針對新能源場站(光伏 / 風電
    的頭像 發表于 09-04 17:47 ?630次閱讀
    有沒有針對特定行業或場景的<b class='flag-5'>裝置</b>數據驗證<b class='flag-5'>效率</b>提升方案?

    毫秒級響應!配網行波故障預警與定位裝置煥新效率

    配網線路往往綿延數十公里,途經山區、農田、城市建筑群等復雜地形,故障發生后,快速鎖定故障點是縮短停電時間的關鍵。配網行波故障定位裝置的“毫秒級定位” 能力,從根本上解決了配網故障定位效率
    發表于 09-03 13:45

    像搭積木一樣開發物聯網,大魚半導體亮相IOTE 2025

    專注物聯網通信的大魚半導體,于8月27日開幕的深圳IOTE 2025國際物聯網展上,正式展出了其全場景“技術積木”通信產品體系。該體系由一系列通信模塊構成,能根據不同場景需求,靈活組合寬、中、窄帶任一頻段或多頻段,旨在提供更便捷、更穩定、更優成本的物
    的頭像 發表于 08-28 10:52 ?7572次閱讀
    像搭積木一樣<b class='flag-5'>開發物</b><b class='flag-5'>聯網</b>,大魚半導體亮相IOTE 2025

    多協議物聯網關的方案測試-基于米爾全志T536開發

    T536處理器的特點,這里進一步的進行軟件開發,充分利用開發板的硬件資源,完成業務產品的需求。這里聯網多協議網關應用為研究為目的,首先建立基礎的從各個硬件設讀取硬件端口的數據,并且
    發表于 06-20 15:44

    聯網的應用范圍有哪些?

    的應用范圍極其廣泛,眾多行業都在積極引入這項技術,提升效率、創新業務模式。 物流行業:在倉儲環節,借助物聯網技術,可實現對貨物的實時監測,了解貨物的位置、狀態等信息,優化倉儲空間布局。運輸過程中,通過
    發表于 06-16 16:01

    優化電機控制提高能效

    了電機控制技術。這項技術不僅能優化電機性能,更能顯著提升系統能效。其工作原理是通過調節供給電機的頻率和電壓,使電機始終工作在特定負載下的最佳效率點。 傳統電機系統通常以全功率運行,依賴節流閥調節
    發表于 06-11 09:57

    【米爾-全志T536開發板試用體驗】- 多協議物聯網關的開發測試

    板的硬件資源,完成業務產品的需求。這里聯網多協議網關應用為研究為目的,首先建立基礎的從各個硬件設讀取硬件端口的數據,并且通過SOCKET由網絡收發的過程。在一般開發物聯網網關時可以
    發表于 06-10 11:48

    基于物聯網的戶外環境檢測裝置(STM32、APP、WIFI)實例項目下載

    基于物聯網的戶外環境檢測裝置(STM32、APP、WIFI)實例項目,推薦下載!
    發表于 05-29 21:46

    聯網工程師為什么要學Linux?

    的工具鏈和文檔支持。 二、開發效率與功能實現 1)開發環境依賴 物聯網項目常涉及跨平臺編譯、內核裁剪、驅動開發等任務,Linux提
    發表于 05-26 10:32

    基于物聯網的戶外環境檢測裝置(STM32、APP、WIFI)

    基于物聯網的戶外環境檢測裝置(STM32、APP、WIFI) 項目示例下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 05-23 20:57

    Java開發者必備的效率工具——Perforce JRebel是什么?為什么很多Java開發者在用?

    Perforce JRebel是一款Java開發效率工具,旨在幫助java開發人員更快地編寫更好的應用程序。JRebel可即時重新加載對代碼的修改,無需重啟或重新部署應用程序,就能讓開發
    的頭像 發表于 04-27 13:44 ?867次閱讀
    Java<b class='flag-5'>開發</b>者必備的<b class='flag-5'>效率</b>工具——Perforce JRebel是什么?為什么很多Java<b class='flag-5'>開發</b>者在用?

    【第一彈】樹莓派開發者必看!Ubuntu Snap煥新升級:跨平臺開發從未如此簡單!

    導語:當樹莓派遇上UbuntuSnap,會發生什么?無論是用樹莓派搭建智能家居中樞,還是開發物聯網邊緣設備,依賴管理和跨平臺兼容性始終是開發者的痛點。而UbuntuSnap
    的頭像 發表于 03-25 09:19 ?852次閱讀
    【第一彈】樹莓派<b class='flag-5'>開發</b>者必看!Ubuntu Snap煥新升級:跨平臺<b class='flag-5'>開發</b>從未如此簡單!