91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

RTOS中的本地存儲指針使用

麥克泰技術 ? 來源:麥克泰技術 ? 作者:麥克泰技術 ? 2025-02-28 16:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本地存儲指針是RTOS中的一個重要特性,增強了任務管理和數(shù)據(jù)處理能力。在RTOS上下文中,本地存儲是指存儲在本地的特定任務或對象的數(shù)據(jù)。通常與任務本地存儲(Task Local Storage,TLS)有關,其中數(shù)據(jù)存儲在任務控制塊(TCB)中,允許每個任務具有私有的、特定于任務的變量。

本地存儲指針

全局變量通常用于函數(shù)間的數(shù)據(jù)傳遞。這可能會導致不同的任務修改同一變量,從而導致沖突。為了解決這個問題,通過TLS將全局變量作為任務私有變量使用,確保任務可以獨立地存儲和檢索自己的數(shù)據(jù)。通過將特定于任務的數(shù)據(jù)與系統(tǒng)范圍的變量分開來提高代碼的可重用性,從而使其更易于管理和維護。

示例

考慮一個有多個PI控制器來控制幾個過程的系統(tǒng),每個PI控制器包含一個積分器值,該值必須保存以供下一個控制器步驟計算。圖1顯示了通過全局變量實現(xiàn)的方法,該方法需要特定的引用來確保每個任務訪問正確的數(shù)據(jù),從而使實現(xiàn)更加復雜。

44397e78-f581-11ef-9310-92fbcf53809c.png

圖1 使用全局變量

圖2顯示了使用了TLS的相同系統(tǒng)實現(xiàn)。使用TLS,每個任務都可以使用自己的本地存儲來引用積分器值。該方式簡化了代碼,每個任務直接管理自己的數(shù)據(jù),使其更容易擴展和維護。

4457072c-f581-11ef-9310-92fbcf53809c.png

圖2 使用TLS

SAFERTOS中的本地存儲指針

為了允許應用設計人員靈活使用的本地存儲接口,SAFERTOS將其實現(xiàn)為一個void類型指針,稱為本地存儲指針。每個任務(定時器)都可以在任務或定時器控制塊中存儲自己唯一的數(shù)據(jù)對象。

SAFERTOS中的void指針允許應用程序設計人員根據(jù)任務的需要存儲任何類型的數(shù)據(jù),無論是簡單的數(shù)組還是更復雜的數(shù)據(jù)結構。

數(shù)據(jù)的存儲方式取決于數(shù)據(jù)長度和應用程序設計。void指針的長度取決于體系結構,在32位體系結構中,void指針的長度為32位或者4個字節(jié)。這意味著如果TLS中存儲的數(shù)據(jù)長度為4字節(jié)或以下,可以直接保存在存儲指針中。如果超過4字節(jié)數(shù),通過指針引用預分配的內存塊(SAFERTOS不允許動態(tài)內存分配)。

本地存儲指針在任務或定時器創(chuàng)建時設置,可以使用特定的API函數(shù)(pvTaskTLSObjectGet(), pvTimerTLSObjectGet())訪問數(shù)據(jù)。

本地存儲指針為SAFERTOS中提供了一種高度靈活的方式來管理特定于任務的數(shù)據(jù),從而生成更干凈、易于維護的代碼。通過TLS,任務可以管理自己的數(shù)據(jù),而不必擔心全局狀態(tài),從而減少沖突的風險,提高應用程序的整體效率。

麥克泰技術是安全預認證操作系統(tǒng)SAFERTOS在中國的代理商,具有超過20年嵌入式實時操作系統(tǒng)和功能安全軟件服務的市場、服務和培訓經驗,聯(lián)系info@bmrtech.com。

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

    關注

    114

    文章

    17786

    瀏覽量

    193059
  • 嵌入式
    +關注

    關注

    5198

    文章

    20438

    瀏覽量

    333955
  • 函數(shù)
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67499
  • 指針
    +關注

    關注

    1

    文章

    484

    瀏覽量

    71843
  • RTOS
    +關注

    關注

    25

    文章

    866

    瀏覽量

    122969

原文標題:RTOS中的本地存儲指針使用

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RTOS信號量、隊列通信原理

    有深入理解RTOS原理,或閱讀過RTOS源碼的同學應該知道:RTOS實現(xiàn)任務間通信通常是由一系列指針進行操作實現(xiàn)的。
    發(fā)表于 08-16 10:07 ?2205次閱讀

    RTOS的定時功能

    RTOS
    橙群微電子
    發(fā)布于 :2023年02月27日 09:42:16

    RTOS存儲器選擇

    當系統(tǒng)運行了一個嵌入式實時操作系統(tǒng)時(RTOS),操作系統(tǒng)通常都是使用非易失的存儲器來運行軟件以及采集數(shù)據(jù)。存儲器的選擇面很廣闊,其中包括電池供電的SRAM(靜態(tài)隨機訪問儲存器),各種各樣的閃存以及串口EEPROM(電可擦的,可
    發(fā)表于 06-28 08:29

    k8s volume本地存儲和網(wǎng)絡存儲

    八 、 k8s volume 本地存儲和網(wǎng)絡存儲
    發(fā)表于 03-25 08:44

    C編程指針:什么是指針,它做什么?

    了所有指針,那么其他工程師將更容易理解您的代碼。指針做什么?它指出。更具體地說,它指向另一個變量的數(shù)據(jù),或者指向存儲在內存但未與變量關聯(lián)的數(shù)據(jù)。我們通常認為變量是
    發(fā)表于 09-08 23:30

    指數(shù)指針的相關知識

    雖然數(shù)組與指針數(shù)組存儲的都是數(shù)據(jù),但還是有細微的差別。數(shù)組存儲的是相同類型的字符或數(shù)值,而指針數(shù)組存儲的是相同類型的
    的頭像 發(fā)表于 09-14 13:59 ?3887次閱讀
    指數(shù)<b class='flag-5'>指針</b>的相關知識

    為什么使用指針?C++的“指針

    為什么使用指針?因為在操作大型數(shù)據(jù)和類時,指針可以通過內存地址直接訪問數(shù)據(jù),可避免在程序復制大量的代碼,因此指針的效率最高。一般來說,指針
    的頭像 發(fā)表于 10-04 10:33 ?5781次閱讀

    本地存儲與云存儲的區(qū)別介紹

    盡管云存儲已經成熟,但企業(yè)IT部門仍然需要權衡本地存儲和云存儲的風險和好處,特別是在涉及到組織最關鍵的數(shù)據(jù)時。在許多企業(yè)看來,云存儲是有利有
    的頭像 發(fā)表于 03-02 11:25 ?7484次閱讀

    本地對象存儲可以做什么用

    其實本地對象存儲不僅適用于輔助存儲,很多存儲管理人員仍主要從輔助存儲角度看待它
    發(fā)表于 03-22 17:08 ?6337次閱讀

    C語言固件中指針的使用方法

    有兩個與指針關聯(lián)的值。第一個是存儲指針本身存儲地址,第二個是存儲在該
    的頭像 發(fā)表于 09-26 11:38 ?2061次閱讀
    C語言固件中<b class='flag-5'>指針</b>的使用方法

    一文知道32位指針內部區(qū)域尋址

    32位指針用于I、Q、M、L數(shù)據(jù)塊等存儲的位、字節(jié)、字、雙字的尋址,32指針尋址,指針需要使用一個雙字的
    的頭像 發(fā)表于 11-20 17:33 ?4603次閱讀

    二級指針和多級指針的定義形式

    指針變量作為一個變量也有自己的存儲地址,而指向指針變量的存儲地址就被稱為指針指針,即二級
    的頭像 發(fā)表于 10-18 16:38 ?2830次閱讀

    如何使用函數(shù)指針?

    在程序定義一個函數(shù),則編譯時系統(tǒng)就會為這段代碼分配一段存儲空間,這段存儲空間的首地址稱為函數(shù)的地址,且函數(shù)名代表的就是這個地址。既然是地址就可以使用一個指針變量來
    的頭像 發(fā)表于 03-30 15:09 ?1416次閱讀

    指針是什么

    ,口語說的指針通常指的是指針變量。 1.2 內存 內存是電腦上特別重要的存儲器,計算機中程序的運行都是在內存中進行的。所以為了有效的使用內存,就把內存劃分成一個個小的內存單元,每個內
    的頭像 發(fā)表于 11-24 15:50 ?3453次閱讀
    <b class='flag-5'>指針</b>是什么

    基于RTOS的應用進程的典型線程

    RTOS的關鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價值在于它的響應速度或可預測性,而不是它在給定時間段內可以執(zhí)行的工作量。
    發(fā)表于 03-05 09:32 ?1559次閱讀
    基于<b class='flag-5'>RTOS</b>的應用進程<b class='flag-5'>中</b>的典型線程