学习目标:
总结如下几个函数的使用方法:
Fls_Write(TargetAddress,* SourceAddressPtr, Length);
Fls_Erase(TargetAddress, Length);
Fee_Write( BlockNumber, *DataBufferPtr)
以及Mcal配置完Fee后反应再Flash上的特点
学习内容:
1、Fls_Write(TargetAddress,* SourceAddressPtr, Length)
TargetAddress:MCAL配置Fls时Fls Sector Star Address ,逻辑地址。比如下图,这里一定要注意填入的地址要与Sector的首地址对齐
- SourceAddressPtr:没啥特殊的,你要写入数据的地址
- Length:这里要注意,该长度一定要与Flash页大小对齐,mcal中也有页长度的配置,不同Flash的页长度不同。
Autosar架构中,该函数执行结束后并回来立即写入Flash,而是要通过调用 Fls_MainFunction();来开启Job
2、Fls_Erase(TargetAddress, Length)
TargetAddress:同上,逻辑地址,且为Sector首地址
Length:固定为一个Sector的小,S32K146中一个sector大小2048byte
同样,调用该函数后需要通过Fls_MainFunction()来开启擦除任务。
3、Fee_Write( BlockNumber, *DataBufferPtr)
BlockNumber:mcal中配置的group号
DataBufferPtr:写入数据地址
注意,该函数写入数据长度与Fee Virtual Page Size对齐,本应用中配置为32byte。且数据写入位置为当前
4、Fee初始化时会生成对应的Cluster头信息,该信息是每一个Fee的Group生成一个(内部的Cluster公用这一个头信息)。比如本项目FLAG_Groupd内部有两个Cluster,每个Cluster只配置一个Sector
时,程序会以GROUP为单位创建Cluster头。