0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32的任务调度方式和步骤

汽车玩家 来源:简书 作者:生若夏花_1ad0 2021-08-10 23:29 次阅读

STM32的任务调度可以有两种方式

  • 2)执行一个系统调用

任务调度的步骤总结为如下:

  • 保存程序的上下文即当前任务的寄存器,保存存储寄存器的任务堆栈的地址。

  • 根据下一个任务的任务堆栈地址依次弹出下一个任务的16个寄存器。

堆栈中的寄存器保存顺序如下,

XPSR

SP(代表MSP或PSP,在任务调度完成后,根据PSP的值定位了是哪个任务)

LR(存储函数的返回)

R12

R3

R2

R1

R0

R11

R10

R9

R8

R7

R6

R5

R4

文章整合自:简书生若夏花_1ad0

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • 定时器
    +关注

    关注

    23

    文章

    3237

    浏览量

    114442
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62416
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发接口资源调度:【@ohos.workScheduler (延迟任务调度)】

    开发者在开发应用时,通过调用延迟任务注册接口,注册对实时性要求不高的延迟任务,该任务默认由系统安排,在系统空闲时根据性能、功耗、热等情况进行调度执行。
    的头像 发表于 06-04 10:01 854次阅读
    鸿蒙开发接口资源<b class='flag-5'>调度</b>:【@ohos.workScheduler (延迟<b class='flag-5'>任务</b><b class='flag-5'>调度</b>)】

    STM32F303 ucos ii任务调度都用什么?

    现在303上用ucos ii跑了两个任务,一个是显示LCD,一个是读取FRAM。现在发现,若读FRAM的优先级高,有时LCD会花屏一闪,若显示优先级高,有时FRAM读出的数会不对。 目前是做个信号量做互锁,但这样跟不用系统时差不多了,同时只有一个任务在跑。 请问前辈们有什
    发表于 05-14 06:16

    请问CMSIS-RTOS RTX的任务调度锁在哪里?

    请问一下,CMSIS-RTOS RTX的任务调度锁在哪里?谢谢!
    发表于 05-13 08:28

    浅析FreeRTOS任务调度器的三种调度算法和应用

    FreeRTOS在MCU领域应用非常广泛,今天就给大家讲解一下FreeRTOS调度器中的三种调度算法,以及在瑞萨RZ/T2L MPU中的应用。
    的头像 发表于 05-10 14:02 6945次阅读
    浅析FreeRTOS<b class='flag-5'>任务</b><b class='flag-5'>调度</b>器的三种<b class='flag-5'>调度</b>算法和应用

    STM32F103 FreeRTOS任务调度异常的原因?

    * pvParameters) { while(1) { Delay_Ms(500);//延时函数(无任务调度) LED_TOGGLE;//LED闪烁(取反) } } 方式2:任务
    发表于 04-16 06:24

    FreeRTOS任务调度器的三种调度算法讲解(下)

    配置如下时,调度算法就会变成不带时间片的抢占式调度
    的头像 发表于 03-21 13:46 2455次阅读
    FreeRTOS<b class='flag-5'>任务</b><b class='flag-5'>调度</b>器的三种<b class='flag-5'>调度</b>算法讲解(下)

    FreeRTOS调度器中的三种调度算法实践(上)

    在优先级高于运行态任务任务进入就绪态时,调度器立即让这个高优先级的任务“抢占”运行态任务。被抢占意味着
    发表于 03-21 13:45 441次阅读
    FreeRTOS<b class='flag-5'>调度</b>器中的三种<b class='flag-5'>调度</b>算法实践(上)

    鸿蒙原生应用开发-ArkTS语言基础类库多线程CPU密集型任务TaskPool

    密集型任务可以提高CPU利用率,提升应用程序响应速度。 当进行一系列同步任务时,推荐使用Worker;而进行大量或调度点较为分散的独立任务时,不方便使用8个Worker去做负载管理,推
    发表于 03-19 14:14

    鸿蒙开发【分布式任务调度】解析

    1.FA 迁移可以打通设备间的壁垒,有助于不同能力的设备进行互助。前文以一个简单的例子介绍如何通过分布式任务调度提供的能力,实现 FA 跨设备的迁移(包括 FA 启动及状态数据的同步)。 2.FA
    的头像 发表于 01-29 18:03 630次阅读

    鸿蒙OS 分布式任务调度

    鸿蒙OS 分布式任务调度概述 在 HarmonyO S中,分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力,为应用定义统一的能力基线、
    的头像 发表于 01-29 16:50 458次阅读

    鸿蒙原生应用/元服务开发-延迟任务开发实现(二)

    : workScheduler.WorkInfo): void 延迟调度任务开始的回调 onWorkStop(work: workScheduler.WorkInfo): void 延迟调度
    发表于 01-17 17:53

    鸿蒙原生应用/元服务开发-延迟任务说明(一)

    添加到执行队列,系统会根据内存、功耗、设备温度、用户使用习惯等统一调度拉起应用。 二、运行原理 图1 延迟任务实现原理 应用调用延迟任务接口添加、删除、查询延迟任务,延迟
    发表于 01-16 14:57

    任务调度系统设计的核心逻辑

    Redis的读写性能极好,分布式锁也比Quartz数据库行级锁更轻量级。当然Redis锁也可以替换成Zookeeper锁,也是同样的机制。 在小型项目中,使用:定时任务框架(Quartz/Spring Schedule)和 分布式锁(redis/zookeeper)有不错的效果。
    的头像 发表于 01-02 15:09 799次阅读
    <b class='flag-5'>任务</b><b class='flag-5'>调度</b>系统设计的核心逻辑

    电机基础知识:电机类型、软启动方式、选型步骤

    电机类型、软启动方式,选型步骤,损坏原因方式处理方法,优劣电机区别.....这一个个问题都是电机幸福指数的重要反映。
    发表于 12-01 16:09 1153次阅读
    电机基础知识:电机类型、软启动<b class='flag-5'>方式</b>、选型<b class='flag-5'>步骤</b>

    FreeRTOS中的任务管理

    任务是 FreeRTOS 中最基本的调度单元,它是一段可执行的代码,可以独立运行。FreeRTOS 中的任务是基于优先级的抢占式调度,优先级高的任务
    的头像 发表于 11-27 17:03 942次阅读