b站视频链接: [https://www.bilibili.com/video/BV13p4y1G7yR?p=18&vd_source=7fdcef3abedeb8d7c5209abe0ef60535]
注:本文以 ETAS 工具为例
概览:
一、如何从一个 VCU 需求开始 Autosar 的工程??
ISOLAR A/B 软件
先来看看ISOA/B新建工程目录一栏(让我来看看是怎么个事儿?)
System文件夹下面有几个子文件夹:
System info:
Signals And Signal Groups: 系统和 系统描述
分为:isignal: ECU 信号传递
system sig: ECU内部信号传递
Pdus: 数据交互
承载网络信号数据处理单元,和网络真实一一对应
Frames:
映射到总线的数据包结构, 和PDU 对应
Ecus: 用的的ECU
Networks: 系统中的控制网络,CAN,LIN ,以太网等等
二、Autosar 如何描述一个系统
ISOA/B软件 有两种方法:
方法一:
dbc文件直接导入(通信矩阵,这个文件应该是车厂给的)
ISOAB 支持 CAN,LIN 但不支持 以太网导入
dbc import
SOAB可以将它导入并解析成 autosar 系统描述文件
方法二:
没有 arxml, 需要自己新建
右键 System------> open with system editor
会生成 signal 文件,需要指定起始位
还需要在 pdu 和 Frames 里面指定
三、零起点的 BSW 配置(该工具适合CAN,XCP,LIN,网络管理这几个模块,不适合 以太网,UDS模块)
问题提出:如何利用已有信息自动生成 bsw?
ECU ----> VCU
软件会自动配置 BSW
题外话: bsw 工具配置生成的会有缺陷,所以最好还是自己能够手动生成
四、举个例子: 从 CAN 网络学习 Autosar 通信
https://www.bilibili.com/video/BV13p4y1G7yR?p=7&spm_id_from=pageDriver&vd_source=7fdcef3abedeb8d7c5209abe0ef60535
(5月6日,先看到这里)
啊,看不懂…以后再看吧
五、ECU的休眠与启动、
Ecum 分为以下5个方面:
Ecum 状态机
Ecu 的整个启动流程:
(有空再看看吧)
五、存储栈
一些缩略词了解一下:
先说说 Nvm 模块, 为了把ROM 和 RAM 的优点结合,Autosar 诞生了此模块
ROM: 只读,掉电不丢失,速度慢, 常见: EPROM,EEPROM,PROM
RAM: 随机存储,掉电丢失,速度快,贵 , 常见: SRAM(静态), DRAM(动态),DDR SDRAM,NAND flash ,NOR flash
FEE: 将 FLASH 转化为虚拟地址提供个NVM 使用
整个Flash模块的配置放在 mcal 里进行配置,不放在 Nvm 里进行配置
六、Autosar 关于模式的配置
先来看看 BSWM 模块在 Autosar 中的位置:
BSWM:
Autosar BSW 层中负责管理各模块状态协调管理与动作执行的模式管理中心,BSWM 汇聚来自应用层与 BSW 层的模式信息,触发预定动作的执行,实现对软件的中心调度。
模式通知的方式;
- 通过 RTE 发起模式转换通知
- 通过 BWS层各模块的服务函数直接通知
动作执行方式:
- 通过BSW 层或者 ASW 层服务函数
- 通过回调函数
(有空再看看)
七、 OS
Autosar OS 的角色存在??
目的:
需要一个可配置的计算和存储资源管理的角色,使得软件开发人员专注于应用软件的开发
OS 基本需求:
任务调度
事件响应
任务抢占,实时性保障
上下文切换的现场保护与恢复
内存管理
共享资源的安全访问机制
了解一下啥是 SC1 SC2 SC3 SC4
SC1:OSEK OS
SC2: OSEK OS + Timing Protection
SC3: OSEK OS + Memory Protection
SC4: OSEK OS + Timing Protection + Memory Protection
Autosar Os 基本组成:
Alarm | 功能 |
---|---|
Application | 定时闹钟,Alarm 提供一种在复杂系统下进行系统调度的方式 |
Application Modes | 应用,可根据安全被设置可信或者不可信应用,从属于一个CPU 核心,可以引用Counter,ISR,Task,Schedule Table |
Counter | 计数器,作为基础计数参数,是驱动OS状态机的累加器,分为软件计数器和硬件计数器两种 |
Event | 事件,可以向任务内的传递信号,在运行时提供异步处理机制 |
Isr | 中断服务函数 |
Resource | 资源,Autosar 提供的一种在不同优先级任务间或任务与中断间安全共享数据的方式 |
Schedule Table | 调度表,按照基点与偏移点依次调度一系列任务的方式 |
Spinlocks | 旋锁,旋锁是一种对共享存储的读写访问机制 |
Tasks | 任务,按照一定周期或机制被调度运行的函数 |
如何设计一个最小的 Autosar OS:
这里用到一个工具 RTA-OS
(啊啊啊啊啊,有时间再更新)