CPAUTOSAROS工程实践

原创 汽车电子与软件 2023-07-25 19:38

AUTOSAR OS 简介



CP AUTOSAR OS 是用于车载 ECU的实时操作系统, 在协议栈中属于 System Services 中的一个模块。


CP AUTOSAR OS 是基于 OSEK/VDX 的 Operating System,  其基础原理可以参考 OSEK OS 相关文档。

OSEK OS 是基于事件触发的操作系统,可以灵活的对任务进行调度。需要注意的是,CP AUTOSAR OS 不支持动态创建任务,所有 OS 行为需要在编译时进行定义。

CP AUTOSAR OS 支持多核。下图所示为,CP AUTOSAR 概览图。


CP AUTOSAR OS 根据是否支持时间保护和内存保护分为四个 Class
  • SC1
  • SC2
  • SC3
  • SC4

如下图所示:



MemoryProtection 是指用于防止不同的 OS Application 异常访问其他不允许的程序段或数据段。

Timing Protection 用于监控任务或者中断是否超时 (超过规定的时间 deadline)


OS Application



OS Application 简介



OS Application 是程序应用的单元,每个 OS Application 包含如下内容:
  • TaskManagement (任务管理)
  • ISRManagement (中断管理)
  • Scheduler(调度表)
  • ResourceManagement(资源管理)
  • Countersand Alarms (时基和警报器)
  • Events(事件)
  • Hook Routines (Hook 程序)



OS Application 各项关系图



OS Application 各项关系图如下图所示:



时基和报警器



时基和报警器简介



Counters(时基)是 OSEK OS 中一个组件,在软件中可理解为 Ticks。

Alarm(警报器)是由 Counter 驱动的,多个 Alarm 可以连接到同一个 Counter。

Counter 每次累加都会触发相关联 Alarm 的检查,如果满足触发条件,Alarm 会被触发。

Alarm 向上关联到 1 个任务,激活的 Alarm 可以触发一次任务执行(BCC task)或者触发一次事件(Set Event)

Alarm 主要包括以下类型:
  –Relative(相对时间Alarm):对比当前时基又过了 Tick 数量后触发。

  –Absolute(绝对时间Alarm):当 Counter 到达固定数值后触发,或者周期固定间隔触发。



时基和报警器示例



如下,是一个时基和报警器的示例:



上述代码启动了一个 1 秒的周期类型的 RelativeAlarm
此 Alarm 与 Core0_App_100msTask 连接用于周期性的激活任务。

相关配置如下图所示:



上图中的设计原理如下:

CounterType: 采用硬件时钟并关联到硬件 Timer
Counter Tick Per Base: 每 100 个硬件 TimerCounter 触发 OS Counter 累加
Seconds Per Tick: 1us, 为了增加 OS 调度速度,精度不宜过小。


任务管理




基础任务


基础任务英文缩写为:BCCtask,主要包括以下特性:

每次启动都会从程序开始执行到程序结束
没有等待状态
可以被其他任务抢占,但不会自主进去等待状态

基础任务会在以下下情况下停止运行
  • 任务结束
  • 被高优先级任务抢占
  • 被中断抢占(中断优先级高于任务)


基础任务示例


如下图所示为基础任务的配置示例:


上图中:

Task Activation 是指同时只允许一次任务激活

Priority 指任务优先级, 高优先级任务可以抢占低优先级任务(如果低优先级任务配置成支持抢占类型)

Schedule 设置为不支持抢占

Stack Size 设置为1K (根据当前任务所需要 Stack 进行设置,如果 Stack 产生Overflow,OS 会在任务切换时报错挂死)

Type 类型为 Basic Task(基础任务)

下图为配置的 Task 的代码示例:



Event


Event 主要用于扩展类型任务的触发执行(从Waiting状态到Run状态)

每个扩展类型任务可以关联多个事件
任何任务或者中断程序都可以激活事件
只有关联事件的任务可以等待和清除相关联事件

状态切换关系如下图所示:



扩展任务


扩展任务经常是运行在 while 循环中的,一般不会结束,但视应用场景也可以结束。 

扩展任务可以进入 Waiting 状态,待事件触发后,继续执行
可以被其他高优先级任务抢占,也可以自主挂起

扩展任务会在如下情况下停止运行
  • 任务结束
  • 被高优先级任务抢占
  • 被中断抢占 (中断优先级高于任务)
  • 自主挂起进入 Waiting 状态



扩展任务示例


下图所示为扩展任务的配置示例:


上图中

Task Activation 指同时只允许一次任务激活

Priority 指任务优先级, 高优先级任务可以抢占低优先级任务(如果低优先级任务配置成支持抢占类型)

Schedule 抢占

Stack Size: 1K (根据当前任务所需要 Stack 进行设置,如果 Stack 产生Overflow,OS 会再任务切换时报错挂死)

Type: Extended

扩展任务的代码示例如下:



任务调度



任务执行顺序由如下 OS 配置决定:
- 任务优先级
- 任务调度方式(FULL/NON抢占)
- 任务激活方式,同时激活的任务按优先级排队执行,扩展类型任务可以由软件控制执行
- 任务切换时任务现场会保存再对应任务的 Task Stack 中,右侧下图 Task T2 黄色部分为任务切换程序执行。抢占过多会造成任务切换过多导致 CPURuntime 的损失。



任务同步与资源管理



任务同步管理用于管理多个任务共享的资源(数据和外设等),防止task1再读取共享数据的时候被 Task2 改写。

常规方法包含 (ExclusiveArea Handling):
  • 开关中断 
  • Get/ReleaseResource
  • Get/Release SpinLock



ISR Management(中断管理)



中断服务程序再 OSEK OS 中具有高于任务的优先级

OSEK OS有两类中断:
Category1, 不要 OS 接管,不受 OS 中断优先级等管理

Category2,中端触发后,OS 接管,受 OS 控制




二类中断示例




如上述代码所示,中断向量表不直接指定中断服务程序,而是指向 Os_Hal_IsrRun程序由 OS 接管中断服务程序。

下文图表描述了中断服务程序抢占任务的示例。

 


Hook 函数和错误处理





AUTOSAR 协议栈中 OS 的启动



AUTOSAR 协议栈中的 OS 启动如下图所示:



OS 启动与 ECUM/BSWM 交互



OS 启动流程如下:

1、执行 Os_InitMemory 初始化 OS 参数(OS 使用到的变量等)

2、执行 Call Os_Init() 初始化OS. (变量,OS 中断控制器,MPU 等)

3、执行 EcuM_Init() 初始化部分硬件模块(Port,Dio,Adc…)

4、执行 EcuM_StartOS() 启动 OS

5、再 OS 开始执行后 Task_Init 会首先被调用.   执行 EcuM_StartupTwo() ,此函数会调用 BswM_Init() 来初始化其他硬件模块(CAN/LIN/NVM…).

6、再 BswM_Init 函数最后执行 Rte_Start() 用于启动所有任务。



AUTOSAR 协议栈中 OS 的停止



OS ShutDown 流程如下:

1、停止 CAN/LIN/ETH 通信
2、保存 NVM 数据
3、EcuM 执行休眠程序
4、EcuM 执行 OS 停止程序
5、MCU 进入休眠模式



AUTOSAR OS 多核与 IOC



多核配置流程:

1、使能两个核并关联到到不同的 EcucParatition
2、建立两个 OSApplication 并分配到不同的 EcucParatition
3、每个 OSApplication 可关联不同的 Task/ISR 等,这样关联的任务就会在相应核执行

核间通信(已 Core0 到 Core1 通信为例)流程:

1、Core0 发送方通过RTE将数据写入 IOC 并触发 Core1 任务
2、Core1 执行完任务将结果通过 RTE 反馈到 IOC 并触发 Core0 任务
3、Core0 得到反馈数据结束处理


IOC 示例



下图为 IOC(核间通信)的一个示例:


更多内容,请到 "搞一下汽车电子"APP 查看



END




汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 112浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 73浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 63浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 53浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 86浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 72浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 59浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 88浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 85浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 99浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 40浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 53浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 109浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 75浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦