日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

TI-RTOS基礎(chǔ)知識(shí)

?TI-RTOS可從占用空間最小的實(shí)時(shí)多任務(wù)內(nèi)核-TI-RTOS內(nèi)核(以前稱為SYS/BIOS)-擴(kuò)展到完整的實(shí)時(shí)操作系統(tǒng)解決方案,包括協(xié)議棧、多核通信、設(shè)備驅(qū)動(dòng)進(jìn)程和電源管理。

TI-RTOS產(chǎn)品

TI-RTOS有三種方式可用:

  • 處理器SDK:對(duì)于Keystone和Sitara設(shè)備,TI-RTOS內(nèi)核包含在處理器SDK中。
  • SYS/BIOS產(chǎn)品:內(nèi)核產(chǎn)品作為獨(dú)立產(chǎn)品提供。建議將此產(chǎn)品用于C2000設(shè)備,或希望TI-RTOS版本比處理器SDK中提供的版本更新的客戶。
  • TI-RTOS產(chǎn)品:這些產(chǎn)品包含用于MCU設(shè)備的TI-RTOS和RTOS感知驅(qū)動(dòng)進(jìn)程(例如UART、I2C等)。

TI-RTOS內(nèi)核

TI-RTOS的核心是內(nèi)核。

TI-RTOS內(nèi)核代碼位于CC13xx和CC26xx設(shè)備的ROM中。這允許應(yīng)用進(jìn)程使用更多的閃存。請(qǐng)注意:內(nèi)核仍然需要少量的閃存和/或RAM內(nèi)存。

調(diào)度

內(nèi)核的主要功能是調(diào)度進(jìn)程。調(diào)度進(jìn)程負(fù)責(zé)確保最高優(yōu)先級(jí)的線程正在運(yùn)行。TI-RTOS有四種不同類型的線程。

  •  硬件中斷(Hwi):硬件運(yùn)行至完成。他們不會(huì)阻止任何東西。它們可能會(huì)被優(yōu)先級(jí)較高的Hwi搶占。所有Hwi共享同一堆棧(系統(tǒng)堆棧)。Hwi可以用C語(yǔ)言寫成。它們由TI-RTOS調(diào)度進(jìn)程管理,但有一個(gè)例外:零延遲中斷。應(yīng)用進(jìn)程可以將任何中斷指定為零延遲中斷。這意味著TI-RTOS調(diào)度進(jìn)程不會(huì)與該中斷進(jìn)行交互。我們稱之為零延遲中斷,因?yàn)門I-RTOS內(nèi)核為這些中斷的執(zhí)行增加了零延遲。零延遲中斷的缺點(diǎn)是它們無(wú)法調(diào)用內(nèi)核調(diào)度進(jìn)程API(例如Semephore_post()等)。
  • 軟件中斷(Swi):Swi線程類似于Hwi,只是它是軟件啟動(dòng)的,而不是硬件。它還會(huì)一直運(yùn)行到完成。它與Hwi線程共享相同的系統(tǒng)堆棧。由于Swi的運(yùn)行優(yōu)先級(jí)低于Hwi,因此它們對(duì)于執(zhí)行延遲Hwi工作以最大程度地減少中斷延遲非常有用。
  • Tasks:任務(wù)是最常見(jiàn)的操作系統(tǒng)線程。每個(gè)任務(wù)都有自己的堆棧(在其中維護(hù)其狀態(tài))。由于它有自己的堆棧,因此任務(wù)可以阻塞。沒(méi)有允許的最大任務(wù)數(shù)(系統(tǒng)內(nèi)存允許)。

     Idle: Idle是一項(xiàng)特殊任務(wù)。它以最低優(yōu)先級(jí)運(yùn)行(0是最低優(yōu)先級(jí),1是次低優(yōu)先級(jí),...,(Task_numPriorites-1)是最高優(yōu)先級(jí))。 Idle任務(wù)執(zhí)行后臺(tái)任務(wù),如系統(tǒng)堆棧檢查(如果啟用)、CPU負(fù)載確定(如果啟用)等。它還執(zhí)行應(yīng)用進(jìn)程插入的功能。當(dāng) Idle線程運(yùn)行時(shí),低功耗設(shè)備可以進(jìn)入低功耗模式。

線程通信

TI-RTOS包含多種線程通信機(jī)制:

  • 信號(hào)量:用于控制對(duì)公共資源的訪問(wèn)的對(duì)象。它們可用于任務(wù)同步和互斥。
  • 郵箱:信息傳遞模塊
  • 隊(duì)列:雙鏈列表(雖然沒(méi)有同步)
  • 入口:用于保護(hù)對(duì)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的并發(fā)訪問(wèn)。門是一個(gè)重入互斥體。
  • 事件:允許通過(guò)多個(gè)事件進(jìn)行同步的模塊。

計(jì)時(shí)服務(wù)

  • 計(jì)時(shí)器:允許管理硬件計(jì)時(shí)器的模塊。
  • 時(shí)鐘:默認(rèn)情況下,TI-RTOS使用計(jì)時(shí)器來(lái)驅(qū)動(dòng)計(jì)時(shí)服務(wù)(例如Task_sleep()等)。應(yīng)用進(jìn)程可以將函數(shù)插入時(shí)鐘模塊,該模塊將按期請(qǐng)求的速率調(diào)用。插入式時(shí)鐘功能可以是周期性的,也可以是單次的。
  • 秒:設(shè)備RTC計(jì)時(shí)器的統(tǒng)一前端。

內(nèi)存管理器

堆棧 描述 使用原因 HeapMem 可變大小分配 非常靈活 HeapBuf 固定大小分配 快速且確定 HeapMultiBuf 多個(gè)固定大小分配 快速且確定 HeapMin 可變大小,僅增長(zhǎng) 快速且確定(但不能清空) HeapTrack 堆疊診斷堆棧 幫助查找內(nèi)存泄漏、損壞等

堆棧位于Memory_alloc()和Memory_free()API的下面。默認(rèn)情況下,TI-RTOS會(huì)創(chuàng)建一個(gè)系統(tǒng)(或默認(rèn))堆棧。當(dāng)在Memory_alloc()和Memory_free()中傳入IHeapHandle的NULL時(shí),將使用此堆棧。系統(tǒng)堆棧也用于malloc()和free()函數(shù)(內(nèi)核取代了RTSmalloc()和free()函數(shù))。默認(rèn)情況下,系統(tǒng)堆棧是一個(gè)HeapMem實(shí)例,其大小由鏈接器命令文檔中的設(shè)置控制。

一個(gè)應(yīng)用進(jìn)程在應(yīng)用進(jìn)程中可以有多個(gè)堆棧。一種常見(jiàn)的用法是讓系統(tǒng)堆棧成為HeapMem,然后創(chuàng)建一個(gè)HeapBuf實(shí)例來(lái)管理固定塊,這些固定塊可以快速分配和釋放,而不會(huì)出現(xiàn)碎片(或者更準(zhǔn)確地說(shuō),沒(méi)有外部碎片)。我們通??吹较到y(tǒng)堆棧保留為HeapMem實(shí)例,因?yàn)榭赡芎茈y知道應(yīng)用進(jìn)程中的所有分配(以及分配的大?。┌l(fā)生的位置。

TI-RTOS配置和示例

內(nèi)核是基于TI-RTOS內(nèi)核配置文檔(也稱為.cfg文檔)中的設(shè)置構(gòu)建的。這個(gè)文檔基本上是一個(gè)JavaScript文檔,可以作為文本文檔或圖形編輯(圖形方式僅在CCS中可用)。作為應(yīng)用進(jìn)程構(gòu)建的一部分,.cfg文檔將生成內(nèi)核對(duì)象和庫(kù)。

應(yīng)用進(jìn)程可以通過(guò)兩種不同的方式將TI-RTOS內(nèi)核配置文檔包含在SimpleLink SDK中:

  • 應(yīng)用進(jìn)程項(xiàng)目包括.cfg文檔
  • 應(yīng)用進(jìn)程項(xiàng)目(例如TI驅(qū)動(dòng)進(jìn)程示例)指向TI-RTOS內(nèi)核配置項(xiàng)目

單獨(dú)的內(nèi)核配置項(xiàng)目方法效果更好。

內(nèi)核項(xiàng)目的指向:Project Properties-Build-Dependencies

調(diào)試功能和工具

Runtime Object View

可以獲得任務(wù)堆棧峰值、當(dāng)前正在運(yùn)行的線程等信息。

打開(kāi)ROV:Tools-Runtime Object View

BIOS-Scan for errors是確定RTOS是否處于錯(cuò)誤狀態(tài)的快速簡(jiǎn)便方法(例如,堆棧損壞、由于應(yīng)用程序指針錯(cuò)誤或緩沖區(qū)溢出而導(dǎo)致的數(shù)據(jù)損壞等)。

System Analyzer

可直觀地查看關(guān)鍵項(xiàng)目,例如執(zhí)行圖、CPU負(fù)載、代碼段的平均/最大/最小執(zhí)行時(shí)間等。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 3
關(guān)注 11
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧