AUTOSAR操作系统简介

  • 1、什么是操作系统
  • 2、Autosar的基本内容

还记得在上学期间,初次接触嵌入式的时候是一款51单片机,简单的点亮一个小灯,方法是在main()中的while(1)死循环中编写点灯的程序,通过设置延时达到闪烁的目的。但是当接触需要定时分配任务时,例如1ms、2ms、10ms等,这种方式就不能满足调度需求了,此时就需要引进一种专门的软件去管理,因此就需要这么一个叫操作系统(OS)的软件去管理这些调度。

操作系统是区分多核的,每个核实可以单独运行互不打扰,大大的提升了系统的快速且稳定的运行。每个Core包含多个Application,每个Application包含多个Object(Object:Task,Isr,Alarm,Counter,ScheduleTable)。

AUTOSAR操作系统简介

简单举个公司部门的例子,Core等同于部长,Application等同于组长,Object等同于员工,通过分层进行管理,达到部长不必事必躬亲,管理者协调工作即可,员工间进行沟通工作,可以快速的下达任务,快速应对完成任务。

2.1 Core

系统的总负责处理者,我们常听说手机或电脑4Core、8Core等,其实Core是直接指向代码运行的,芯片内核都是有指令获取单元,执行单元以及多种寄存器,通过以上的协调完成Core的独立执行。

2.2 Application

在Core上有多个Application。为什么会有Application的概念,原因是当单个Object出现问题时,不至于影响整个Core。单个Application出现问题,可以重启或关闭当前Application,做到了独立管理一部分Object单元。

2.3 Counter

Counter对系统来说就是系统的心脏,通过晶振的方式进行计数,得到的计数在进行时间的计算。每个Count都会与芯片定时器进行结合,然后进行中断,在中断时处理激活任务、激活事件和计算时间保护等。

2.4 Alarm

警报处理是根据Counter设置到时做一些动作,这些动作包含激活Task、激活Event、通知回调函数和设置软件Couter。

而警报器还区分绝对时间警报和相对时间警报。

绝对时间:设置具体时间,例如10点10分为警报时间,到时间则开始警报;

相对时间:设置一段时间,例如设置10分钟后警报,则到10分钟后开始警报。

同时警报器还支持自动启动,设置自动则到期直接警报。

2.5 Lrs

中断是我们经常使用的,中断分为2类中断和1类中断。

2类中断:归于Os调度管理的,中断的上下文管理,栈的管理都由Os管理;

1类中断:不归Os调度管理,且1类中断的优先级高于2类中断,1类中断总是可以打断2类中断的执行。

2.6. Task

任务分为Basic任务和Extend任务。

Basic task:任务不能停止,所以无法等待Event激活。

Extend task:任务可以停止,只激活一次,等待Event激活。

任务还区分为可抢断任务和不可抢断任务,不可抢断任务执行则不会被其他任务所打断,任务还区分为自动启动,自动启动任务启动一次后不会再次被激活。

2.7 Event

事件是与Extend Task结合实现的,只有在Extend Task中Event才会实现。Event属于等待某个动作,满足这个动作才会激活Event。

Event也区分为Cycle Event和Wait event。

Cycle Event是通过Alarm周期进行激活Event实现调度;

Wait Event是通过SetEvent来实现激活的,每次调用SetEvent激活一次Event。

2.8 ScheduleTable

调度表的原理为时间到期后开始执行其内部注册的Task或Event。总时间到期开始调用此调度表,通过偏移时间,调度具体的Task或Event,调度表可自行进行时间矫正,同时也区分绝对时间和相对时间。

2.9 SpinLock

此种锁定数据区的方式比较强硬,通过设置寄存器锁止,在此期间写数据时不允许被其他用户去更改此数据区,直达解锁后才可以再次写数据。

2.10 Ioc

跨核通信是通过在多核共享区建立缓存Buffer,Core0去Send然后Core1去Recive,当Buffer为数组形式则不需要Spinlock,通过循环队列方式去Send与Recive。非数组形式则需要Spinlock保证数据写的时候不会被复写。

2.11 Resources

资源访问多用作Isr和Task中,作为提升Isr和Task的优先级,将其优先级提升至最高,不会被其他Isr和Task打断。

2.12 TimingProtection

时间保护作为保证Task和Isr运行的准确性,时间保护需新建立Counter,做为时间保护的时间计算机制,可确保连续Task或Isr的时间、锁止2类中断时间、锁止所有中断时间和Task或Isr的运行时间,出现超时则进ProtectionHook,记录超时信息。

2.13 MemoryProtection

内存保护是做为对数据区的一种保护,可对Core、Application、Isr和Task进行保护,设置保护起始地址和结束地址,在访问时若不满足访问权限的用户进行访问则会进入ProtectionHook,记录错误信息。

相关新闻

联系我们

联系我们

在线咨询:点击这里给我发消息

邮件:lumengyi@reachauto.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部