【OS】AUTOSAR OS Resource实现原理

admin 2024年6月17日11:51:27评论3 views字数 1179阅读3分55秒阅读模式

前言

<<符合AUTOSAR标准的RTA-OS --Resources详解>>一文中我们介绍了AUTOSAR Resource的概念及其配置,但是站在开发者的角度来讲,Os Resource这个概念还是很抽象,Resource到底是个在代码中具体是个什么了?本文就来就详细介绍Os Resource的具体实现原理,希望能理解以下问题:

问题1Os Resource在代码中的具体实现是什么?

问题2:一个Task获得Os Resource后,其他Task还能被激活进入到Running状态么?

问题3:一个Task获得Os Resource后,ECU还能产生中断么?

【OS】AUTOSAR OS Resource实现原理

环境

AUTOSAR工具链:Vector

Hardware Platform: Infineon Tricore

Build Tools: GHS

注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!

正文

1.Resource主要结论回顾

1.1 Resource使用场景

OS items

适用场景

Resource

实现核内临界区数据的一致性保护

Spinlock

实现核间(多核)临界区数据的一致性保护

1.2 Resource实现临界区保护原理

Resource分布场景

临界区保护实现原理

Resource只被Tasks引用

获取ResourceTask的优先级被提高到最高优先级(优先级天花板规则),其他Task无法抢占。在释放ResourceTask回到原来的优先级,Ready状态下被阻塞的其他高优先级Task可以再次完成抢占。

Resource只被ISRs引用

获取ResourceISR的优先级会被提高到所有引用同一个ResourceISR中的最高优先级,其他引用同一个ResourceISR是无法产生的。释放Resource后回到原来的优先级,其他引用同一个ResourceISR可以产生。

Resource既被Task引用又被ISR引用

Case 1: Task先获取到Resource.

获取到ResourceTask会将当前Task提高到最高优先级,同时将中断优先级提高到引用该ResourceISR中最高优先级(引用该ResourceISR无法产生。释放ResourceTask优先级核ISR优先级都恢复。

Case 2: ISR先获取到Resource.

因为Task无法打断(抢占)ISR.所以只要将获取到ResourceISR的同时将中断优先级提高到引用该ResourceISR中最高优先级。释放ResourceISR优先级恢复。

问题:在中断产生和结束的时候中断优先级会被硬件自动设置和恢复(恢复到默认最低优先级),那么在Task中获取Resource的时候(没有产生中断),如何设置中断优先级来防止中断产生?

原文始发于微信公众号(汽车电子嵌入式):【OS】AUTOSAR OS Resource实现原理

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月17日11:51:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【OS】AUTOSAR OS Resource实现原理https://cn-sec.com/archives/2854663.html

发表评论

匿名网友 填写信息