【简介】
在上一篇帖子(【S32K3XX】Flash驱动使用)介绍了S32K3芯片的 C40 IP 的flash驱动的适配方法。我们基于上一篇的基础上继续了解驱动实现的细节。
【flash 的擦除操作】
以下是NXP 的RM 文档中对 flash 的擦除流程说明。

我们结合这个流程查看和理解驱动代码的实现:
Step1:
上述的流程的第一步是将逻辑地址可以通过 PFC 的寄存器来写入,写入后逻辑地址会同步更新并映射到PEADR寄存器,从而完成地址信息的配置。

Step2:
配置完要擦除的地址信息后,需要配置ERS 信号和ESS 信号通知C40IP 需要进行擦除操作 及 擦除的大小的信息配置,RTD的驱动接口是按照单独的sector 来擦除的所以未配置ESS信号只配置了ERS.

对应ESS 的配置说明如下

Step3:
擦除的基本信息配置完成后就可以配置MCR[EHV]信号来启动擦除流程了。

Step4:
等待擦除流程结束可以读取MCRS[DONE]信号,之后都取MCR[PEG]信号来确认擦除是否成功
DONE 信号在擦除 sequences 结束后会置1.

PEG 代表擦除写入是否成功

Step5:
善后处理清除 ERS EHV 信号。
【flash 的写操作】
NXP 的RM 文档中对 flash 的写入流程说明如下

如上的写入流程和上述擦除流程基本一致只是多了第二步的数据写入Data 寄存器的过程,其他的和擦除是一致的再此就不重复赘述了。
我要赚赏金
