首页 > 其他分享 >使用EB配置Fls驱动

使用EB配置Fls驱动

时间:2022-12-28 18:57:32浏览次数:27  
标签:启用 Fls 指定 EB api 用于 驱动 NvM fls

  1. 概述
    1. FLS驱动程序根据AUTOSAR为DFlash 0的初始化、读、写和擦除提供了定义良好的配置和标准服务。除此之外,还提供了一些非autosar服务,例如Fls_17_Dmu_CompareWordsSync, Fls_17_Dmu_CancelNonEraseJobs, Fls_17_Dmu_VerifyErase,Fls_17_Dmu_VerifySectorErase, Fls_17_Dmu_GetNotifCaller等等。用户通过FLS驱动程序获得对底层DFlash0的封装访问。FLS驱动程序的作用域仅限于DFlash0 Bank。
  1. 中断路由器由IRQ驱动程序或用户软件配置。中断模式是在不使用英飞凌FEE的情况下使用FLS。英飞凌FEE仅支持轮询模式,因此不支持中断模式。
  2. flsloader和FLS驱动程序使用DMU IP模块。FLS在运行时使用,FLSLOADER驱动在引导期间使用。因此,对DMU寄存器的访问不是并发的。

 

  1. 依赖资源

 

  1. 详细配置

container:FlsConfigSet 中包含fls驱动的详细配置;

FlsAcErase 用于指定执行擦除命令循环的RAM地址,在TC3xx中,Pflash和Dflash可以并行读取,不需要加载Dflash访问代码RAM,因此不使用此值,默认为0即可;

FlsAcWrite 用于指定执行写命令循环的RAM地址,在TC3xx中,Pflash和Dflash可以并行读取,不需要加载Dflash访问代码RAM,因此不使用此值,默认为0即可;

FlsCallCycle 用于指定fls主函数的调用周期,单位为秒,这里设置周期为10ms;

FlsDefaultMode 用于选择DFLASH0的默认读取模式,支持MEMIF_MODE_FAST和MEMIF_MODE_SLOW 2种模式,默认选择MEMIF_MODE_SLOW即可;

FlsJobEndNotification 用于添加Job传输结束后的回调通知函数,并由用户在代码中实现同名函数;

FlsJobErrorNotification 用于添加Job传输错误后的回调通知函数,并由用户在代码中实现同名函数;

FlsEraseVerifyErrNotif 用于添加擦除校验错误后的回调通知函数,并由用户在代码中实现同名函数;

FlsProgVerifyErrNotif 用于添加数据编程校验错误后的回调通知函数,并由用户在代码中实现同名函数;

FlsMaxReadFastMode 用于指定Fls驱动在快速模式下,一个周期内Job处理的最大读取字节数,FlsMaxReadFastMode配置的值应该大于FlsMaxReadNormalMode配置的值;

FlsMaxReadNormalMode 用于指定Fls驱动在正常模式下,一个周期内Job处理的最大读取字节数;

FlsMaxWriteFastMode 用于指定Fls驱动在快速模式下,一个周期内Job处理的最大写入字节数;

FlsMaxNormalMode 用于指定Fls驱动在正常模式下,一个周期内Job处理的最大写入字节数;

FlsProtection 用于指定需要保护的地址,由于fls驱动中不支持,因此使用默认值0即可;

FlsWaitStateRead 用于定义读访问的等待状态,使用默认值FLS_17_DMU_WAIT_STATE_READACCESS9即可;

FlsWaitStateErrorCorrection 用于指定错误纠正等待状态,使用默认值FLS_17_DMU_WAIT_STATE_ERRORCORRECTION1即可;

FlsDemEventParameterRefs 用于指定诊断事件的管理和引用,本例中并未使用;

FlsExternalDriver 用于指定外部fls器件的相关配置,fls驱动只使用片内DFLASH0,因此这里无需配置;

FlsSectorList 用于指定DFLAH0中各分区的布局信息以及各块存储的数据类型;本例中将DFLASH0分为两个大块,一块是FlsSector_NvM块,一块是FlsSector_QS块,分别用来存储NvM类型和QS类型的数据;

FlsNumberOfSectors 用于指定分区块使用NvM类型还是QS类型,因为NvM类型数据需要使用双扇区算法,因此此值为2表示此sector用作NvM块,存储NvM类型数据;此值为1表示此sector用作QS块,存储QS类型数据;

FlsPageSize 用于指定页操作的数据大小,默认8字节数据为一页,使用默认值即可;

FlsSectorSize 用于指定单个sector的大小,此值须小于DFLASH0物理存储的总大小的一半;同时注意如果将sector分配为NvM类型时,此值表示一个扇区的大小,而不是NvM块的总大小(NvM采用双扇区算法,一个NvM块中有2个小的sector);

FlsSectorStartAddress 用于指定此sector在DFLASH0中的开始偏移量,此值是相对偏移量值,不是真实物理地址值,此值须小于DFLASH0物理存储的总大小;

 

FlsSector_NvM块和FlsSector_QS块配置信息:芯片的DFLASH0总大小为0x100000,本例中FlsSector_NvM块分配了0xC0000,FlsSector_QS块分配了0x40000;因此NvM块的起始地址是0,QS块的起始地址是0xc0000,

NvM块中一个sector大小为0x60000,QS块中一个sector的大小为0x40000;

 

NvM类型存储块和QS类型存储块在DFLASH0中的布局和关系:

 

container:FlsGeneral 中包含fls驱动的通用配置

FlsAcLoadOnJobStart 在TC3xx中,Pflash和Dflash可以并行读取,因此不需要将Dflash访问代码加载到RAM中,因此此项不可编辑且使用默认值false即可;

FlsBaseAddress 用于指定fls驱动使用的DFLASH0外设的真实物理基础地址0xaf000000;

FlsBlankCheckApi 是否启用块检查api,默认禁用;

FlsInitCheckApi 是否启用初始化检查api,默认禁用;

FlsCancelApi 是否启用取消api,本例中启用;

FlsCompareApi 是否启用比较api,本例中启用;

FlsDevErrorDetect 是否启用开发错误侦测api,本例中禁用;

FlsRunTimeErrorDetect 是否启用运行时错误侦测api,本例中禁用;

FlsSafetyEnable 是否启用安全模式api,本例中禁用;

FlsIfxFeeUse 是否启用fee驱动,本例中启用,如果不用fee驱动则此处须设置禁用;

FlsDriverIndex 用于指定fls驱动的序号;

FlsGetJobResultApi 是否启用获取Job结果api,本例中启用;

FlsGetStatusApi 是否启用获取结果api,本例中启用;

FlsSetModeApi 是否启用设置模式api,本例中启用;

FlsTotalSize 用于指定DFLASH0的总大小,0x100000;

FlsUseInterrupts 是否启用fls中断,默认禁用;

FlsVersionInfoApi 是否启用版本信息api,默认禁用;

FlsInitApiMode 用于指定初始化api的运行等级为SUPERVISOR;

FlsRuntimeApiMode 用于指定运行时api的运行等级为SUPERVISOR;

 

container:FlsPublishedInformation 中包含fls驱动物理器件的电气参数信息;这些项都是不可编辑的,因此使用默认值即可,更多信息请参阅原始文档获取;

 

container:FlsIfxSpecificConfig 中包含fls驱动适用于英飞凌的特殊配置;

FlsStateVarStruct 此参数用于提供包含特定于fls驱动程序的整个全局变量的结构的名称,用户可以修改(建议使用默认值),并在代码中以静态全局变量的形式存在;

FlsUseEraseSuspend 用于启用或禁用fls擦除挂起和擦除恢复功能,默认禁用;

FlsEraseSuspendTimeout 用于指定擦除挂起超时时间,默认无须修改;

FlsIllegalStateNotification 用于设定非法状态的通知回调函数,并由用户在代码中实现函数定义;

 

container:CommonPublishedInformatica 中是软件自动生成的版本号默认值,用户无需修改,保持默认即可。

标签:启用,Fls,指定,EB,api,用于,驱动,NvM,fls
From: https://www.cnblogs.com/lance9527/p/17011022.html

相关文章

  • WebStorm 工具的简单配置的使用
    1.系统设置1.1自动保存设置1.2模板代码可根据自己需要设置相应的模板代码1.3prettierPrettier一般不需自己配置,当在文件中鼠标右键无ReformatwithPrettier......
  • Web 批量大文件上传下载
    ​ 文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法......
  • Index Rebuild – Does it use the Index or the Table
    Acommonquestionthatgetsaskedis doesOracleaccesstheindexitselfortheparenttable duringanindexrebuildtoextractthenecessarydatafortheind......
  • qBittorrent Enhanced Edition on Debian (Ubuntu, etc)
    https://github.com/c0re100/qBittorrent-Enhanced-Edition https://launchpad.net/~poplite/+archive/ubuntu/qbittorrent-enhanced sudoadd-apt-repositoryppa:......
  • HITCON2022--ctf驱动逆向题
    作者:selphHITCONCTF2022Writeup-checker挺有意思的一道题,这里的关键函数是使用的动态生成执行操作,按照特定参数序列进行解密才能正常执行,否则一定会报错异常checker......
  • WEB应用安全测试丨Acunetix功能简介
    快速查找并修复使您的Web应用程序面临攻击风险的漏洞。享受更多的安心——无需花费更多有限的时间。  产品功能发现与爬行01、发现所有......
  • web前端招聘有什么要求?薪资待遇如何?
    1、web前端不同阶段薪资待遇如何?目前Web前端工程师可谓是佼佼者,如下:工作1~2年后通常会成为Web前端软件工程师,年薪可以达到15万以上;工作3-5年后通常可以成为Web前端技......
  • jupyter notebook 快捷键
    目录​​编辑模式​​​​运行当前行​​​​运行当前行后在插入一行​​​​代码补全​​​​方法提示​​​​删除当前行​​​​跳到单元开头​​​​跳到单元末尾​​​......
  • jupyter notebook中运行pyspark代码
    前提是windows下安装pyspark​​设置连接​​用jupyternotebook编写pyspark代码frompyspark.sqlimportSparkSession#环境配置spark=SparkSession.builder.master("lo......
  • web开发中会话跟踪的方法
    为什么要对会话进行跟踪?主要原因是因为 HTTP请求是无状态的;只有当用户发出请求时,服务器才会做出响应,客户端与服务端之间的联系是离散的、非连续的;如果用户想在同一个网......