AUTOSAR NvM Block的三种类型

Native NVRAM block

Native block是最基础的NvM Block,可以用来存储一个数据,可以配置长度、CRC等。

Redundant NVRAM block

Redundant block就是在Native block的基础上再加一个冗余块,当Native block失效(读取失败或CRC校验失败等)时,可以从Redundant block中恢复数据。
Redundant block中的NvMNvBlockNum要配置为2.
在这里插入图片描述

Dataset NVRAM block

顾名思义,Dataset是一个数据组,可以针对一个数据存储多个不同的值,同时还支持部分数据存放在NvM中,部分数据固化在ROM中。举个例子:座椅位置是RAM中的一个数据,车上的座椅位置记忆功能支持记忆四个位置的数据,这四个位置数据存放在NvM中,可以由用户修改,还有座椅最前和最后两个位置的数据是固定的,存放于ROM中,不支持修改。这种场景下就可以用Dataset这种存储方式。

Dataset类型的数据在配置的时候类型要选择NVM_BLOCK_DATASET,如下图所示,可以配置一个RAMBlock和ROMBlock,ROMBlock可以是一个数组。

在这里插入图片描述
注意下NvMNvBlockNumNvMRomBlockNum这两个配置参数,NvMNvBlockNum代表NvM中存储的数据个数,可读可写,NvMRomBlockNum代表ROM中存储的数据个数,只可读,不可写,同时NvMRomBlockDataAddress 配置项中配置的ROMBlock数组的大小也要等于NvMRomBlockNum。例如:

uint32 RAMBlock_DatasetTest;
const uint32 ROMBlock_DatasetTest[2] = 
{0x11223344,0x55667788
};

在读写数据的时候,要先调用 Std_ReturnType NvM_SetDataIndex(NvM_BlockIdType BlockId, uint8 DataIndex) 接口设置要读写的Block索引,索引是NvBlock的块在前,RomBlock的块在后。比如上图中NvMNvBlockNum配置为4,NvMRomBlockNum配置为2,那么NvBlock各个块的索引就是0-3,RomBlock两个块的索引就是4-5.
可参考下面标准中的图:

在这里插入图片描述
读写数据的代码举例如下:

	//读NvM_SetDataIndex(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest, DatasetTestIndex);NvM_ReadPRAMBlock(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest);//写NvM_SetDataIndex(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest, DatasetTestIndex);NvM_WritePRAMBlock(NvMConf_NvMBlockDescriptor_NvMBlock_DatasetTest);

还要注意一点,Dataset类型的Block不支持NvM_ReadAll,ETAS会报错,但我在标准中好像没找到相关的描述,存疑。NvM_WriteAll是支持的。下面是ETAS生成时候的报错。

在这里插入图片描述

当未调用NvM_SetDataIndex API设置索引时,默认使用的是第0块。

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

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

相关文章

剑指offer44.数字序列中某一位的数字

最后一道题,我一定要自己做出来,想了不到一个小时想法差不多成熟了,但是有一个小细节出问题了,这个问题我在idea上debug都没debug出来。我先讲我的题解然后再讲我这个小问题出在哪里吧。以下是我的代码: class Soluti…

PHP手术麻醉系统源码,自动生成麻醉和护理医疗文书

一套手术麻醉系统源码,可二次开发 手术室麻醉临床信息系统(AIMS)是应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期,对病人进行全程跟踪与信息管理,自动集成病人HIS、LIS、RIS、PACS信息&#xff0…

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总 1、配置文件:/mnt/etc/system/config/thermal-engine.conf2、获取当前SOC所有温度传感器的温度:cat /dev/thermalmgr3、查看所有 Thermal 默认配置和自定义配置:echo query config > /dev/th…

【Spring源码】小白速通解析Spring源码,从0到1,持续更新!

Spring源码 参考资料 https://www.bilibili.com/video/BV1Tz4y1a7FM https://www.bilibili.com/video/BV1iz4y1b75q bean工厂 DefaultListableBeanFactory(最原始) bean的生命周期 创建(实例化)–>依赖注入–>-初始化…

利用vue-router跳转的几种方式

​1 <router-link> 2 this.$router.push 跳转到指定路径&#xff0c;并将跳转页面压入history栈中&#xff0c;也就是添加了一个页面记录。3 this.$router.replace 跳转到指定路径&#xff0c;将history栈中的当前页面替换为跳转到的页面。4 this.$router.go(n) 在his…

数据生成 | MATLAB实现WGAN生成对抗网络数据生成

数据生成 | MATLAB实现WGAN生成对抗网络数据生成 目录 数据生成 | MATLAB实现WGAN生成对抗网络数据生成生成效果基本描述程序设计参考资料 生成效果 基本描述 1.WGAN生成对抗网络&#xff0c;数据生成&#xff0c;样本生成程序&#xff0c;MATLAB程序&#xff1b; 2.适用于MATL…

从public static void main(String[] args)看如何构造数据

java语言中public static void main(String[] args)里面的ages有什么作用&#xff1f; 在Java语言中&#xff0c;public static void main(String[] args) 是一个特殊的方法&#xff0c;它是Java程序的入口点。当你运行一个Java程序时&#xff0c;程序会从这个方法开始执行。这…

【游戏评测】河洛群侠传一周目玩后感

总游戏时长接近100小时&#xff0c;刚好一个月。 这两天费了点劲做了些成就&#xff0c;刷了等级&#xff0c;把最终决战做了。 总体感觉还是不错的。游戏是开放世界3D游戏&#xff0c;Unity引擎&#xff0c;瑕疵很多&#xff0c;但胜在剧情扎实&#xff0c;天赋系统、秘籍功法…

kubernetes(二)

文章目录 1. kubernetes常用资源1.1 deployment资源1.2 deployment升级和回滚1.3 tomcat连接mysql1.4 wordpress 2. kubernetes的附加组件2.1 kubernetes集群配置dns服务2.2 kubernetes的dns配置文件2.3 namespace命名空间2.4 kubernetes健康检查2.4.1 健康检查livenessprobo2.…

代码随想录二刷day01

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、704. 二分查找二、35. 搜索插入位置三、34. 在排序数组中查找元素的第一个和最后一个位置四、69. x 的平方根五、367. 有效的完全平方数六、27. 移除元素七…

JDBC Vertica Source Connector 使用文档

支持以下引擎 Spark Flink SeaTunnel Zeta 关键特性 批处理 精确一次性处理 列投影 并行处理 支持用户自定义拆分 支持查询 SQL 并实现投影效果 描述 通过 JDBC 读取外部数据源数据。 支持的数据源信息 DatasourceSupported versionsDriverUrlMavenVerticaDifferent depen…

40、端口号和套接字

经过了上节的学习之后&#xff0c;接下来我们再要了解的一个知识就是端口号和套接字。尤其端口号&#xff0c;是传输层中最为重要的基础概念之一&#xff0c;我们在以后的学习中会经常提及到端口号。 端口号 曾经在学习TCP/IP模型的时候&#xff0c;我们曾学过“SAP”即服务访…

设计HTML5表格

在网页设计中&#xff0c;表格主要用于显示包含行、列结构的二维数据&#xff0c;如财务表格、调查数据、日历表、时刻表、节目表等。在大多数情况下&#xff0c;这类信息都由列标题或行标题及数据构成。本章将详细介绍表格在网页设计中的应用&#xff0c;包括设计符合标准化的…

【第七讲---视觉里程计1】

视觉里程计就是通过对图像进行特征提取与匹配得到两帧之间的位姿&#xff0c;并进行估计相机运动。 经典SLAM中以相机位姿-路标来描述SLAM过程 特征提取与匹配 路标是三维空间中固定不变的点&#xff0c;可以在特定位姿下观测到在视觉SLAM中&#xff0c;可利用图像特征点作为…

2023 CCF BDCI 数字安全公开赛正式开启报名

2023 CCF BDCI 数字安全公开赛重磅来袭&#xff01; 全新的赛道场景 丰厚的赛事奖励 精彩的周边活动 数字安全守护人的狂欢盛宴 快来报名参加吧 大赛背景 伴随着数智化的持续加深&#xff0c;网络安全、数据安全风险遍布于所有场景之中&#xff0c;包括工业生产、能源、交…

2019年9月全国计算机等级考试真题(C语言二级)

2019年9月全国计算机等级考试真题&#xff08;C语言二级&#xff09; 第1题 1、“商品”与“顾客”两个实体集之间的联系一般是 A. 一对一 B. 一对多 C. 多对一 D. 多对多 正确答案&#xff1a;D 第2题 定义学生选修课程的关系模式&#xff1a;SC&#xff08;S#&#xff0c…

tensorboard报错:AttributeError: module ‘distutils‘ has no attribute ‘version‘

1、报错问题 环境&#xff1a;pytorch 1.10 tensorboard报错&#xff1a;AttributeError: module ‘distutils‘ has no attribute ‘version‘ 2、解决 pip uninstall setuptools pip install setuptools59.5.0

运营商三要素 API:构建安全高效的身份验证系统

当今数字化的世界中&#xff0c;身份验证是各行各业中至关重要的一环。为了保护用户的隐私和数据安全&#xff0c;企业需要寻求一种既安全可靠又高效便捷的身份验证方式。运营商三要素 API 应运而生&#xff0c;为构建安全高效的身份验证系统提供了有力的解决方案。 运营商三要…

R语言 列表中嵌套列名一致的多个数据框如何整合为一个数据框

在批量建模后容易得到list&#xff0c;list中的每个元素都是单个的tibble 或者 dataframe&#xff0c;如何将这些数据整合为一张表呢&#xff1f; 载入R包 library(broom) library(tidyverse) 模拟数据 models <- txhousing %>% group_by(city) %>% do(modlm(lo…

-Webkit-Box 在 Safari 中出现的兼容性问题

一、问题背景&#xff1a; UI要求要实现这样的效果&#xff0c;使用 display:-webket-box在chrome浏览器下完美解决 但是马上啪啪打脸&#xff0c;在safari浏览器下显示空白 &#xff0c;不能不说浏览器之间的兼容性简直就是天坑 二、解决办法 通过浏览器调试发现原本float的…