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

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

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

stm32的任務(wù)調(diào)度方式和步驟

汽車玩家 ? 來(lái)源:簡(jiǎn)書 ? 作者:生若夏花_1ad0 ? 2021-08-10 23:29 ? 次閱讀

STM32的任務(wù)調(diào)度可以有兩種方式

  • 2)執(zhí)行一個(gè)系統(tǒng)調(diào)用

任務(wù)調(diào)度的步驟總結(jié)為如下:

  • 保存程序的上下文即當(dāng)前任務(wù)的寄存器,保存存儲(chǔ)寄存器的任務(wù)堆棧的地址。

  • 根據(jù)下一個(gè)任務(wù)的任務(wù)堆棧地址依次彈出下一個(gè)任務(wù)的16個(gè)寄存器。

堆棧中的寄存器保存順序如下,

XPSR

SP(代表MSP或PSP,在任務(wù)調(diào)度完成后,根據(jù)PSP的值定位了是哪個(gè)任務(wù))

LR(存儲(chǔ)函數(shù)的返回)

R12

R3

R2

R1

R0

R11

R10

R9

R8

R7

R6

R5

R4

文章整合自:簡(jiǎn)書生若夏花_1ad0

編輯:ymf

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120451
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3250

    瀏覽量

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

    關(guān)注

    3

    文章

    4332

    瀏覽量

    62666
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Flexus X加速M(fèi)ySQL鏡像搭建XXL-JOB任務(wù)調(diào)度平臺(tái)

    平臺(tái),展示如何利用 Flexus X 的高性能特性提升任務(wù)調(diào)度的效率和穩(wěn)定性。通過(guò)詳細(xì)的步驟和配置,幫助大家可以快速掌握在 Flexus X 上部署和運(yùn)行 XXL-JOB 的方法,并將其應(yīng)用于實(shí)際項(xiàng)目中。
    的頭像 發(fā)表于 12-29 15:45 ?98次閱讀
    基于Flexus X加速M(fèi)ySQL鏡像搭建XXL-JOB<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>平臺(tái)

    鴻蒙開發(fā)接口資源調(diào)度:【@ohos.workScheduler (延遲任務(wù)調(diào)度)】

    開發(fā)者在開發(fā)應(yīng)用時(shí),通過(guò)調(diào)用延遲任務(wù)注冊(cè)接口,注冊(cè)對(duì)實(shí)時(shí)性要求不高的延遲任務(wù),該任務(wù)默認(rèn)由系統(tǒng)安排,在系統(tǒng)空閑時(shí)根據(jù)性能、功耗、熱等情況進(jìn)行調(diào)度執(zhí)行。
    的頭像 發(fā)表于 06-04 10:01 ?930次閱讀
    鴻蒙開發(fā)接口資源<b class='flag-5'>調(diào)度</b>:【@ohos.workScheduler (延遲<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>)】

    編寫一個(gè)任務(wù)調(diào)度程序,在上下文切換后遇到了一些問(wèn)題求解

    大家好, 我正在編寫一個(gè)任務(wù)調(diào)度程序,在上下文切換后遇到了一些問(wèn)題。 為下一個(gè)任務(wù)恢復(fù)上下文后: __builtin_tricore_mtcr_by_name(\"pcxi\"
    發(fā)表于 05-22 07:50

    STM32F303 ucos ii任務(wù)調(diào)度都用什么?

    現(xiàn)在303上用ucos ii跑了兩個(gè)任務(wù),一個(gè)是顯示LCD,一個(gè)是讀取FRAM?,F(xiàn)在發(fā)現(xiàn),若讀FRAM的優(yōu)先級(jí)高,有時(shí)LCD會(huì)花屏一閃,若顯示優(yōu)先級(jí)高,有時(shí)FRAM讀出的數(shù)會(huì)不對(duì)。 目前是做個(gè)信號(hào)量做互鎖,但這樣跟不用系統(tǒng)時(shí)差不多了,同時(shí)只有一個(gè)任務(wù)在跑。 請(qǐng)問(wèn)前輩們有什
    發(fā)表于 05-14 06:16

    請(qǐng)問(wèn)CMSIS-RTOS RTX的任務(wù)調(diào)度鎖在哪里?

    請(qǐng)問(wèn)一下,CMSIS-RTOS RTX的任務(wù)調(diào)度鎖在哪里?謝謝!
    發(fā)表于 05-13 08:28

    淺析FreeRTOS任務(wù)調(diào)度器的三種調(diào)度算法和應(yīng)用

    FreeRTOS在MCU領(lǐng)域應(yīng)用非常廣泛,今天就給大家講解一下FreeRTOS調(diào)度器中的三種調(diào)度算法,以及在瑞薩RZ/T2L MPU中的應(yīng)用。
    的頭像 發(fā)表于 05-10 14:02 ?7498次閱讀
    淺析FreeRTOS<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>器的三種<b class='flag-5'>調(diào)度</b>算法和應(yīng)用

    STM32F103 FreeRTOS任務(wù)調(diào)度異常的原因?

    * pvParameters) { while(1) { Delay_Ms(500);//延時(shí)函數(shù)(無(wú)任務(wù)調(diào)度) LED_TOGGLE;//LED閃爍(取反) } } 方式2:任務(wù)
    發(fā)表于 04-16 06:24

    HarmonyOS開發(fā)實(shí)例:【任務(wù)延時(shí)調(diào)度

    實(shí)現(xiàn)了設(shè)置后臺(tái)任務(wù)、下載更新包 、保存更新包、發(fā)送通知 、安裝更新包實(shí)現(xiàn)升級(jí)的功能。
    的頭像 發(fā)表于 04-15 09:26 ?912次閱讀
    HarmonyOS開發(fā)實(shí)例:【<b class='flag-5'>任務(wù)</b>延時(shí)<b class='flag-5'>調(diào)度</b>】

    FreeRTOS任務(wù)調(diào)度器的三種調(diào)度算法講解(下)

    配置如下時(shí),調(diào)度算法就會(huì)變成不帶時(shí)間片的搶占式調(diào)度
    的頭像 發(fā)表于 03-21 13:46 ?2882次閱讀
    FreeRTOS<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>器的三種<b class='flag-5'>調(diào)度</b>算法講解(下)

    FreeRTOS調(diào)度器中的三種調(diào)度算法實(shí)踐(上)

    在優(yōu)先級(jí)高于運(yùn)行態(tài)任務(wù)任務(wù)進(jìn)入就緒態(tài)時(shí),調(diào)度器立即讓這個(gè)高優(yōu)先級(jí)的任務(wù)“搶占”運(yùn)行態(tài)任務(wù)。被搶占意味著
    發(fā)表于 03-21 13:45 ?510次閱讀
    FreeRTOS<b class='flag-5'>調(diào)度</b>器中的三種<b class='flag-5'>調(diào)度</b>算法實(shí)踐(上)

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語(yǔ)言基礎(chǔ)類庫(kù)多線程CPU密集型任務(wù)TaskPool

    密集型任務(wù)可以提高CPU利用率,提升應(yīng)用程序響應(yīng)速度。 當(dāng)進(jìn)行一系列同步任務(wù)時(shí),推薦使用Worker;而進(jìn)行大量或調(diào)度點(diǎn)較為分散的獨(dú)立任務(wù)時(shí),不方便使用8個(gè)Worker去做負(fù)載管理,推
    發(fā)表于 03-19 14:14

    鴻蒙開發(fā)【分布式任務(wù)調(diào)度】解析

    1.FA 遷移可以打通設(shè)備間的壁壘,有助于不同能力的設(shè)備進(jìn)行互助。前文以一個(gè)簡(jiǎn)單的例子介紹如何通過(guò)分布式任務(wù)調(diào)度提供的能力,實(shí)現(xiàn) FA 跨設(shè)備的遷移(包括 FA 啟動(dòng)及狀態(tài)數(shù)據(jù)的同步)。 2.FA
    的頭像 發(fā)表于 01-29 18:03 ?705次閱讀

    鴻蒙OS 分布式任務(wù)調(diào)度

    鴻蒙OS 分布式任務(wù)調(diào)度概述 在 HarmonyO S中,分布式任務(wù)調(diào)度平臺(tái)對(duì)搭載 HarmonyOS 的多設(shè)備構(gòu)筑的“超級(jí)虛擬終端”提供統(tǒng)一的組件管理能力,為應(yīng)用定義統(tǒng)一的能力基線、
    的頭像 發(fā)表于 01-29 16:50 ?504次閱讀

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)開發(fā)實(shí)現(xiàn)(二)

    : workScheduler.WorkInfo): void 延遲調(diào)度任務(wù)開始的回調(diào) onWorkStop(work: workScheduler.WorkInfo): void 延遲調(diào)度
    發(fā)表于 01-17 17:53

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)說(shuō)明(一)

    添加到執(zhí)行隊(duì)列,系統(tǒng)會(huì)根據(jù)內(nèi)存、功耗、設(shè)備溫度、用戶使用習(xí)慣等統(tǒng)一調(diào)度拉起應(yīng)用。 二、運(yùn)行原理 圖1 延遲任務(wù)實(shí)現(xiàn)原理 應(yīng)用調(diào)用延遲任務(wù)接口添加、刪除、查詢延遲任務(wù),延遲
    發(fā)表于 01-16 14:57