当前位置:网站首页>【AutoSAR 八 OS】
【AutoSAR 八 OS】
2022-07-29 19:04:00 【民谣唱给爱人听丶】
AutoSAR 八 OS
并非原创!!! 仅仅介绍自己学习的一些知识点,
如有想学习的请移步:AutoSAR入门到精通系列讲解
1 Tasks
- 基础任务(Basic Task)
- 扩展任务(Extended Task)
1.1 基础任务(Basic Task)
当启动操作系统后,所有的Task都进入到挂起状态;然后由用户去触发需要执行的Task(一般在DaVinci中都有配置,可以生成代码,比如配置成初始化执行或者100ms周期执行);被触发的Task都直接进入准备状态,等待被OS调用;这时OS会根据Task的优先级来调度Task(如果这时有高优先级的Task进入准备状态了,OS就会暂停正在执行的Task,优先让高优先级的Task执行,后继续执行被暂停的Task,类似于中断嵌套)。

1.2 扩展任务(Extended Task)
扩展任务比基础任务多了一个等待状态,这个状态就是当Task正在运行的时候,突然需要一个事件(比如刚刚的ADC数据更新),那么在等待这个事件的时候,Task进入等待状态并释放CPU资源,低优先级的Task就可以继续占用CPU;当ADC数据更新事件来了,那么再让我们在等待状态中的Task进入准备状态,由于优先级高,那么再进入运行状态。
2 Alarms
Alarms顾名思义是闹钟,作用就是设置一个周期定时,但不光能用来触发Task,还可以用来设置一个Event事件或者Call一个回调函数。
Alarms的时间基准是通过由硬件定时器产生的Tick Time决定的,每个Tick Time是多少时间可以在DaVinci中配置。每来一个Tick Time,System Counter便加1,加到预设的值,Alarm就被触发了。
3 Interrupts
- 中断的优先级始终高于Task
- 中断的优先级中一类中断大于二类中断;
- 周期性Task和周期性中断都能做周期处理,但是在周期要求严格的情况下,最好用中断
3.1 一类中断(Cat1)
- 不会访问OS服务,中断结束后直接返回中断处
- 这里OS依然按照正常的调度执行
3.2 二类中断(Cat2)
- 会访问部分OS服务(一些OS服务是不允许的,比如TerminateTask)
- 中断结束后会发生一次OS的重新调度。
3.3 一类与二类中断的区别
- 一类中断: 由于不允许使用OS服务,因此在一类中断中不能调用Task2触发函数,只能在退出中断后回到Task1,然后等待OS应该调用Task2的时候再调用
- 二类中断: 因为允许使用OS部分服务,这时我们在二类中断中写入了Task2的触发函数,那么在中断结束返回的时候会直接发生一次调度,由于Task2被触发了,优先级又高,那么就直接进入Task2运行,等Task2运行结束,再返回Task1继续运行(如下图的2情况);当然,在中断中也可以不触发其他Task,OS调度也就依然返回到Task1中去(如下图的1情况)

4 IOC (Inter OS Application Communicator)
是在内存中开辟了一个被保护的IOC区域,用于跨核通信。
该区域支持多输入多输出,由OS管理,在DaVinci中一般是自动生成无需修改,这里仅作了解
5 OS Resources
当至少两个Task并行访问同一个资源的时候,很可能出问题,OS Resources就是用来防止并行访问出错

边栏推荐
猜你喜欢

成都 | 转行软件测试,从零收入到月薪过万,人生迎来新转折...

《帧同步教程一》定点数原理和无损精度的实现方式

MarkBERT

第01章 Linux下MySQL的安装与使用【1.MySQL架构篇】【MySQL高级】

Neo4j Open Source NoSQL Database

真·摸鱼带师:程序员小哥每天工作10分钟年薪57万,我破防了...

LeetCode 1047 删除字符串中的所有相邻重复项

leetcode:36. 有效的数独

c语言 || 杂

Embedded Development: Embedded Fundamentals - Software Error Classification
随机推荐
7 lines of code crashed station B for 3 hours, but because of "a tricky 0"
shell 图形化跳板机
Typescript类功能混合(mixin)使用,将多个类中功能合并到一个对象
Win11网络不稳定怎么办?Win11连接wifi频繁掉线的解决方法
第01章 Linux下MySQL的安装与使用【1.MySQL架构篇】【MySQL高级】
小程序使用npm包
mnist有多少张图片(怎么读取图片文字)
C language advanced enumeration and joint
MySQL 中的反斜杠 \\,我上当了
h264和h265视频流SDP描述详解
centos8安装redis
LeetCode 1047 Remove all adjacent duplicates in a string
Really touch the fish and lead the teacher: The programmer brother works 10 minutes a day with an annual salary of 570,000. I broke the defense...
First-line big factory software test interview questions and answer analysis, the strongest version of 2022...
“加价”都换不来安全保障,雷克萨斯LM之殇,到底是谁的错?
QT 如何计算中英文字符串的长度
FPGA设计8位异步、同步二进制计数器
嵌入式开发:嵌入式基础——软件错误分类
不堆概念、换个角度聊多线程并发编程
欧盟计划斥资百亿欧元补贴,吸引台积电、英特尔、三星等赴欧盟建厂