1 AUTOSAR OS与OSEK OS

AUTOSAR的总称为AUTmotive Open System ARchitecture,了解AUTOSAR的小伙伴都知道,AUTOSAR有两个架构,即CP(Classic Platform)和AP(Adaptive Platform)。CP适用于MCU和RTOS控制平台中,通常使用C语言进行开发,而AP适用于POSIX-Based OS(如Linux),通常使用C++进行开发。本文中论述的AUTOSAR是指基于CP(Classic Platform)的架构。

在《AUTOSAR_SWS_OS.pdf》文档中层明确提到:This document uses the industry standard [15] (ISO 17356-3) as the basis for the AUTOSAR OS. The reader should be familiar with this standard before reading this document,那么,就会有小伙伴问到“ISO 17356-3”是什么?其实ISO 17356是国际标准化组织对OSEK标准文档的编号定义,而“ISO 17356-3”则是指文档《ISO17356_Part3_OSEK-VDX Operating System (OS).pdf》,是OSEK标准对OS说明定义的文档。在《AUTOSAR_SWS_OS.pdf》的“7.1.1”章节中提到the core functionality of the AUTOSAR OS shall be based upon the OSEK OS,因此AUTOSAR OS和OSEK OS的关系则不言而喻了,前者是以后者为进出进行了扩展,对于OSEK OS的学习有助于理解和使用AUTOSAR OS。

然而,了解情况的小伙伴会发现,无论是AUTOSAR OS,还是OSEK OS,可供学习的资料太少了,而且资源相对来说比较封闭,尤其是AUTOSAR OS,可能所工作的公司都不会考虑购买,因此有兴趣学习的小伙伴考虑从OSEK OS下手学习,在网上可以找到openOSEK和FreeOSEK,实际能获取到多少有助于学习的信息需要小伙伴们各自挖掘。

在这里推荐一个遵循OSEK标准的开源OS——Erika Enterprise。当然,这也是一条坎坷的道路,因为你会发现Erika Enterprise的资料也太少了吧!是的,你的判断没错,就是这么少!不管你是否惊奇,总之你肯定会头疼。面对Erika Enterprise,你会多次发自灵魂地拷问自己:我是应该放弃,还是接着学习?于是乎,告诉自己,别纠结了,至少还有官方文档和Wiki可伴我修行。

当然,事实是入门真的比较难,一旦理解OSEK OS的架构设计和组成之后,使用上总是会变得得心应手的,因为你不可能永远都达不到筑基期吧?

2 AUTOSAR OS简介

两种Task:
Basic Task:A Task which can not block by itself. This means that it can not wait for (OS) event(s).
Extended Task: A Task which can block by itself and wait for (OS) event(s).
说白了就是Basic Task不能被阻塞,而Extended Task可以被阻塞。有关这部分的说明在OSEK OS的文档中描述更详细,同时了解了OSEK OS的BCC1、BCC2、ECC1和ECC2四种类型之后会对这部分的理解更为深刻。

三种调度模式:
非抢占模式:Task按照就绪态顺序执行,直到主动让出CPU;
抢占模式:正在运行的低优先级的Task可能会被就绪态的高优先级的Task打断,进入到就绪态等待获取CPU后继续运行;
混合抢占模式:取决于当前运行的Task是否允许被抢占,如果允许被强占,则按照抢占模式调度;如果不允许被强占,则按照非抢占模式调度。

OS Object:
OS Object属于一个OS应用,包括:Task, ISR, Alarm, Event, Schedule Table, Resource, Trusted Function, Counter, Applicaton-specific hook。

OSEK OS是一个时间驱动型的OS,因此AUTOSAR OS也是,下图有助于理解这一奥义。
AUTOSAR学习笔记之OS

未完待续。。。

相关文章:

  • 2021-11-11
  • 2021-11-30
  • 2021-08-14
  • 2021-08-22
  • 2021-07-31
  • 2021-08-08
  • 2021-09-13
  • 2021-10-31
猜你喜欢
  • 2022-12-23
  • 2021-07-14
  • 2021-06-22
  • 2021-12-01
  • 2021-09-21
  • 2021-11-02
  • 2021-06-18
相关资源
相似解决方案