一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

RTOS中的本地存儲指針使用

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

掃碼添加小助手

加入工程師交流群

本地存儲指針是RTOS中的一個重要特性,增強了任務管理和數(shù)據(jù)處理能力。在RTOS上下文中,本地存儲是指存儲在本地的特定任務或?qū)ο蟮臄?shù)據(jù)。通常與任務本地存儲(Task Local Storage,TLS)有關(guān),其中數(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中的本地存儲指針

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

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

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

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

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

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

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

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184321
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317611
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64891
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    71197
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    851

    瀏覽量

    121180

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

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RTOS信號量、隊列通信原理

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

    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)絡(luò)存儲

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

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

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

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

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

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

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

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

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

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

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

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

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

    一文知道32位指針內(nèi)部區(qū)域?qū)ぶ?/a>

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

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

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

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

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

    指針是什么

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

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

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