基于Autosar架构下Fls相关函数的使用方法(S32K146)

本文介绍了Mcal库中的Fls_Write、Fls_Erase和Fee_Write函数使用方法,重点讲解了地址对齐、长度要求以及Fee初始化时关于Cluster和DFlash的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

总结如下几个函数的使用方法:
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
    在这里插入图片描述
    在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/5fbc8019843240eaa885dc882e78f01d.pn在这里插入图片描述在这里插入图片描述
5、Fee进行初始化时有如下特点:
在这里插入图片描述
①该任务会在DFlash中以ClusterGroup为单位创建Cluster头信息,且只有组内的第一页会创建该信息
②初始化时回去遍历所有的Cluster头信息
总结:在调用Fee_Init(NULL_PTR)时,程序会以GROUP为单位创建Cluster头。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值