Autosar存储入门系列04_NvM的CRC比较机制及同/异步写

本文框架

  • 0.前言
  • 1. NvM的CRC校验
    • 1.1 CRC 比较机制
  • 2. NvM的同步写及异步写
    • 2.1 NvM的同步写
    • 2.1 NvM的异步写

0.前言

本系列是Autosar存储入门系列,希望能从学习者的角度把存储相关的知识点梳理一遍,这个过程中如果大家觉得有讲得不对或者不够清晰的地方,还请一定指出来,一起探讨,加深学习。

另外根据本人多年的开发经验,做了一些AutosarMCAL配置,通信,诊断,模式管理等实战总结,如果您有需求可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶系列导读

本篇介绍一下Autosar中NVM的CRC校验及同/异步写调用逻辑介绍,前面内容也有涉及到,内容较简单,对于老手可以直接跳过本篇。

基本框架如下:
在这里插入图片描述

1. NvM的CRC校验

1.1 CRC 比较机制

在上篇文章中我们介绍了Block存储的信息中,除必须的Block Data外,还有可选的Block头信息及CRC校验信息。
在这里插入图片描述
Block的CRC的计算是由NvM_MainFunction()异步完成的,CRC数据可以避免在NVM内存中进行不必要的写操作,其实现原理为:在写入数据到NVM内存之前,NvM重新基于当前数据计算CRC值,并将该值与之前读取或写入数据(存储在RAM中)的CRC进行比较:

1)CRC的数值一致,则NvM会判定数据未被更改,不会对block进行写入操作,并且回复成功写完成的状态;
2)CRC的数据不一致,即NvM数据已更改(不是最新的NV内存),并将数据写入NV RAM。

该机制可以通过NvMBlockUseCRCCompMechanism对NvM块启用。

2. NvM的同步写及异步写

NVM同步写和异步写是NvM(Non-volatile Memory)模块中的两种不同的数据写入方式,其中:

2.1 NvM的同步写

NVM同步写是指在写入数据到NVM时,需要等待数据写入操作完成后才能继续执行后续的操作。在配置了同步机制的情况下,必须同时配置NvMWriteRamBlockToNvM和NvMReadRamBlockFromNvM函数,以确保数据的正确读写。

同步写适用于下电前task已关闭后的NvM写入操作,此时即使写入的时间较长不会有任务超时发生。

2.1 NvM的异步写

NVM异步写是指在写入数据到NVM时,可以立即返回并继续执行后续的操作,在后续的NvM_MainFunction()中继续完成写入操作,这期间任务可以被打断,调用端也不需要等待写入操作完成。

异步写可以提高系统的响应性能,但在使用异步写时需要注意将数据先copy到对应的Mirror区域,在SWC运行过程中可以改变对应Ram里的值,但Mirror里的内容不能再去改变,否则会导致数据前后信息不一致。

其对应的调度顺序如下,与前面介绍的实时调用相同,即虽然是实时写,但实际是异步操作写入的。
在这里插入图片描述
适用于在ECU运行过程中对单个Block的写入。

总结来说,NVM同步写需要等待写入操作完成后才能继续执行后续其他操作,而NVM异步写则可以立即返回并继续执行后续的操作,两者各有优缺点及适用场景。

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

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

相关文章

安防监控/磁盘阵列存储/视频汇聚平台EasyCVR调用rtsp地址返回的IP不正确是什么原因?

安防监控/云存储/磁盘阵列存储/视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RT…

火狐浏览器使用scss嵌套编写css无法识别问题

火狐浏览器使用scss嵌套编写css无法识别问题 版本: “node-sass”: “^4.14.1”, “sass-loader”: “^7.3.1”,vue版本: v2问题描述: 我的文件目录是这样的: 而在scss文件中我是这样书写的 .vue文件中 在火狐浏览器中 在谷…

每天 26,315 美元罚款?交通安全局要求特斯拉提供 Autopilot数据

根据美国国家公路交通安全管理局(NHTSA)最近的特别命令,特斯拉公司被要求提供关于其自动驾驶功能Autopilot的相关信息。这一命令是继NHTSA于2021年8月启动初步评估后,在2022年6月升级为正式调查的一部分,NHTSA近期对特…

文件上传漏洞-upload靶场3-4(全网最详细解读)

文件上传漏洞-upload靶场3-4关通关笔记(全网最详细解读) upload 第三关(特殊后缀) 思路 按照第一关和第二关的思路,先随便上传一个文件用burpsuite工具抓包,看它到底是前段验证还是后端验证。 上传一个we…

音频基本知识

声音传播方式: 1)声音的传播需要介质,在真空中不能传播; 2)声波属于纵波,即如下图传播方向与振动方向一致; 声音速度: 1)常温常压下,一般空气速度为340m/s; 2)温度越高,声速越大; 3)液体、固体的传播速度比空气快; 人耳可接收到的频域范围: 1)通常范围…

Gitee注册和使用

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.Gitee 1.1Gitee是什么 1.2Gitee的注册以及远程仓库的创建…

解读GIS软件:从ArcGIS到山海鲸可视化的全方位介绍

在现代社会,地理信息系统(GIS)的应用已经渗透到了各个领域,为我们提供了丰富的地理数据分析和可视化工具。下面介绍几款常见的GIS工具软件,一起来了解它们的特点和优势。 1. ArcGIS: ArcGIS由Esri公司开发,…

AD域控统一设置桌面壁纸

这里的UNC路径是在C盘建立的共享文件夹Desktop 最后更新一下策略就可以了。

Rabbitmq的消息转换器

Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象 ,只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题: 数据体积过大 有安全漏洞 可读…

Haproxy+Keepalive 整合rabbitmq实现高可用负载均衡

Haproxy 实现负载均衡 HAProxy 提供高可用性、负载均衡及基于 TCPHTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,包括 Twitter,Reddit,StackOverflow,GitHub 在内的多家知名互联网公司在使用。HAProxy 实现了一种…

Linux 终端命令行 产品介绍

Linux命令手册内置570多个Linux 命令,内容包含 Linux 命令手册。 【软件功能】: 文件传输 bye、ftp、ftpcount、ftpshut、ftpwho、ncftp、tftp、uucico、uucp、uupick、uuto、scp备份压缩 ar、bunzip2、bzip2、bzip2recover、compress、cpio、dump、gun…

纠缠辅助的量子网络:原理、技术、发展与挑战

7月11日,中国科大网络空间安全学院和陆军院士工作室李忠辉博士为第一作者、薛开平教授为通讯作者的量子网络综述论文“Entanglement-Assisted Quantum Networks: Mechanics, Enabling Technologies, Challenges, and Research Directions”在通信领域知名期刊《IEEE…

《HelloGitHub》第 89 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

【第四阶段】kotlin语言的解构语法过滤元素

1.list集合的解构操作 package Stage4fun main() {val list listOf("java","kotlin","c")//元素解构var(v1,v2,v3)listprint("v1$v1,v2$v2,v3$v3") }执行结果 2.将上述代码转化为Java代码 使用Java 代码需要大量书写 3.解构过滤元…

基于Axios完成前后端分离项目数据交互

一、安装Axios npm i axios -S 封装一个请求工具:request.js import axios from axios// 创建可一个新的axios对象 const request axios.create({baseURL: http://localhost:9090, // 后端的接口地址 ip:porttimeout: 30000 })// request 拦截器 // 可以自请求…

Midjourney学习(二)参数的基础

prompt的组成 prompt 可以由三部分组成&#xff0c; 第一部分是垫图部分&#xff0c;也就是一张网络图片 第二部分是文本描述内容 第三部分则是参数 参数列表 --aspect <value> 或者 --ar <value> 控制画面的比例&#xff0c;横竖比例 --version <value> -…

HTML及CSS入门及精通

前言 HTML&#xff08;超文本标记语言&#xff09;和CSS&#xff08;层叠样式表&#xff09;是构建网页的两个基本技术。HTML用于定义网页的结构和内容&#xff0c;而CSS用于控制网页的样式和布局。本教程将介绍HTML和CSS的入门知识&#xff0c;并逐步引导您掌握更高级的技巧和…

在ros中利用串口serial发布fdilink的gps话题

文章目录 介绍FDILink通讯协议数据帧组成数据包 数据处理打开串口在头文件中定义参数串口读取 代码运用依赖&#xff1a;使用&#xff1a; 源码 介绍 DETA100系列 是一个提供 GNSS/INS & AHRS 系统的模组&#xff0c;在最苛刻的条件下提供准确的位置、速度、加速度和姿态数…

代码随想录算法训练营Day42 | 01背包理论基础 | 01背包 (滚动数组) | 416. 分割等和子集

文章目录 01背包理论基础题目描述暴力解法动态规划 01背包 (滚动数组)01背包总结 416. 分割等和子集二维 dp一维 dp&#xff08;滚动&#xff09;题解 01背包理论基础 理论基础 题目描述 有 n 件物品和一个最多能背重量为w 的背包&#xff0c;已知第 i 件物品的重量是 weigh…

hadoop大数据集群中更换磁盘,balance的速度缓慢问题(解决)

hadoop大数据集群中更换磁盘&#xff0c;balance的速度缓慢问题&#xff08;解决&#xff09; 看现象只有4个bloucks在执行的 调整参数&#xff1a; 增大配置参数&#xff0c;观察重新负载的速度 修改配置文件 hdfs-site.xml dfs.datanode.balance.max.concurrent.moves100 …