小猫爪:S32K3学习笔记17-S32K3之数据完整性的保障和手段
小猫爪:S32K3学习笔记17-S32K3之数据完整性的保障和手段
- 1 前言
- 2 三个保障
- 2.1 EDC
- 2.2 XBIC
- 2.3 ECC
- 3 一个手段
- END
1 前言
大家都知道,怎样保证数据在芯片内部传输不出错是非常重要且必要的环节,那么这一节就来稍微介绍一下S32K3在数据完整性上面做了哪些文章。
2 三个保障
S32K3中所有关于数据完整性错误都会在FCCU中体现出来,在数据完整性检查上面K3主要提供了三种方法为数据传输到存储的每个阶段保驾护航,分别是EDC(Error Detection Code)检查,XBIC(Crossbar Integrity Checker)检查和ECC(Error code correction)检查。在图中就可以看出来,EDC检查和XBIC检查出现的错误最后会体现在FCCU的NCF[1]通道,而ECC检查则根据Memory区域分别体现在NCF[2]和NCF[3]通道。
下图为K3的框架图(高清版请参考RM手册Figure 5. Block diagram - S32K324 (includes S32K314 and S32K344)):
在Slave—AXBS—Master的数据存储和传输过程中,EDC, ECC,XBIC分别对各个阶段对数据保驾护航。举个例子,核访问Memory的数据的流向为:Memory—AXBS—Core,在这个过程中,ECC检查负责Memory里面的数据检查,XBIC检查负责AXBS总线里面的数据检查,而EDC检查则是负责访问Matser或Memory到AXBS总线的传输过程中的数据检查。
2.1 EDC
在访问Matser或Memory到AXBS总线的数据传输路上都会有一个EDC gasket的玩意,这个东西会检查地址和数据,来保证数据在传输过程中不出错,当EDC检查到错误后会报告给FCCU。这个功能是默认使能的,但是用户可以通过写寄存器MSCM->ENEDC来Disable相关的gasket,另外这个寄存器的配置没有在MCAL中实现,用户可手动配置寄存器。
2.2 XBIC
XBIC主要负责Crossbar进出数据的检查,其框图如下:
它所检查的就是Crossbar的输入和输出是否正确,它的本质其实就是EDC检测,只不过这个EDC是专门针对Crossbar的,检测内容也是地址和数据,另外它也能像EIM模块一样主动注入一个错误。XBIC检测到错误后,会将错误报告给FCCU模块,它还能捕捉到出现错误的地址。这里可以提一下的就是XBIC的错误不会触发BusFault。
下面就是MCAL配置,XBIC被集成到了Rm模式中,如下:
然后配置XBIC的配置,如下:
这些其实就是使能不同的Master port和Slave port的检测,详情先参考RM手册的XBIC->MCR寄存器,另外XBIC也是默认使能的,在MCAL中其实也无需配置,除非想要Disable XBIC。在RTD的CDD_Rm.c和CDD_Rm.h中也提供了XBIC相关的函数,比如注入错误,获取错误信息等,详情请自行参考RTD源码。之前在介绍ERM和EIM的时候,说到EIM和ERM相关API被集成到了SPD的eMcem模块中,可能是出于按功能分类的初衷,XBIC的相关API也被集成到了eMcem模块中,包括错误注册,获取错误信息等,详情请参考SPD源码eMcem_XbicApi.c和eMcem_XbicApi.h。
2.3 ECC
ECC其实就不用说太多了,S32K3对其内部的Memory,包括Cache,TCM,RAM,FALSH都提供了ECC检测机制,在介绍EIM,ERM,FCCU的时候就对其进行了详细介绍,另外ECC的检测也是默认使能的。ECC检测到错误时,会被ERM模块捕捉,也会汇报给FCCU模块,同时还能触发BusFault,在这里就不多作介绍了。
3 一个手段
除去上方介绍的三个保障,S32K3还为数据完整性提供了一个硬件手段,那就是CRC校验硬件模块,可以帮助用户快速计算CRC值,在MCAL中CRC有一个单独的模块Crc。关于CRC的使用,在这里就不多说了,大家可参考RTD中的自带的示例。
END
小猫爪:S32K3学习笔记17-S32K3之数据完整性的保障和手段相关推荐
- 小猫爪:S32K3学习笔记05-S32K3之ADC
小猫爪:S32K3学习笔记05-S32K3之ADC 1 前言 2 资源简介 3 ADC功能详解 3.1 ADC mux-mode channels 3.2 ADC内部框架 3.3 时钟源 3.4 通道 ...
- 小猫爪:S32K3学习笔记10-S32K3之EIM和ERM
小猫爪:S32K3学习笔记10-S32K3之EIM和ERM 1 前言 2 EIM(Error Injection Module) 3 ERM(Error Reporting Module) 4 MCA ...
- 小猫爪:S32K3学习笔记09-S32K3之Safety简介
小猫爪:S32K3学习笔记09-S32K3之Safety简介 1 前言 2 Safety相关硬件介绍 3 Safety相关软件介绍 4 Safety文章目录 END 1 前言 接下来,就要开始进学 ...
- 小猫爪:S32K3学习笔记11-S32K3之FCCU
小猫爪:S32K3学习笔记11-S32K3之FCCU 1 前言 2 FCCU的功能框图 2.1 错误输入 2.2 时钟输入 2.3 FSM 2.4 FOSU 3 FCCU的状态机 4 MCAL配置 5 ...
- 小猫爪:S32K3学习笔记04-S32K3之LCU
小猫爪:S32K3学习笔记04-S32K3之LCU 1 前言 2 LCU的框架 3 LC逻辑运算单元 3.1 input&output&sync&force 3.2 LUT b ...
- 小猫爪:S32K3学习笔记21-S32K3之SAF及其应用
小猫爪:S32K3学习笔记21-S32K3之SAF及其应用 1 前言 2 SAF简介 3 SAF框架 4 SAF组件 4.1 eMcem和Bist 4.2 sReco 4.3 mSel 4.4 sBo ...
- 小猫爪:S32K3学习笔记03-S32K3之eMIOS
小猫爪:S32K3学习笔记03-S32K3之eMIOS 1 前言 2 eMIOS资源介绍 3 CNT和Counter Bus 4 UC的工作模式 4.1 General-Purpose Input a ...
- 小猫爪:S32K3学习笔记18-S32K3之Safety外设总结
小猫爪:S32K3学习笔记18-S32K3之Safety外设总结 总结 END 总结 在前面已经对S32K3对功能安全这一块相关的外设大致都介绍了一遍,这篇文章就来对S32K3与Safety有关的 ...
- 小猫爪:S32K3学习笔记20:S32K3之SCST及其应用
小猫爪:S32K3学习笔记20:S32K3之SCST及其应用 1 前言 2 SCST简介 3 移植 4 应用 4.1 启动测试 4.2 使能FPU相关测试项 4.3 49号测试项中的MPU配置 4.4 ...
最新文章
- Nvidia、Intel、AMD技术人员薪资大揭秘:平均薪酬超20万$,英伟达最高近35万美元...
- ajax技术如何实现,ajax技术的基本原来以及实现过程
- python if条件判断_python if not in 多条件判断代码
- tomcat部署web應用時涉及到的基本概念
- 最全三大框架整合(使用映射)——struts.xml和web.xml配置
- mongo数据库和mysql数据库的区别_Mongodb与mysql数据库的区别
- java方法能不能继承方法_关于java:方法链接+继承不能很好地一起玩吗?
- 二叉树建立及中序遍历C++语言实现
- JVM-内存溢出场景模拟
- 汉字笔顺口诀_一帮40后理工男编出新型字典,《笔顺码字典》在汉首发
- 2.微型计算机系统的基本结构及计算机各个部件的功能
- 艾伟_转载:VS2008连接SQL Server数据库文件出错的解决方案
- iOS 9 Safari广告拦截插件
- 解决ueditor百度富文本编辑器图片可以上传但是在线管理图片无法显示
- 韩国国立全北大学入学简介
- [通讯方式] 串口通信
- jQuery(javascript) 与Vue有什么区别
- linux分析gre中断问题,linux – 无法删除GRE隧道
- hdu4069 Squiggly Sudoku
- bing搜索分析网站的方法
热门文章
- C# winform项目使用腾讯云人像变换api对选定图片进行人像动漫化
- lInux常用命令上(文件、远程管理相关)
- 教你如何查看win10系统日志
- python输入数字成数组_numpy使用digitize将数字转换为分类(文本)数组
- 湖北师范大学计信2018届操作系统实训(参考答案)
- 支付宝手机网页支付java demo调试问题和解决办法
- 解决<tx:attributes>标红,元素tx:attributes不允许在这里
- Windows Mobile, WinCe使用 .NET Compact Framework 进行3G和RAS应用的开发
- 剑指offer 附加1. 删除链表中的重复结点
- 图的各个英文单词区别