目录
1、概述
2、RTD-SDK配置之Cache_Ip
3、RTD-SDK配置之Mem_43_InFls
4、RTD-SDK配置之MemAcc
5、RTD-SDK配置之Fee
6、代码示例
1、概述
S32K3目前安装的RTD普遍使用的是R22-11版本的AUTOSAR规范,作为一直使用AUTOSAR4.2.2的程序员来讲,属实迭代快乐一些,其实也怪不得更新快,假设自己每年都会看变化,其实也是能跟上的,更多的是自己不思进取吧,加油,打工人,方法在,学起来也快,自信还是要有的!
DFLASH文档里面有描述,MemACC\FEE在手册里面并没有介绍,其属于抽象层的组件。
在RTD-SDK里面可以实现的,包含DF、MemAcc、Fee,结构如下:
RM手册描述DF如下:
这些能后分的块也是有限制的
这块其实介绍的不多,具体手册描述可以看RM的第21章节,下面进入正题的配置环节。
总共要配置的环节如下
2、RTD-SDK配置之Cache_Ip
这个Cache是必须要配置的
3、RTD-SDK配置之Mem_43_InFls
此处显示了为什么要使能Cache,NXP的这块数据传输是在Cache里面的,DMA是不需要Cache的。
Mem实例如下:Fee至少需要两个大的块进行切换,所以此处DF至少也要分两个块进行实现。
4、RTD-SDK配置之MemAcc
MemAcc Mem Invocation :这个选择比较重要的
DIRECT STATIC:内存驱动程序与应用程序链接。memm业务函数由MemAcc直接调用。Mem_Init由EcuM调用,Mem_MainFunction由SchM触发。
INDIRECT_DYNAMIC: Mem驱动程序链接为单独的二进制文件,并动态激活。MemAcc将使用Mem驱动头表来调用Mem服务函数。Mem_Init和Mem_MainFunction的调用由MemAcc处理。
INDIRECT_STATIC:内存驱动程序链接到应用程序。MemAcc将使用Mem驱动头表来调用Mem服务函数。Mem_Init和Mem_MainFunction的调用由MemAcc处理。
5、RTD-SDK配置之Fee
下面这个必选的
FeeGeneral
虚拟页大小:8Bytes
Fee Data Buffer Size:每次mainfunction最大处理的字节数。
设置两个块
设置FEE块,这个块要与NVM的块对应起来。
6、代码示例
1、初始化
MemIf_StatusType status = MEMIF_IDLE;/* Init MemAcc */MemAcc_Init(NULL_PTR);/* Init Fee */Fee_Init(NULL_PTR);do{Fee_MainFunction();MemAcc_MainFunction();status = Fee_GetStatus();} while (status != MEMIF_IDLE);
2、周期调用代码
Fee_MainFunction();MemAcc_MainFunction();
3、操作代码
FEE写
Fee_Write(FeeConf_FeeBlockConfiguration_FeeBlockConfiguration_0,DataBufferPtr);
FEE读
Fee_Write(FeeConf_FeeBlockConfiguration_FeeBlockConfiguration_1,DataBufferPtr);
注意一下:NXP的Fee操作地址是块的从下到上的。