【笔记篇】Davinci Configurator OS模块(上)

目录

  • 1 简介
    • 1.1 架构概览
  • 2 功能描述
    • 2.1 特性
    • 2.2 规范偏离
      • 2.2.1 API 函数的泛型偏离
      • 2.2.2 可信函数 API 偏离
      • 2.2.3 服务保护偏离
      • 2.2.4 代码保护
      • 2.2.5 SyncScheduleTable API 偏差
      • 2.2.6 CheckTask/ISRMemoryAccess API 偏差
      • 2.2.7 中断 API 偏差
      • 2.2.8 Cross Core Getter API
      • 2.2.9 IOC
      • 2.2.10 栈冲突时返回值
      • 2.2.11 OS内部错误的处理
      • 2.2.12 强制终止应用程序
      • 2.2.13 OS配置
      • 2.2.14 自旋锁
    • 2.3 栈
      • 2.3.1 Task栈共享
        • 2.3.1.1 描述
        • 2.3.1.2 启动
        • 2.3.1.3 使用
      • 2.3.2 ISR栈共享
        • 2.3.2.1 描述
        • 2.3.2.2 启动
        • 2.3.2.3 使用
      • 2.3.3 栈检查策略
      • 2.3.4 软件栈检查
        • 2.3.4.1 描述
        • 2.3.4.2 启动
        • 2.3.4.3 使用
      • 2.3.5 MPU栈监控
        • 2.3.5.1 描述
        • 2.3.5.2 启动
        • 2.3.5.3 使用
      • 2.3.6 栈消耗测量
        • 2.3.6.1 描述
        • 2.3.6.2 启动
        • 2.3.6.3 使用
    • 2.4 中断
      • 2.4.1 中断处理API
      • 2.4.2 中断等级
      • 2.4.3 中断向量表
      • 2.4.4 二类中断嵌套
        • 2.4.4.1 描述
        • 2.4.4.2 启动
      • 2.4.5 一类中断
        • 2.4.5.1 一类中断的实现
        • 2.4.5.2 一类中断嵌套
        • 2.4.5.3 StartOS前的一类中断
      • 2.4.6 中断源初始化
      • 2.4.7 未处理的中断
      • 2.4.8 未处理的系统调用
    • 2.5 异常
      • 2.5.1 异常向量表
      • 2.5.2 未处理的异常
    • 2.6 定时器
      • 2.6.1 描述
      • 2.6.2 启动
      • 2.6.3 使用
      • 2.6.4 依赖
    • 2.7 周期中断定时器(PIT)
      • 2.7.1 描述
      • 2.7.2 启动
    • 2.8 高分辨率定时器(HRT)
      • 2.8.1 描述
      • 2.8.2 启动
    • 2.9 PIT HRT对比
    • 2.10 启动
    • 2.11 单核启动
      • 2.11.1 单核系统
      • 2.11.2 多核系统
        • 2.11.2.1 SC1 / SC2 系统示例
        • 2.11.2.2 SC3 / SC4 系统的多核示例
    • 2.12 多核启动
      • 2.12.1 SC1 / SC2 系统中的多核启动示例
      • 2.12.2 SC3 / SC4 系统中的多核启动示例
    • 2.13 故障处理
    • 2.14 错误报告
      • 2.14.1 服务 ID 的扩展
      • 2.14.2 MICROSAR OS 错误代码的扩展
      • 2.14.3 详细错误代码
    • 2.15 多核
      • 2.15.1 调度和分派
      • 2.15.2 多核数据概念
      • 2.15.3 X-Signal
      • 2.15.4 主/从核心
      • 2.15.5 硬件初始化核心
      • 2.15.6 多核系统的启动
      • 2.15.7 自旋锁
        • 2.15.7.1 自旋锁的链接
      • 2.15.8 缓存
      • 2.15.9 关闭
        • 2.15.9.1 单个核心的关闭
        • 2.15.9.2 所有核心的关闭
        • 2.15.9.3 保护违规期间的关闭
    • 2.16 调试
      • 2.16.1 描述
      • 2.16.2 启动
      • 2.16.3 ORTI调试
        • 2.16.3.1 ORTI(OSEK Runtime Interface)
    • 2.17 内存保护
      • 2.17.1 MPU的使用
      • 2.17.2 配置方面
        • 2.17.2.1 静态MPU区域
        • 2.17.2.2 动态MPU区域
        • 2.17.2.3 无干扰性
      • 2.17.3 堆栈监控
      • 2.17.4 保护违规处理
      • 2.17.5 优化/快速的MPU处理
      • 2.17.6 推荐配置
    • 2.18 内存访问检查
      • 2.18.1 描述
      • 2.18.2 启动
      • 2.18.3 使用
      • 2.18.4 依赖关系
    • 2.19 时间保护
      • 2.19.1 描述
      • 2.19.2 启动
      • 2.19.3 使用
    • 2.20 IOC
      • 2.20.1 描述
      • 2.20.2 非排队通信(最新即最好)
        • 2.20.2.1 1:1 通信模式
        • 2.20.2.2 N:1 通信模式
        • 2.20.2.3 N:M 通信模式
      • 2.20.3 排队通信
      • 2.20.4 通知
      • 2.20.5 特点
        • 2.20.5.1 N:1 排队通信
        • 2.20.5.2 IOC 自旋锁
        • 2.20.5.3 通知
        • 2.20.5.4 复杂数据类型
    • 2.21 受信任OS Applications
      • 2.21.1 启用内存保护的受信任OS应用
        • 2.21.1.1 描述
        • 2.21.1.2 启用步骤
        • 2.21.1.3 依赖关系
      • 2.21.2 用户模式下的受信任OS应用
        • 2.21.2.1 描述
        • 2.21.2.2 启用步骤
        • 2.21.2.3 依赖关系
      • 2.21.3 受信任函数
    • 2.22 OS Hooks
        • 2.22.1 运行时上下文
        • 2.22.2 嵌套行为

1 简介

本文主要描述了AUTOSAR OS在Davinci Configurator配置中的一些应用,严格意义上来说,这里应该叫MICROSAR OS,因为Vector对AUTOSAR OS进行了一些自己的优化。说到这里,不得不赞叹Vector对行业的积累和对ECU开发的理解,这也更印证了我们以Davinci Configurator开始学习AUTOSAR的初衷——让大家更好的理解和上手AUTOSAR。

简单来讲,AUTOSAR OS主要用途是给基础软件模块和应用层SWC提供一个调度环境,用来管理中断、任务、异常的处理。在实际应用过程中,我们更关心的是对Task/ISR堆栈大小的配置、为Task/ISR分配优先级、根据不同runnable的周期分配Task、根据功能安全等级要求使用OS Application进行分区、配置调度表和中断映射等等。

阅读本文需要对OSEK OS和AUTOSAR OS的基础知识有一定的了解,这里博主已经在补充篇里的:

  1. 【补充篇】AUTOSAR多核OS介绍(上)
  2. 【补充篇】AUTOSAR多核OS介绍(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 调用外部接口的常用方式!

使用Feign进行服务消费是一种简化HTTP调用的方式,可以通过声明式的接口定义来实现。下面是一个使用Feign的示例,包括设置Feign客户端和调用服务的方法。 添加依赖 首先,请确保你的项目中已经添加了Feign的依赖。如果你使用的是Maven&#xf…

Redis篇(应用案例 - 商户查询缓存)

目录 一、什么是缓存? 二、为什么要使用缓存 三、如何使用缓存 四、添加商户缓存 1. 缓存模型和思路 2. 代码如下 五、缓存更新策略 1. 内存淘汰 2. 超时剔除 3. 主动更新 六、数据库缓存不一致解决方案 1. 数据库缓存不一致解决方案 2. 数据库和缓存不一致采用什…

《关于浔川 AI 翻译 v3.0 延迟上线的通告》——浔川社团官方

尊敬的用户: 您好! 首先,我们要向一直以来期待浔川 AI 翻译 v3.0 上线的各位用户致以最诚挚的歉意。原定于 [2024.9.19] 上线的浔川 AI 翻译 v3.0,由于 [安装失败原因],将再次延迟至 2024 年 10 月 2 日上线。 我们…

AMD ROCm™ 安装指南

AMD ROCm™ installation — ROCm Blogs 注意: 本文之前是 AMD 实验笔记博客系列的一部分。 AMD ROCm™ 是第一个面向 HPC/超大规模级 GPU 计算的开源软件开发平台。AMD ROCm™ 将 UNIX 的选择权、极简主义和模块化软件开发哲学引入 GPU 计算领域。有关更多信息,请参…

【MySQL】函数及存储过程

MySQL函数和存储过程 函数 数据库中的函数是一种可重复使用的命名代码块,用于在数据库中执行特定的操作或计算。 在MySQL中提供了很多函数,为我们的SQL提供了便利 内置函数 mysql> select count(r_id),max(r_id),min(r_id),avg(r_id) from resume…

docker build 有时候不展示命令的输出情况,怎么办?

来源:https://stackoverflow.com/questions/64804749/why-is-docker-build-not-showing-any-output-from-commands docker build 有时候不展示命令的输出情况,不方便我们 debug,怎么办? 可以加上 docker build --progressplain …

C++和OpenGL实现3D游戏编程【连载10】——纹理的半透明显示

1、本节实现的内容 上一节课我们讲到了图片的镂空显示,它能在显示图片时去除指定颜色的背景,那么这节课我们来说一下图片的半透明显示效果,半透明效果能给画面带来更高质量的提升,使图片显示的更自然,产生更真实的效果。下面是一个气泡向上漂浮的效果。 气泡效果 2、非纹…

2024华为OD机试E卷-判断一组不等式是否满足约束并输出最大差-(C++/Java/Python)

2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 用例2 考点分析 题目解析 代码 c++ python java 题目描述 给定一组不等式,判断是否成立并输出不等式的最大差(输出浮点数的整数部分) 要求: 不等式系数为…

搜索引擎简介

搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段: 第一阶段:根据目标网站的列表页,爬对应的文档 URL 第二阶段:根据文档 URL,下载文档内容 触发器&#xff1…

【行业报告】AI大模型对我国劳动力市场潜在影响研究报告(2024),附PDF下载!!

前言 9月13日,北京大学国家发展研究院联合智联招聘在中国国际服务贸易交易会上发布的《AI大模型对我国劳动力市场潜在影响研究:2024》(以下简称“报告”)显示,2024年上半年,招聘职位数同比增速前五的人工智…

数据结构——二叉树的性质和存储结构

二叉树的抽象类型定义 基本操作: CreateBiTree(&T,definition) 初始条件:definition给出二叉树T的定义。 操作结果:按definition构造二叉树T。 PreOrderTraverse(T) 初始条件:二叉树T存在。 操作结果:先序遍历T,对每个结…

基于Hive和Hadoop的白酒分析系统

本项目是一个基于大数据技术的白酒分析系统,旨在为用户提供全面的白酒市场信息和深入的价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark 为核…

LLM | Ollama WebUI 安装使用(pip 版)

Open WebUI (Formerly Ollama WebUI) 也可以通过 docker 来安装使用 1. 详细步骤 1.1 安装 Open WebUI # 官方建议使用 python3.11(2024.09.27),conda 的使用参考其他文章 conda create -n open-webui python3.11 conda activate open-web…

Java五子棋

目录 一:案例要求: 二:代码: 三:结果: 一:案例要求: 实现一个控制台下五子棋的程序。用一个二维数组模拟一个15*15路的五子棋棋盘,把每个元素赋值位“┼”可以画出棋…

不夸张、我就是这样考过PMP~

🌵方法虽然有点笨,但是按照这个方法认真学,60天过PMP真的来得及!PMP是通过性考试,只要拿下及格分就行,选对学习方法两个月3A上岸稳稳的!🔺24年11月PMP考试时间:11月30日&…

通过OpenScada在ARMxy边缘计算网关上实现数字化转型

随着工业4.0概念的普及,数字化转型已成为制造业升级的关键路径之一。在此背景下,边缘计算技术因其能够有效处理大量数据、减少延迟并提高系统响应速度而受到广泛关注。ARMxy边缘计算网关,特别是BL340系列,凭借其强大的性能和灵活的…

SQL高可用优化-优化SQL中distinct和Where条件对索引字段进行非空检查语句

最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。 SQL高可用优化 一、优化SQL包含distinct场景二、优化SQL中Where条件中索引字段是否为NULL三、代码验证1. NodeMapper2. NodeService3. NodeController4.数据库数据5.项…

SPI总结

1.前言 1.1 SPI简介 SPI全称Serial Peripheral Interface,串行外设接口,是一种用于连接外设的全双工通信总线。主机和从机支持一对一或一对多通讯连接。 图1 SPI物理层通讯连接 表1 Signal description 1.2 SPI特征 串行,每个时钟周期只传…

RM服务器研究(一)

客户端默认端口是10100: MultiPort.dll BOOL sub_10001070() { UINT v0; // esi BOOL result; // eax CHAR KeyName; // [espCh] [ebp-10Ch] DWORD flOldProtect; // [esp10h] [ebp-108h] CHAR Buffer; // [esp14h] [ebp-104h] char v5; // [esp15h] [e…

每日论文6—16ISCAS一种新型低电流失配和变化电流转向电荷泵

《A Novel Current Steering Charge Pump with Low Current Mismatch and Variation》16ISCAS 本文首先介绍了传统的current steering charge pump,如下图: 比起最简单的电荷泵,主要好处是UP和DN开关离输出节点较远,因此一定程度…