成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RTOS 應用程序開發人員面臨的三個常見挑戰

開發 前端
實時操作系統 (RTOS) 現在包含在許多嵌入式應用程序中,它們可以顯著簡化系統中的時間和任務管理,并有助于提高可擴展性和可維護性(如果應用程序設計正確)。

RTOS 應用程序嵌入式開發人員面臨著幾個共同的挑戰。讓我們檢查這些挑戰并討論一些潛在的解決方案。

挑戰 #1 – 選擇任務優先級

事實證明,有幾種不同的方法來選擇任務優先級。首先,有最短的響應時間。在這種方法中,開發人員檢查每個任務的響應時間要求,并將最高優先級分配給具有最短響應時間要求的任務。

其次,有最短作業優先方法。在這種方法中,開發人員檢查任務的執行時間,執行時間最短的任務是最高優先級(顯然其次是下一個最高優先級,依此類推)。

最后,還有一種在實時嵌入式系統中最常用的方法,即最短周期優先或更常用的“速率單調調度(RMS)”。在這種方法中,周期最短的任務優先級最高。

遵循 RMS 將使你完成 95% 的任務,然后通常會有一個奇怪的任務,或者是非周期性的,需要優先級分配。這些非周期性任務可以分配一個最壞情況周期,也可以根據它們的重要性、執行時間或是否需要在另一個可能需要其數據的任務之前運行來分配它們。(請記住,任務優先級沒有正確或錯誤的答案,只有可能比其他系統運行得更好或更高效的系統)。

挑戰#2 — 用數據流圖看大圖

嵌入式開發人員在實施他們的 RTOS 應用程序時并沒有真正了解數據是從哪里產生的、去往何處以及如何到達那里的,這會導致軟件有點像糟亂的代碼,并且隨著更多應用程序的部署,經常需要不斷地返工。盡量減少這種返工并了解整個應用程序的方法是開發一個簡單的數據流圖。該圖包含幾個關鍵組件:

  • 數據生產者
  • 數據消費者
  • 數據傳輸機制
  • 存儲機制
  • 任務協調機制

擁有此數據流圖可以回答有關應用程序設計的許多問題,并避免將大量時間浪費在返工或調試上。

挑戰 #3 – 正確保護共享內存

互斥鎖用于保護共享內存資源,但在實現中,經常有嵌入式開發人員將互斥鎖與受保護的數據分開創建。雖然乍一看這似乎沒問題,但問題是如果互斥鎖是獨立于數據結構創建的,并且有人去使用該數據結構,他們可能不會意識到它是一個共享和受保護的資源。(是的,文檔、設計和許多其他東西應該使這一點顯而易見,但如果單獨聲明它很容易被忽視)。

解決方案是將共享內存視為一個對象,并將互斥鎖作為共享內存數據結構的一部分。例如,共享內存可能有來自濕度、溫度和電流傳感器的數據。我們通??梢匀缦侣暶鲾祿慕Y構:

typedef struct
{
uint16_t Humidity;
uint16_t Temperature;
uint16_t Current;
}SensorData_t;

同樣,單獨聲明的互斥鎖可能會使數據共享變得不那么明顯。相反,我們可以定義如下結構:

typedef struct
{
mutex_t SensorDataMutex;
uint16_t Humidity;
uint16_t Temperature;
uint16_t Current;
}SensorData_t

現在,每當開發人員查看數據結構、嘗試執行自動完成等操作時,都會提醒他們這是受保護的數據。當他們看到它被保護時,它應該提醒他們在訪問數據之前,他們需要獲取互斥鎖。

開發人員經常忘記,僅僅因為創建互斥鎖是為了保護數據,并不能保證互斥鎖將用于訪問數據。(這也是為什么將數據結構視為一個對象并創建限制對數據資源的訪問和控制的函數很有用,這些數據資源在應用程序級別抽象出互斥鎖)。

實時操作系統可以簡化嵌入式系統的時間和資源管理。但是,RTOS 確實增加了系統的復雜性,可能會產生影響開發計劃和代碼質量的意想不到的挑戰。在今天的文章中,我們研究了嵌入式開發人員經常遇到的幾個常見挑戰,通過遵循一些最佳實踐可以很容易地克服這些挑戰。


責任編輯:華軒 來源: 今日頭條
相關推薦

2021-11-30 17:37:14

ReactRedux

2013-06-05 10:16:53

2009-09-03 17:58:34

Android開發人員

2015-03-19 09:13:24

應用程序開發云服務商亞馬遜

2018-05-11 10:49:27

區塊鏈應用程序

2020-09-23 22:40:31

Python 開發編程語言

2022-01-29 00:02:32

嵌入式系統開發系統

2023-03-07 17:56:09

Docker容器開源

2021-11-02 08:54:10

開發編程測試

2021-11-06 23:07:47

開發網站編程

2023-02-08 08:32:58

2022-01-06 16:15:58

自測測試開發人員

2022-01-04 13:54:57

應用程序IT監測

2019-08-16 15:15:05

2019-08-16 10:30:57

物聯網應用程序物聯網安全

2013-12-23 15:46:42

2009-11-26 09:06:50

Android開發

2010-02-24 13:45:40

Python開發人員

2022-05-05 16:37:44

云原生網絡安全

2010-06-21 08:54:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人操| 午夜a区 | 盗摄精品av一区二区三区 | 日韩精品一区二区三区中文在线 | 五月网婷婷 | aaa在线观看 | 翔田千里一区二区 | 中文字幕在线一区二区三区 | 国产精品69毛片高清亚洲 | 久草免费在线视频 | 美女一级黄 | 中文字幕一区二区三区不卡在线 | 黑人巨大精品欧美黑白配亚洲 | 国产免费一区 | 日韩欧美国产不卡 | 亚洲美女一区二区三区 | 国产精品久久久久久久久免费 | 精品国产乱码一区二区三区 | 99精品在线观看 | 七七婷婷婷婷精品国产 | 成人二区| 韩国欧洲一级毛片 | 久久久片| 国产9久 | 免费艹逼视频 | 在线电影日韩 | 欧美日韩在线视频观看 | 国产男女猛烈无遮掩视频免费网站 | 小h片免费观看久久久久 | 91精品国产乱码久久久久久久久 | 黑人巨大精品欧美一区二区免费 | 久久亚洲国产精品日日av夜夜 | 欧美性乱 | 亚洲a人| 亚洲日本一区二区三区四区 | www亚洲免费国内精品 | 亚洲国产精品一区二区三区 | 91在线精品视频 | 男人的天堂中文字幕 | 999国产精品视频免费 | 国产一二三区在线 |