基于尚硅谷FreeRTOS視頻筆記——6—滴答時鐘—上下文切換

FreeRTOS滴答

FreeRTOS需要有一個時鐘參照,并且這個時鐘不會被輕易打斷,所以最好選擇systick

為什么需要時間參照

就是在高優先級任務進入阻塞態后,也可以理解為進入delay()函數后,需要有一個時間參照,就是需要計時,看是否delay函數結束,這就是為什么需要systick。

上下文切換

上下文就是代碼的執行狀態(就是這段代碼有沒有執行過)

還有一些變量數據,比如a=1;這種變量。

任務的切換

當任務A需要切換時,就需要此刻保存任務A的上下文,就是數據,執行到哪一行等

那么,怎樣進行保存任務的這些數據呢?

我們都知道,任務都是在CPU中運行,而CPU中有許多寄存器,而在任務A執行的情況中,CPU中所有的值都為任務A的,

而每個任務都有一個屬于自己的任務棧。

所以,任務A在切換的途中,就會將自己所有在CPU中的數據都拷貝到任務棧中。

任務切換時,CPU中只保存任務的指針,而數據都拷貝在任務對應的棧中。

當任務被恢復時,CPU直接利用指針來查找相應的數據棧

后將數據恢復到CPU中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77450.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用最新threejs復刻經典貪吃蛇游戲的3D版,附完整源碼

基類Entity 建立基類Entity,實現投影能力、動畫入場效果(從小變大的彈性動畫)、計算自己在地圖格位置的方法。 // 導入gsap動畫庫(用于創建補間動畫) import gsap from gsap// 定義Entity基類 export default class …

Redis——網絡模型之IO講解

目錄 前言 1.用戶空間和內核空間 1.2用戶空間和內核空間的切換 1.3切換過程 2.阻塞IO 3.非阻塞IO 4.IO多路復用 4.1.IO多路復用過程 4.2.IO多路復用監聽方式 4.3.IO多路復用-select 4.4.IO多路復用-poll 4.5.IO多路復用-epoll 4.6.select poll epoll總結 4.7.IO多…

Jenkins 多分支流水線: 如何創建用于 Jenkins 狀態檢查的 GitHub 應用

使用 Jenkins 多分支流水線時,您可以將狀態檢查與 GitHub 拉取請求集成。 以下是狀態檢查的示例 要實現這些類型的狀態檢查,您需要創建一個與 Jenkins 主實例集成的 GitHub 應用。 在本博客中,我們將介紹如何創建一個 GitHub 應用&#xff…

大模型如何突破“知識盲區”?一場靜悄悄的技術革命正在發生

大模型如何突破“知識盲區”?一場靜悄悄的技術革命正在發生 凌晨三點,程序員李然盯著屏幕上的報錯信息苦笑。他正在調試的智能客服系統,又一次把"北京今日體感溫度"回答成了"建議穿羽絨服"。這不是代碼錯誤,…

【SQL Server】數據探查工具1.0研發可行性方案

👉 點擊關注不迷路 👉 點擊關注不迷路 👉 點擊關注不迷路 想搶先解鎖數據自由的寶子,速速戳我!評論區蹲一波 “蹲蹲”,揪人嘮嘮你的超實用需求! 【SQL Server】數據探查工具1.0研發可行性方案…

Qt GUI 庫總結

Qt GUI 庫總結 Qt GUI 庫(QtGui)是 Qt 框架中負責圖形用戶界面(GUI)開發的核心模塊。本文將一步步詳解 QtGui,從基礎入門到高級應用,幫助你全面掌握其功能。以下內容包括環境配置、基本功能、核心特性及進…

如何在米爾-STM32MP257開發板上部署環境監測系統

本文將介紹基于米爾電子MYD-LD25X開發板(米爾基于STM35MP257開發板)的環境監測系統方案測試。 摘自優秀創作者-lugl4313820 一、前言 環境監測是當前很多場景需要的項目,剛好我正在論壇參與的一個項目:Thingy:91X 蜂窩物聯網原型…

網絡互連與互聯網3

1.SMTP簡單郵件傳輸協議,用于發送電子郵件,默認情況下是明文傳輸,沒有加密機制。 SSL是一種安全協議,對電子郵件進行加密傳輸。 POP3主要用于接收電子郵件 IMAP用于接收電子郵件 2.采用存儲-轉發方式處理信號的設備是交換機 …

DICOM通訊(ACSE->DIMSE->Worklist)

DICOM 通訊協議中的 ACSE → DIMSE → Worklist 這條通訊鏈路。DICOM 通訊棧本身是一個多層的協議結構,就像 OSI 模型一樣,逐層封裝功能。 一、DICOM 通訊協議棧總體架構 DICOM 通訊使用 TCP/IP 建立連接,其上面封裝了多個協議層次&#xf…

優化自旋鎖的實現

在《C11實現一個自旋鎖》介紹了分別使用TAS和CAS算法實現自旋鎖的方案,以及它們的優缺點。TAS算法雖然實現簡單,但是因為每次自旋時都要導致一場內存總線流量風暴,對全局系統影響很大,一般都要對它進行優化,以降低對全…

Excel 中讓表格內容自適應列寬和行高

Excel 中讓表格內容自適應列寬和行高 目錄 Excel 中讓表格內容自適應列寬和行高自適應列寬自適應行高在Excel中讓表格內容自適應列寬和行高,可參考以下操作: 自適應列寬 方法一:手動調整 選中需要調整列寬的列(如果是整個表格,可點擊表格左上角行號和列號交叉處的三角形全…

JWT令牌:實現安全會話跟蹤與登錄認證的利器

摘要:本文深入探討了JWT令牌在實現會話跟蹤和登錄認證方面的應用,詳細介紹了JWT令牌的概念、組成、生成與校驗方法,以及在實際案例中如何通過JWT令牌進行會話跟蹤和登錄認證的具體實現步驟,為系統的安全認證機制提供了全面且深入的…

Mybtis和Mybatis-Plus區別

MyBatis 和 MyBatis-Plus 是 Java 中常用的持久層框架,MyBatis-Plus 是在 MyBatis 基礎上增強的工具包,讓開發更便捷、高效。下面是兩者主要的區別: ? 核心區別總結: 特性MyBatisMyBatis-Plus配置復雜度需要手寫大量 XML 或注解…

JavaScript 性能優化實戰

一、代碼執行效率優化 1. 減少全局變量的使用 全局變量在 JavaScript 中會掛載在全局對象(瀏覽器環境下是window,Node.js 環境下是global)上,頻繁訪問全局變量會增加作用域鏈的查找時間。 // 反例:使用全局變量 var globalVar = example; function someFunction() {con…

學習筆記十六——Rust Monad從頭學

🧠 零基礎也能懂的 Rust Monad:逐步拆解 三大定律通俗講解 實戰技巧 📣 第一部分:Monad 是什么? Monad 是一種“包值 鏈操作 保持結構”的代碼模式,用來處理帶上下文的值,并方便連續處理。 …

PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽

PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽 錯誤提示:ORA-12541: TNS: 無監聽程序 的解決辦法, 現象:PL/SQL登錄慢,程序連接Oracle 提示無法連接或無監聽 監聽已經正常開起,但還是PL/SQL登錄慢或…

Windows10,11賬戶管理,修改密碼,創建帳戶...

在這里,我們使用微軟操作系統的一款工具:netplwiz 它可以非常便捷的管理用戶賬戶. 一:修改密碼(無需現在密碼) 01修改注冊表 運行命令:regedit 在地址欄輸入: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Passwor…

電腦 BIOS 操作指南(Computer BIOS Operation Guide)

電腦 BIOS 操作指南 電腦的BIOS界面(應為“BIOS”)是一個固件界面,允許用戶配置電腦的硬件設置。 進入BIOS后,你可以進行多種設置,具體包括: 1.啟動配置 啟動順序:設置從哪個設備啟動&#x…

iOS 冷啟動時間監控:啟動起點有哪些選擇?

?? iOS 冷啟動時間監控:啟動起點有哪些選擇? 作者:侯仕奇 來源:sqi.io 在監控 iOS 冷啟動性能時,一個關鍵問題是:如何精確記錄 App 冷啟動的開始時間? 本文將對不同的“冷啟動起點”監控方式…

onlyoffice關閉JWT后依然報錯如何解決?

onlyoffice關閉JWT后依然報錯如何解決? 一、部署方式 我是以docker方式部署的,直接通過環境變量禁用了JWT,命令如下: docker run -d \--name onlyoffice-no-jwt \--restartalways \-p 8069:80 \-e JWT_ENABLEDfalse \onlyoffic…