目 录CONTENT

文章目录

NXP实战笔记(十一):32K3xx基于RTD-SDK在S32DS上配置DFLASH、MemAcc、Fee

moke
2024-07-10 / 0 评论 / 0 点赞 / 78 阅读 / 0 字

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操作地址是块的从下到上的。

博主关闭了所有页面的评论