一、基础信息
s32k144内存分布:
这边主要关注FlexNVM这块区域,大小为64k。这是一个可配置的闪存块,可用作额外的闪存空间(D-flash)、支持增强型 EEPROM 功能的存储器(E-flash)或 作为两者的组合。(所以使用eep之前需要进行分区)
【ps】Davinci的第三方库导入工具并没有将Fee模块成功导入,这里是将mcal包fee文件夹里的Fee.epd文件直接修改后缀为arxml复制到davinci包的BSWMD\Mcal_S32k文件夹底下(暂不清楚会不会有什么问题)
二、基本概念
Logical sector 可以被擦除的最小区域
Page 硬件定义的一次可写入最小单位
三、配置(使用FLS)
1.FLS
FlsConfigSet
FlsSector(物理sector,s32k144划分的大小是2k一个sector)
NonAutosar
根据UM手册
2.FEE
FeeGeneral
FeeCluster(至少有两个)(一个中包含多个FeeSector)
FeeSector(不同的FeeSector要关联不同的FlsSector)
FeeBlockConfiguration(对应NVM block)
四、配置(使用EEP)
1.EEP
EepGeneral
EepInitConfiguration
回调函数可以不配置,循环调用Ea_MainFunction,Eep_MainFunction,但是Job Call Cycle这个配置项没用,Eep_MainFunction这个函数的调用周期为5ms(没找到修改的办法),将Ea_MainFunction也配置成5ms了。
2.Ea
EaPartitionConfiguration(根据需要划分相应的partition)
EaGeneral
加一下API
EaBlockConfiguration(对应NVMblock,见下方NVM配置)
3.代码
在使用eep之前,需要对FlexNVM区域进行分区,这段配置只能通过代码完成。
EEPROM在s32k144中只有4kb大小。
五、NVM配置
1.develop
添加service port 函数原型
函数中添加以生成rte接口
添加地址映射,方面内存排布(这一步可以没有)
2.configure
打开configure同步刚刚变更
生成相应的Ea/Fee
配置EA信息
记得勾上
service port需要链接上,否则rte会生成未连接的内容