小猫爪:S32K3学习笔记17-S32K3之数据完整性的保障和手段

小猫爪:S32K3学习笔记17-S32K3之数据完整性的保障和手段

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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猫爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值