RTA_OS内核源码解析 3.6-资源锁解析

RTA_OS内核源码解析 3.6-资源锁解析_第1张图片

RTA_OS内核源码解析 3.6-资源锁解析

文章目录

  • RTA_OS内核源码解析 3.6-资源锁解析
    • 一、资源锁简介
      • 1.1 配置类型说明
    • 二、获取资源锁
      • 2.1 中断管理
      • 2.2 异常条件判断
        • 2.2.1 资源有效性判断
      • 2.3 区分中断应用资源锁场景
        • 2.3.1 中断应用资源锁
          • 2.3.1.1 异常条件判断
          • 2.3.1.2 资源锁计数处理
          • 2.3.1.3 优先级上限协议
          • 2.3.1.4 设置中断优先级掩码
        • 2.3.2 仅Task之间应用资源锁
          • 2.3.2.1 异常条件判断
          • 2.3.2.2 资源锁计数处理
          • 2.3.2.3 优先级上限协议
          • 2.3.2.4 设置中断优先级掩码
    • 三、释放资源锁
      • 3.1 中断管理
      • 3.2 异常条件判断
      • 3.3 区分中断释放资源锁场景
        • 3.3.1 中断应用场景下释放资源锁
          • 3.3.1.1 异常条件判断
          • 3.3.1.2 资源锁计数处理
          • 3.3.1.3 优先级恢复处理
        • 3.3.2 仅Task应用场景下释放资源锁
          • 3.3.2.1 异常条件判断
          • 3.3.2.2 资源锁计数处理
          • 3.3.2.3 优先级恢复处理
      • 3.4 按需进行任务调度

一、资源锁简介

1.1 配置类型说明

RTA_OS将用户配置的以及系统自动生成的资源锁均配置在Os_const_resources[]这个结构体数组中,结构体类型为Os_ResourceType,定义如下:

typedef struct Os_ResourceType_s
{
    CONSTP2VAR(Os_ResourceDynType, OS_VAR, OS_CONST) dynamic;
    Os_tpmaskType tpmask;
    Os_imaskType imask;
    uint8 access;
} Os_ResourceType;

说明如下:

  1. dynamic:资源锁动态数据,主要用于记录资源锁获取次数以及保存当前的任务优先级掩码或者中断屏蔽掩码;
  2. tpmask:任务优先级掩码,根据资源锁应用配置在哪些任务的

你可能感兴趣的:(OS讲解,AutoSAR,OS,嵌入式硬件,RH850,c语言)