偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

RTOS 應用程序開發(fā)人員面臨的三個常見挑戰(zhàn)

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

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

挑戰(zhàn) #1 – 選擇任務優(yōu)先級

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

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

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

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

挑戰(zhàn)#2 — 用數(shù)據(jù)流圖看大圖

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

  • 數(shù)據(jù)生產(chǎn)者
  • 數(shù)據(jù)消費者
  • 數(shù)據(jù)傳輸機制
  • 存儲機制
  • 任務協(xié)調(diào)機制

擁有此數(shù)據(jù)流圖可以回答有關(guān)應用程序設計的許多問題,并避免將大量時間浪費在返工或調(diào)試上。

挑戰(zhàn) #3 – 正確保護共享內(nèi)存

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

解決方案是將共享內(nèi)存視為一個對象,并將互斥鎖作為共享內(nèi)存數(shù)據(jù)結(jié)構(gòu)的一部分。例如,共享內(nèi)存可能有來自濕度、溫度和電流傳感器的數(shù)據(jù)。我們通??梢匀缦侣暶鲾?shù)據(jù)的結(jié)構(gòu):

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

同樣,單獨聲明的互斥鎖可能會使數(shù)據(jù)共享變得不那么明顯。相反,我們可以定義如下結(jié)構(gòu):

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

現(xiàn)在,每當開發(fā)人員查看數(shù)據(jù)結(jié)構(gòu)、嘗試執(zhí)行自動完成等操作時,都會提醒他們這是受保護的數(shù)據(jù)。當他們看到它被保護時,它應該提醒他們在訪問數(shù)據(jù)之前,他們需要獲取互斥鎖。

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

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


責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-11-30 17:37:14

ReactRedux

2013-06-05 10:16:53

2009-09-03 17:58:34

Android開發(fā)人員

2015-03-19 09:13:24

應用程序開發(fā)云服務商亞馬遜

2018-05-11 10:49:27

區(qū)塊鏈應用程序

2020-09-23 22:40:31

Python 開發(fā)編程語言

2022-01-29 00:02:32

嵌入式系統(tǒng)開發(fā)系統(tǒng)

2023-03-07 17:56:09

Docker容器開源

2023-02-08 08:32:58

2021-11-02 08:54:10

開發(fā)編程測試

2021-11-06 23:07:47

開發(fā)網(wǎng)站編程

2022-01-06 16:15:58

自測測試開發(fā)人員

2022-01-04 13:54:57

應用程序IT監(jiān)測

2019-08-16 15:15:05

2025-08-08 02:00:00

AI應用開發(fā)

2019-08-16 10:30:57

物聯(lián)網(wǎng)應用程序物聯(lián)網(wǎng)安全

2022-05-05 16:37:44

云原生網(wǎng)絡安全

2009-11-26 09:06:50

Android開發(fā)

2011-07-10 15:18:11

開發(fā)

2020-06-09 07:57:47

前端開發(fā)代碼
點贊
收藏

51CTO技術(shù)棧公眾號