任务调度管理-任务切换机制

本文介绍了在ARM Cortex-A9上移植AUTOSAR过程中,任务调度的核心内容——任务切换机制。任务切换分为四种类型:OSTaskRun、OSTaskSaveRun、OSTaskLoadRun和OSTaskSaveLoadRun,分别对应不同场景下的上下文保存和恢复。详细阐述了每种切换方法的应用情况和执行流程。
摘要由CSDN通过智能技术生成

在ARM Cortex-A9上移植AUTOSAR。

任务切换是移植工作的核心内容,在理解OSEK任务调度机制的基础上,分析目标平台中需要保存的上下文内容和任务返回方法。任务调度包含三个部分:1.保存上文;2.选择下一个执行的任务(任务初始化);3.恢复下文。根据是否保存上文和恢复下文,任务切换分为四种不同的调度方法;

调度方式 保存旧任务的上下文 恢复新任务的上下文
OSTaskRun
OSTaskSaveRun
OSTaskLoadRun
OSTaskSaveLoadRun
  1. OSTaskRun:启动一个新任务,并不保存旧任务的上下文。以下情况会调用:
    系统启动后执行的第一个任务,新启动的任务也不需要装载任务的上下文,因为是新任务,上下文从未被保存过(OSStartFirstTask);
    当前任务自结束,调度下一个新任务(TerminateTask)。
    如下图,从OsTask_3切换到OsTask_1,OsTask_3执行结束,且OsTask_1是新任务不需要恢复上下文,任务切换分两步:
    新任务初始化:切换CPU运行模式,把新任务的堆栈指针指向OsTask_1函数的起始位置,R0~R12/R14寄存器初始化;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值