AUTOSAR-Fee模块

  • 0 前言
  • 1 Fee模块的设计原理
    • 1.1 逻辑扇区和双扇区算法
    • 1.2 逻辑块和地址空间
    • 1.3 立即数据和阈值空间
    • 1.4 配置指针和状态指针
  • 2 Fee模块的C语言实现
    • 2.1 C文件架构
    • 2.2 使用到的类定义和状态枚举
    • 2.3 配置指针和状态指针
    • 2.4 Fee模块提供的API
      • Fee_Init
      • Fee_MainFunction
      • Fee_Read
      • Fee_Write
      • Fee_Cancel
      • Fee_GetStatus
      • Fee_GetJobResult
      • Fee_SetMode
    • 2.5 Fee模块提供的Callback
      • Fee_JobEndNotification
      • Fee_JobErrorNotification
    • 2.6 Fee模块使用的外部API
      • Det_ReportError
      • Mcal_ReportSafetyError
    • 2.7 Fee模块使用的外部Callback
      • NvM_JobEndNotification
      • NvM_JobErrorNotification
  • 3 Fee模块的DaVinci Configurator配制
    • 3.1 Fee\FeeBlockConfigurations
      • Device Index
      • Blcok Number
      • Blcok Size
      • Immediate Data
      • Number Of Write Cycles
      • Quasi Static Manager
      • Qs Block Address
      • Qs Block Instances
    • 4.2 Fee\FeeGeneral
      • Main Function Period [s]
      • Virtual Page Size
      • Polling Mode
      • Block Type Configured
      • Nvm Job End Notification
      • Nvm Job Error Notification
      • Qs Job End Notification
      • Qs Job Error Notification
      • Dev Error Detect
      • Safety Enable
      • Init Check Api
      • Set Mode supported
      • Version Info Api
    • 3.3 Fee\FeeIfxSpecificConfig
      • Cancel All Api
      • Erase All Enable
      • Gc Restart
      • Get Cycle Count Api
      • Get Prev Data Api
      • Max Block Count
      • Max Bytes Per Cycle
      • Nvm Illegal State Notification
      • Qs Harden Error Notification
      • Qs Illegal State Notification
      • State Var Struct
      • Threshold Value
      • Um Config Blk Overflow Handler
      • Um Config Block
      • Use Erase Suspend
      • Virgin Flash Illegal State
    • 3.4 Fee\FeeDemEventParamterRefs
      • E GC ERASE
      • E GC INIT
      • E GC READ
      • E GC TRIG
      • E GC WRITE
      • E INVALIDATE
      • E READ
      • E UNCONFIG BLK EXCEEDED
      • E WRITE
      • E WRITE CYCLES EXHAUSTED

0 前言

>>返回AUTOSAR系列文章目录<<

Fee模块全称Flash EEPROM Emulation Module,属于ECU抽象层

Fee模块本身是脱离硬件的,但是Fee模块可能会引用的Fls模块定制API,所以只能算半抽象

本文中,由于Fls模块提供的API都是Fls_17_Dmu打头的非标准API,所以Fee模块也必须使用英飞凌的定制版本

Fee模块最精简任务包括:

  • 提供一个常量配制指针,供EcuM模块对其进行初始化
  • 提供一个状态指针,供NvM模块了解其内部信息
  • 实现双扇区算法、立即写
  • 收到MemIf模块指令后,将32位地址空间解析为物理地址,传递给Fls模块执行
  • Fls模块完成一个操作后,通过回调函数自动向NvM模块报告

1 Fee模块的设计原理

1.1 逻辑扇区和双扇区算法

在【AUTOSAR-Fls模块】2.1 Flash Emulation EEPROM已经介绍在Fls模块层面上的Flash Emulation EEPROM原理

Fee模块层面上,首先将所管辖的Flash分为分区(Partition),每个Fls模块的FlsSector为一个Partition(通常只有1个)

每个Partition分为2个逻辑扇区(FeeLogicalSector),也称为Virtual Sector,等价于Fls模块的FlsPhysicalSector

Fee模块以FeeLogicalSector为单位进行Erase操作

双扇区算法换扇区过程在英飞凌中称为GC(Garbage Collection)

GC过程:

  1. Fee模块会先获取两个FeeLogicalSector的状态,假设FeeLogicalSector0状态为Actived,FeeLogicalSector1状态为Not Actived
  2. 需要存储的数据写入FeeLogicalSector0
  3. 当FeeLogicalSector0存满后,把FeeLogicalSector0中的各个Block的最新数据copy到FeeLogicalSector1,同时将FeeLogicalSector1状态置为Actived
  4. 将FeeLogicalSector0里的数据全部Erase,同时将FeeLogicalSector0的状态置为Not Actived
  5. 新到的数据就依次存到FeeLogicalSector1
  6. 当FeeLogicalSector1存满后,再将FeeLogicalSector1中各个Block的最新数据copy到FeeLogicalSector0;同时将FeeLogicalSector0状态置为Actived
  7. 擦除FeeLogicalSector1里的数据,同时将FeeLogicalSector1的状态置为Not Actived
  8. 如此循环往复

1.2 逻辑块和地址空间

Fee模块向上层提供32位虚拟地址空间(Virtual Linear Address Space),其中

  • 前16位为Block Number,最多允许65536个逻辑块(Logical Block
  • 后16位为Block Offset,,即数据在Block中的偏移地址,每个Logical Block最大64K byte

Fee模块地址最小单位为Virtual Page,当前AUTOSAR下Virtual Page必须为8 byte

每个Logical Block首地址必须与一个VirtualPage首地址对齐,Logical Block尾地址如果不与一个Virtual Page对齐,则自动添加unused地址,对齐到最近的VirtualPage尾地址

Logical Block的Block Number是由NvM模块决定的,唯一但不连续


1.3 立即数据和阈值空间

包含即时数据(Immediate Data)的块必须即时写入,不允许出现Immediate Data写到一半,突然发现FeeLogicalSector0写不下,要等待换扇区的情况

为了避免这一情况,在FeeLogicalSector上设定阈值空间(Threshold Value),当FeeLogicalSector上剩余空间小于Threshold Value时,自动触发换扇区操作

显然Threshold Value必须大于所有包含Immediate Data的Logical Block的和

Immediate Write是最高优先级操作,NvM模块会取消正在进行的低优先级Read/Erase/Write或Compare作业

1.4 配置指针和状态指针

Fee模块作为ECU抽象层的模块,需要在Fls模块后初始化

Fee模块需要一个用const修饰的静态外部变量Fee_Config存放模块初始化时所需的配置参数,Fee_Config保存在数据段(.data)

Fee模块需要一个静态外部变量FeeStateVar存放模块状态参数,FeeStateVar保存在未初始化段(.bss)。Fee模块每一个操作中都需要读取或修改FeeStateVar


>>返回AUTOSAR系列文章目录<<


2 Fee模块的C语言实现

2.1 C文件架构

静态文件 描述
Fee.h 包含API所需的状态枚举常量、类定义、状态指针FeeStateVar声明
Fee.c API代码
Fee_Cbk.h Callback Function声明
动态文件 描述
StartApplication_Fee_ecuc.arxml Configurator生成的本地配置文件
Fee_Bswmd.arxml
Fee_Cfg.h 包含项目所需的常量宏定义、开关宏定义
Fee_PBcfg.h 包含配制指针Fee_Config声明
Fee_PBcfg.c 包含配制指针Fee_Config赋值

2.2 使用到的类定义和状态枚举

MemIf定义的类 描述 定义来源
MemIf_StatusType 描述Fls模块的Module Status
1.MEMIF_UNINIT
模块未初始化
2.MEMIF_IDLE
没有需要处理的job
3.MEMIF_BUSY
模块正在处理job,不接受新job
MemIf_Types.h
MemIf_JobResultType 描述Fls模块的Job Result
1.MEMIF_JOB_OK
job处理成功
2.MEMIF_JOB_FAILED
job处理以error结束
3.MEMIF_JOB_PENDING
job正在处理
4.MEMIF_JOB_CANCELLED
job已经取消
MemIf_Types.h
MemIf_ModeType 描述Fls模块的Processing Mode
1.MEMIF_MODE_SLOW
Slow模式
2.MEMIF_MODE_FAST
Fast模式
MemIf_Types.h
Std定义的类 描述 定义来源
Std_ReturnType 描述Job Request结果
1.E_OK
对同步指令,表示指令执行成功
对异步指令,表示指令被队列接受
2.E_NOT_OK
对同步指令,表示指令执行失败
对异步指令,表示指令被队列拒绝
Std_Type.h

2.3 配置指针和状态指针

  • 配置指针Fee_ConfigFee_PBcfg.c中赋值,示例如下:
const Fee_ConfigType Fee_Config =
{/* State结构体指针,未赋值 */.FeeStatePtr = &(Fee_StateDataType)FeeStateVar,/* Pointer to Logical Block configuration */.FeeBlockConfigPtr = &(Fee_BlockType)Fee_BlockConfig[0],/* Fee Job End Notification Api */.FeeNvMJobEndNotificationPtr = &(Fee_NotificationPtrType)NvM_JobEndNotification, /* Fee Job Error Notification Api */.FeeNvMJobErrorNotificationPtr = &(Fee_NotificationPtrType)NvM_JobErrorNotification, /* Fee threshold value */.FeeThresholdLimit = (uint32)1024U,/* Number of block configurated */.FeeBlkCnt = (uint16)81U,/* Fee settings for unconfigured blocks and GC restart */.FeeGCConfigSetting = {/* Treatment to unconfigured blocks */.FeeUnconfigBlock = FEE_UNCONFIG_BLOCK_IGNORE, /* when Garbage Collection restart */.FeeGcResertPoint = FEE_GC_RESTART_INIT, /* Enable or disable Erase Suspend feature */.FeeUseEraseSuspend = FEE_ERASE_SUSPEND_DISABLE, /* Reserved */.unused = 0U, }, // Fee_GCConfigType/* Fee Illegal State Notification */.FeeNvMIllegalStateNotification = (Fee_NotificationPtrType)NULL_PTR,/* Fee QS Illegal State Notification */.FeeQsIllegalStateNotification = (Fee_NotificationPtrType)NULL_PTR,/* Fee Hardening Error Notification */.FeeQsHardenErrorNotification = (Fee_NotificationPtrType)NULL_PTR,/* Enable or disable Erase All feature */.FeeEraseAllEnable = (boolean)True
}
  • 状态指针FeeStateVarFee.h中定义类型,在Fee_PBcfg.c中声明
typedef struct
{/* Fee Sector Info */Fee_SectorInfoType FeeSectorInfo[FEE_SECTORS];/* Fee Cache Info */Fee_CacheType FeeBlockInfo[FEE_TOTAL_BLOCK_COUNT];/* Last Written Block Info */Fee_LastWrittenBlkInfoType FeeLastWrittenBlkInfo;/* Current Block Being Written during GC */Fee_GcBlkInfoType FeeGcCurrBlkInfo;//以下省略
}Fee_StateDataType;
Fee_StateDataType FeeStateVar;

2.4 Fee模块提供的API

Fee_Init

void Fee_Init(Fee_ConfigType* Fee_Config)
#mermaid-svg-jz1iX2HaWl2gvZzz .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .label text{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .node rect,#mermaid-svg-jz1iX2HaWl2gvZzz .node circle,#mermaid-svg-jz1iX2HaWl2gvZzz .node ellipse,#mermaid-svg-jz1iX2HaWl2gvZzz .node polygon,#mermaid-svg-jz1iX2HaWl2gvZzz .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-jz1iX2HaWl2gvZzz .node .label{text-align:center;fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .node.clickable{cursor:pointer}#mermaid-svg-jz1iX2HaWl2gvZzz .arrowheadPath{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-jz1iX2HaWl2gvZzz .flowchart-link{stroke:#333;fill:none}#mermaid-svg-jz1iX2HaWl2gvZzz .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-jz1iX2HaWl2gvZzz .edgeLabel rect{opacity:0.9}#mermaid-svg-jz1iX2HaWl2gvZzz .edgeLabel span{color:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-jz1iX2HaWl2gvZzz .cluster text{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-jz1iX2HaWl2gvZzz .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-jz1iX2HaWl2gvZzz text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-jz1iX2HaWl2gvZzz .actor-line{stroke:grey}#mermaid-svg-jz1iX2HaWl2gvZzz .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-jz1iX2HaWl2gvZzz #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .sequenceNumber{fill:#fff}#mermaid-svg-jz1iX2HaWl2gvZzz #sequencenumber{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz #crosshead path{fill:#333;stroke:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .messageText{fill:#333;stroke:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-jz1iX2HaWl2gvZzz .labelText,#mermaid-svg-jz1iX2HaWl2gvZzz .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-jz1iX2HaWl2gvZzz .loopText,#mermaid-svg-jz1iX2HaWl2gvZzz .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-jz1iX2HaWl2gvZzz .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-jz1iX2HaWl2gvZzz .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-jz1iX2HaWl2gvZzz .noteText,#mermaid-svg-jz1iX2HaWl2gvZzz .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-jz1iX2HaWl2gvZzz .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-jz1iX2HaWl2gvZzz .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-jz1iX2HaWl2gvZzz .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-jz1iX2HaWl2gvZzz .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .section{stroke:none;opacity:0.2}#mermaid-svg-jz1iX2HaWl2gvZzz .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-jz1iX2HaWl2gvZzz .section2{fill:#fff400}#mermaid-svg-jz1iX2HaWl2gvZzz .section1,#mermaid-svg-jz1iX2HaWl2gvZzz .section3{fill:#fff;opacity:0.2}#mermaid-svg-jz1iX2HaWl2gvZzz .sectionTitle0{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .sectionTitle1{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .sectionTitle2{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .sectionTitle3{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-jz1iX2HaWl2gvZzz .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .grid path{stroke-width:0}#mermaid-svg-jz1iX2HaWl2gvZzz .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-jz1iX2HaWl2gvZzz .task{stroke-width:2}#mermaid-svg-jz1iX2HaWl2gvZzz .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .taskText:not([font-size]){font-size:11px}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-jz1iX2HaWl2gvZzz .task.clickable{cursor:pointer}#mermaid-svg-jz1iX2HaWl2gvZzz .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-jz1iX2HaWl2gvZzz .taskText0,#mermaid-svg-jz1iX2HaWl2gvZzz .taskText1,#mermaid-svg-jz1iX2HaWl2gvZzz .taskText2,#mermaid-svg-jz1iX2HaWl2gvZzz .taskText3{fill:#fff}#mermaid-svg-jz1iX2HaWl2gvZzz .task0,#mermaid-svg-jz1iX2HaWl2gvZzz .task1,#mermaid-svg-jz1iX2HaWl2gvZzz .task2,#mermaid-svg-jz1iX2HaWl2gvZzz .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutside0,#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutside2{fill:#000}#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutside1,#mermaid-svg-jz1iX2HaWl2gvZzz .taskTextOutside3{fill:#000}#mermaid-svg-jz1iX2HaWl2gvZzz .active0,#mermaid-svg-jz1iX2HaWl2gvZzz .active1,#mermaid-svg-jz1iX2HaWl2gvZzz .active2,#mermaid-svg-jz1iX2HaWl2gvZzz .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-jz1iX2HaWl2gvZzz .activeText0,#mermaid-svg-jz1iX2HaWl2gvZzz .activeText1,#mermaid-svg-jz1iX2HaWl2gvZzz .activeText2,#mermaid-svg-jz1iX2HaWl2gvZzz .activeText3{fill:#000 !important}#mermaid-svg-jz1iX2HaWl2gvZzz .done0,#mermaid-svg-jz1iX2HaWl2gvZzz .done1,#mermaid-svg-jz1iX2HaWl2gvZzz .done2,#mermaid-svg-jz1iX2HaWl2gvZzz .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-jz1iX2HaWl2gvZzz .doneText0,#mermaid-svg-jz1iX2HaWl2gvZzz .doneText1,#mermaid-svg-jz1iX2HaWl2gvZzz .doneText2,#mermaid-svg-jz1iX2HaWl2gvZzz .doneText3{fill:#000 !important}#mermaid-svg-jz1iX2HaWl2gvZzz .crit0,#mermaid-svg-jz1iX2HaWl2gvZzz .crit1,#mermaid-svg-jz1iX2HaWl2gvZzz .crit2,#mermaid-svg-jz1iX2HaWl2gvZzz .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-jz1iX2HaWl2gvZzz .activeCrit0,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCrit1,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCrit2,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-jz1iX2HaWl2gvZzz .doneCrit0,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCrit1,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCrit2,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-jz1iX2HaWl2gvZzz .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-jz1iX2HaWl2gvZzz .milestoneText{font-style:italic}#mermaid-svg-jz1iX2HaWl2gvZzz .doneCritText0,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCritText1,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCritText2,#mermaid-svg-jz1iX2HaWl2gvZzz .doneCritText3{fill:#000 !important}#mermaid-svg-jz1iX2HaWl2gvZzz .activeCritText0,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCritText1,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCritText2,#mermaid-svg-jz1iX2HaWl2gvZzz .activeCritText3{fill:#000 !important}#mermaid-svg-jz1iX2HaWl2gvZzz .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-jz1iX2HaWl2gvZzz g.classGroup text .title{font-weight:bolder}#mermaid-svg-jz1iX2HaWl2gvZzz g.clickable{cursor:pointer}#mermaid-svg-jz1iX2HaWl2gvZzz g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-jz1iX2HaWl2gvZzz g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-jz1iX2HaWl2gvZzz .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-jz1iX2HaWl2gvZzz .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-jz1iX2HaWl2gvZzz .dashed-line{stroke-dasharray:3}#mermaid-svg-jz1iX2HaWl2gvZzz #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz .commit-id,#mermaid-svg-jz1iX2HaWl2gvZzz .commit-msg,#mermaid-svg-jz1iX2HaWl2gvZzz .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-jz1iX2HaWl2gvZzz g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-jz1iX2HaWl2gvZzz g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-jz1iX2HaWl2gvZzz g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-jz1iX2HaWl2gvZzz .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-jz1iX2HaWl2gvZzz .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-jz1iX2HaWl2gvZzz .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-jz1iX2HaWl2gvZzz .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-jz1iX2HaWl2gvZzz .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-jz1iX2HaWl2gvZzz .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-jz1iX2HaWl2gvZzz .edgeLabel text{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-jz1iX2HaWl2gvZzz .node circle.state-start{fill:black;stroke:black}#mermaid-svg-jz1iX2HaWl2gvZzz .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-jz1iX2HaWl2gvZzz #statediagram-barbEnd{fill:#9370db}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-state .divider{stroke:#9370db}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-jz1iX2HaWl2gvZzz .note-edge{stroke-dasharray:5}#mermaid-svg-jz1iX2HaWl2gvZzz .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-jz1iX2HaWl2gvZzz .error-icon{fill:#522}#mermaid-svg-jz1iX2HaWl2gvZzz .error-text{fill:#522;stroke:#522}#mermaid-svg-jz1iX2HaWl2gvZzz .edge-thickness-normal{stroke-width:2px}#mermaid-svg-jz1iX2HaWl2gvZzz .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-jz1iX2HaWl2gvZzz .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-jz1iX2HaWl2gvZzz .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-jz1iX2HaWl2gvZzz .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-jz1iX2HaWl2gvZzz .marker{fill:#333}#mermaid-svg-jz1iX2HaWl2gvZzz .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-jz1iX2HaWl2gvZzz {color: rgba(0, 0, 0, 0.75);font: ;}BrsMainEcuMEcuM_Callout_StubsOsFeeEcuM_InitEcuM_AL_DriverInitOneFee_InitFee_InitEcuM_AL_DriverInitOneEcuM_StartOsStartOSStartOSEcuM_StartOsEcuM_InitBrsMainEcuMEcuM_Callout_StubsOsFee
  • EcuM模块调用Fee_Init完成对Fee模块的初始化
  • Fee_Init需要排在Fls_17_Dmu_Init的后面
  • 初始化所需参数在配置指针Fee_Config中,初始化包括对DMU寄存器的初始化和对状态指针FeeStateVar的初始化
  • 初始化后,Fee模块Module Status==MEMIF_IDLEJob Result=MEMIF_JOB_OK

Fee_MainFunction

void Fee_Mainfunction (void)
#mermaid-svg-U9YMRrevD3qIUnp0 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .label text{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .node rect,#mermaid-svg-U9YMRrevD3qIUnp0 .node circle,#mermaid-svg-U9YMRrevD3qIUnp0 .node ellipse,#mermaid-svg-U9YMRrevD3qIUnp0 .node polygon,#mermaid-svg-U9YMRrevD3qIUnp0 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-U9YMRrevD3qIUnp0 .node .label{text-align:center;fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .node.clickable{cursor:pointer}#mermaid-svg-U9YMRrevD3qIUnp0 .arrowheadPath{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-U9YMRrevD3qIUnp0 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-U9YMRrevD3qIUnp0 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-U9YMRrevD3qIUnp0 .edgeLabel rect{opacity:0.9}#mermaid-svg-U9YMRrevD3qIUnp0 .edgeLabel span{color:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-U9YMRrevD3qIUnp0 .cluster text{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-U9YMRrevD3qIUnp0 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-U9YMRrevD3qIUnp0 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-U9YMRrevD3qIUnp0 .actor-line{stroke:grey}#mermaid-svg-U9YMRrevD3qIUnp0 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-U9YMRrevD3qIUnp0 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .sequenceNumber{fill:#fff}#mermaid-svg-U9YMRrevD3qIUnp0 #sequencenumber{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .messageText{fill:#333;stroke:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-U9YMRrevD3qIUnp0 .labelText,#mermaid-svg-U9YMRrevD3qIUnp0 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-U9YMRrevD3qIUnp0 .loopText,#mermaid-svg-U9YMRrevD3qIUnp0 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-U9YMRrevD3qIUnp0 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-U9YMRrevD3qIUnp0 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-U9YMRrevD3qIUnp0 .noteText,#mermaid-svg-U9YMRrevD3qIUnp0 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-U9YMRrevD3qIUnp0 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-U9YMRrevD3qIUnp0 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-U9YMRrevD3qIUnp0 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-U9YMRrevD3qIUnp0 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .section{stroke:none;opacity:0.2}#mermaid-svg-U9YMRrevD3qIUnp0 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-U9YMRrevD3qIUnp0 .section2{fill:#fff400}#mermaid-svg-U9YMRrevD3qIUnp0 .section1,#mermaid-svg-U9YMRrevD3qIUnp0 .section3{fill:#fff;opacity:0.2}#mermaid-svg-U9YMRrevD3qIUnp0 .sectionTitle0{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .sectionTitle1{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .sectionTitle2{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .sectionTitle3{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-U9YMRrevD3qIUnp0 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .grid path{stroke-width:0}#mermaid-svg-U9YMRrevD3qIUnp0 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-U9YMRrevD3qIUnp0 .task{stroke-width:2}#mermaid-svg-U9YMRrevD3qIUnp0 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .taskText:not([font-size]){font-size:11px}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-U9YMRrevD3qIUnp0 .task.clickable{cursor:pointer}#mermaid-svg-U9YMRrevD3qIUnp0 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-U9YMRrevD3qIUnp0 .taskText0,#mermaid-svg-U9YMRrevD3qIUnp0 .taskText1,#mermaid-svg-U9YMRrevD3qIUnp0 .taskText2,#mermaid-svg-U9YMRrevD3qIUnp0 .taskText3{fill:#fff}#mermaid-svg-U9YMRrevD3qIUnp0 .task0,#mermaid-svg-U9YMRrevD3qIUnp0 .task1,#mermaid-svg-U9YMRrevD3qIUnp0 .task2,#mermaid-svg-U9YMRrevD3qIUnp0 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutside0,#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutside2{fill:#000}#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutside1,#mermaid-svg-U9YMRrevD3qIUnp0 .taskTextOutside3{fill:#000}#mermaid-svg-U9YMRrevD3qIUnp0 .active0,#mermaid-svg-U9YMRrevD3qIUnp0 .active1,#mermaid-svg-U9YMRrevD3qIUnp0 .active2,#mermaid-svg-U9YMRrevD3qIUnp0 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-U9YMRrevD3qIUnp0 .activeText0,#mermaid-svg-U9YMRrevD3qIUnp0 .activeText1,#mermaid-svg-U9YMRrevD3qIUnp0 .activeText2,#mermaid-svg-U9YMRrevD3qIUnp0 .activeText3{fill:#000 !important}#mermaid-svg-U9YMRrevD3qIUnp0 .done0,#mermaid-svg-U9YMRrevD3qIUnp0 .done1,#mermaid-svg-U9YMRrevD3qIUnp0 .done2,#mermaid-svg-U9YMRrevD3qIUnp0 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-U9YMRrevD3qIUnp0 .doneText0,#mermaid-svg-U9YMRrevD3qIUnp0 .doneText1,#mermaid-svg-U9YMRrevD3qIUnp0 .doneText2,#mermaid-svg-U9YMRrevD3qIUnp0 .doneText3{fill:#000 !important}#mermaid-svg-U9YMRrevD3qIUnp0 .crit0,#mermaid-svg-U9YMRrevD3qIUnp0 .crit1,#mermaid-svg-U9YMRrevD3qIUnp0 .crit2,#mermaid-svg-U9YMRrevD3qIUnp0 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-U9YMRrevD3qIUnp0 .activeCrit0,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCrit1,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCrit2,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-U9YMRrevD3qIUnp0 .doneCrit0,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCrit1,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCrit2,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-U9YMRrevD3qIUnp0 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-U9YMRrevD3qIUnp0 .milestoneText{font-style:italic}#mermaid-svg-U9YMRrevD3qIUnp0 .doneCritText0,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCritText1,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCritText2,#mermaid-svg-U9YMRrevD3qIUnp0 .doneCritText3{fill:#000 !important}#mermaid-svg-U9YMRrevD3qIUnp0 .activeCritText0,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCritText1,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCritText2,#mermaid-svg-U9YMRrevD3qIUnp0 .activeCritText3{fill:#000 !important}#mermaid-svg-U9YMRrevD3qIUnp0 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-U9YMRrevD3qIUnp0 g.classGroup text .title{font-weight:bolder}#mermaid-svg-U9YMRrevD3qIUnp0 g.clickable{cursor:pointer}#mermaid-svg-U9YMRrevD3qIUnp0 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-U9YMRrevD3qIUnp0 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-U9YMRrevD3qIUnp0 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-U9YMRrevD3qIUnp0 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-U9YMRrevD3qIUnp0 .dashed-line{stroke-dasharray:3}#mermaid-svg-U9YMRrevD3qIUnp0 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 .commit-id,#mermaid-svg-U9YMRrevD3qIUnp0 .commit-msg,#mermaid-svg-U9YMRrevD3qIUnp0 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-U9YMRrevD3qIUnp0 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-U9YMRrevD3qIUnp0 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-U9YMRrevD3qIUnp0 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-U9YMRrevD3qIUnp0 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-U9YMRrevD3qIUnp0 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-U9YMRrevD3qIUnp0 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-U9YMRrevD3qIUnp0 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-U9YMRrevD3qIUnp0 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-U9YMRrevD3qIUnp0 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-U9YMRrevD3qIUnp0 .edgeLabel text{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-U9YMRrevD3qIUnp0 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-U9YMRrevD3qIUnp0 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-U9YMRrevD3qIUnp0 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-U9YMRrevD3qIUnp0 .note-edge{stroke-dasharray:5}#mermaid-svg-U9YMRrevD3qIUnp0 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-U9YMRrevD3qIUnp0 .error-icon{fill:#522}#mermaid-svg-U9YMRrevD3qIUnp0 .error-text{fill:#522;stroke:#522}#mermaid-svg-U9YMRrevD3qIUnp0 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-U9YMRrevD3qIUnp0 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-U9YMRrevD3qIUnp0 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-U9YMRrevD3qIUnp0 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-U9YMRrevD3qIUnp0 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-U9YMRrevD3qIUnp0 .marker{fill:#333}#mermaid-svg-U9YMRrevD3qIUnp0 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-U9YMRrevD3qIUnp0 {color: rgba(0, 0, 0, 0.75);font: ;}SchMDefault_BSW_Async_Task_Core0FeeActivateTaskFee_MainFunctionswitch FeeMainJobFee_MainFunctionloopSchMDefault_BSW_Async_Task_Core0Fee
  • Fee_MainFunctionDefault_BSW_Async_Task_Core0中以10ms周期被调用,负责执行异步job
  • Fee_MainFunction根据FeeStateVar->FeeMainJob确定当前任务,FeeStateVar->FeeMainJob有以下状态:
FeeMainJob
FEE_MAIN_UNINIT
FEE_MAIN_INITGC
FEE_MAIN_CACHEUPDATE
FEE_MAIN_READ
FEE_MAIN_WRITE
FEE_MAIN_GC
  • Fee_MainFunction在一次周期中处理的数据量取决于配置的Processing Mode = Fast Mode / Slow Mode
  • Fee_MainFunction在处理完一个job后,将调用Job End Notification,或者如果发生错误,将执行Job Error Notification

Fee_Read

Std_ReturnType Fee_Read
(
uint16 BlockNumber,
uint16 BlockOffset,
uint8* DataBufferPtr,
uint16 Length
)
#mermaid-svg-hijL7aJKKhbEjBeC .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hijL7aJKKhbEjBeC .label text{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .node rect,#mermaid-svg-hijL7aJKKhbEjBeC .node circle,#mermaid-svg-hijL7aJKKhbEjBeC .node ellipse,#mermaid-svg-hijL7aJKKhbEjBeC .node polygon,#mermaid-svg-hijL7aJKKhbEjBeC .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hijL7aJKKhbEjBeC .node .label{text-align:center;fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .node.clickable{cursor:pointer}#mermaid-svg-hijL7aJKKhbEjBeC .arrowheadPath{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-hijL7aJKKhbEjBeC .flowchart-link{stroke:#333;fill:none}#mermaid-svg-hijL7aJKKhbEjBeC .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-hijL7aJKKhbEjBeC .edgeLabel rect{opacity:0.9}#mermaid-svg-hijL7aJKKhbEjBeC .edgeLabel span{color:#333}#mermaid-svg-hijL7aJKKhbEjBeC .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-hijL7aJKKhbEjBeC .cluster text{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-hijL7aJKKhbEjBeC .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hijL7aJKKhbEjBeC text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-hijL7aJKKhbEjBeC .actor-line{stroke:grey}#mermaid-svg-hijL7aJKKhbEjBeC .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-hijL7aJKKhbEjBeC .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-hijL7aJKKhbEjBeC #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-hijL7aJKKhbEjBeC .sequenceNumber{fill:#fff}#mermaid-svg-hijL7aJKKhbEjBeC #sequencenumber{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC #crosshead path{fill:#333;stroke:#333}#mermaid-svg-hijL7aJKKhbEjBeC .messageText{fill:#333;stroke:#333}#mermaid-svg-hijL7aJKKhbEjBeC .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hijL7aJKKhbEjBeC .labelText,#mermaid-svg-hijL7aJKKhbEjBeC .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-hijL7aJKKhbEjBeC .loopText,#mermaid-svg-hijL7aJKKhbEjBeC .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-hijL7aJKKhbEjBeC .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-hijL7aJKKhbEjBeC .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hijL7aJKKhbEjBeC .noteText,#mermaid-svg-hijL7aJKKhbEjBeC .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-hijL7aJKKhbEjBeC .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-hijL7aJKKhbEjBeC .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-hijL7aJKKhbEjBeC .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-hijL7aJKKhbEjBeC .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .section{stroke:none;opacity:0.2}#mermaid-svg-hijL7aJKKhbEjBeC .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-hijL7aJKKhbEjBeC .section2{fill:#fff400}#mermaid-svg-hijL7aJKKhbEjBeC .section1,#mermaid-svg-hijL7aJKKhbEjBeC .section3{fill:#fff;opacity:0.2}#mermaid-svg-hijL7aJKKhbEjBeC .sectionTitle0{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .sectionTitle1{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .sectionTitle2{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .sectionTitle3{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-hijL7aJKKhbEjBeC .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .grid path{stroke-width:0}#mermaid-svg-hijL7aJKKhbEjBeC .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-hijL7aJKKhbEjBeC .task{stroke-width:2}#mermaid-svg-hijL7aJKKhbEjBeC .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .taskText:not([font-size]){font-size:11px}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-hijL7aJKKhbEjBeC .task.clickable{cursor:pointer}#mermaid-svg-hijL7aJKKhbEjBeC .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hijL7aJKKhbEjBeC .taskText0,#mermaid-svg-hijL7aJKKhbEjBeC .taskText1,#mermaid-svg-hijL7aJKKhbEjBeC .taskText2,#mermaid-svg-hijL7aJKKhbEjBeC .taskText3{fill:#fff}#mermaid-svg-hijL7aJKKhbEjBeC .task0,#mermaid-svg-hijL7aJKKhbEjBeC .task1,#mermaid-svg-hijL7aJKKhbEjBeC .task2,#mermaid-svg-hijL7aJKKhbEjBeC .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutside0,#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutside2{fill:#000}#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutside1,#mermaid-svg-hijL7aJKKhbEjBeC .taskTextOutside3{fill:#000}#mermaid-svg-hijL7aJKKhbEjBeC .active0,#mermaid-svg-hijL7aJKKhbEjBeC .active1,#mermaid-svg-hijL7aJKKhbEjBeC .active2,#mermaid-svg-hijL7aJKKhbEjBeC .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-hijL7aJKKhbEjBeC .activeText0,#mermaid-svg-hijL7aJKKhbEjBeC .activeText1,#mermaid-svg-hijL7aJKKhbEjBeC .activeText2,#mermaid-svg-hijL7aJKKhbEjBeC .activeText3{fill:#000 !important}#mermaid-svg-hijL7aJKKhbEjBeC .done0,#mermaid-svg-hijL7aJKKhbEjBeC .done1,#mermaid-svg-hijL7aJKKhbEjBeC .done2,#mermaid-svg-hijL7aJKKhbEjBeC .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-hijL7aJKKhbEjBeC .doneText0,#mermaid-svg-hijL7aJKKhbEjBeC .doneText1,#mermaid-svg-hijL7aJKKhbEjBeC .doneText2,#mermaid-svg-hijL7aJKKhbEjBeC .doneText3{fill:#000 !important}#mermaid-svg-hijL7aJKKhbEjBeC .crit0,#mermaid-svg-hijL7aJKKhbEjBeC .crit1,#mermaid-svg-hijL7aJKKhbEjBeC .crit2,#mermaid-svg-hijL7aJKKhbEjBeC .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-hijL7aJKKhbEjBeC .activeCrit0,#mermaid-svg-hijL7aJKKhbEjBeC .activeCrit1,#mermaid-svg-hijL7aJKKhbEjBeC .activeCrit2,#mermaid-svg-hijL7aJKKhbEjBeC .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-hijL7aJKKhbEjBeC .doneCrit0,#mermaid-svg-hijL7aJKKhbEjBeC .doneCrit1,#mermaid-svg-hijL7aJKKhbEjBeC .doneCrit2,#mermaid-svg-hijL7aJKKhbEjBeC .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-hijL7aJKKhbEjBeC .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-hijL7aJKKhbEjBeC .milestoneText{font-style:italic}#mermaid-svg-hijL7aJKKhbEjBeC .doneCritText0,#mermaid-svg-hijL7aJKKhbEjBeC .doneCritText1,#mermaid-svg-hijL7aJKKhbEjBeC .doneCritText2,#mermaid-svg-hijL7aJKKhbEjBeC .doneCritText3{fill:#000 !important}#mermaid-svg-hijL7aJKKhbEjBeC .activeCritText0,#mermaid-svg-hijL7aJKKhbEjBeC .activeCritText1,#mermaid-svg-hijL7aJKKhbEjBeC .activeCritText2,#mermaid-svg-hijL7aJKKhbEjBeC .activeCritText3{fill:#000 !important}#mermaid-svg-hijL7aJKKhbEjBeC .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-hijL7aJKKhbEjBeC g.classGroup text .title{font-weight:bolder}#mermaid-svg-hijL7aJKKhbEjBeC g.clickable{cursor:pointer}#mermaid-svg-hijL7aJKKhbEjBeC g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hijL7aJKKhbEjBeC g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-hijL7aJKKhbEjBeC .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-hijL7aJKKhbEjBeC .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hijL7aJKKhbEjBeC .dashed-line{stroke-dasharray:3}#mermaid-svg-hijL7aJKKhbEjBeC #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC .commit-id,#mermaid-svg-hijL7aJKKhbEjBeC .commit-msg,#mermaid-svg-hijL7aJKKhbEjBeC .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-hijL7aJKKhbEjBeC g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-hijL7aJKKhbEjBeC g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hijL7aJKKhbEjBeC g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hijL7aJKKhbEjBeC .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hijL7aJKKhbEjBeC .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-hijL7aJKKhbEjBeC .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-hijL7aJKKhbEjBeC .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hijL7aJKKhbEjBeC .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-hijL7aJKKhbEjBeC .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-hijL7aJKKhbEjBeC .edgeLabel text{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hijL7aJKKhbEjBeC .node circle.state-start{fill:black;stroke:black}#mermaid-svg-hijL7aJKKhbEjBeC .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-hijL7aJKKhbEjBeC #statediagram-barbEnd{fill:#9370db}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-state .divider{stroke:#9370db}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-hijL7aJKKhbEjBeC .note-edge{stroke-dasharray:5}#mermaid-svg-hijL7aJKKhbEjBeC .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-hijL7aJKKhbEjBeC .error-icon{fill:#522}#mermaid-svg-hijL7aJKKhbEjBeC .error-text{fill:#522;stroke:#522}#mermaid-svg-hijL7aJKKhbEjBeC .edge-thickness-normal{stroke-width:2px}#mermaid-svg-hijL7aJKKhbEjBeC .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-hijL7aJKKhbEjBeC .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-hijL7aJKKhbEjBeC .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-hijL7aJKKhbEjBeC .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-hijL7aJKKhbEjBeC .marker{fill:#333}#mermaid-svg-hijL7aJKKhbEjBeC .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-hijL7aJKKhbEjBeC {color: rgba(0, 0, 0, 0.75);font: ;}Default_BSW_Async_Task_Core0MemIfFeeFlsFee_ReadFeeMainJob=FEE_MAIN_READFee_ReadFee_MainFunctionFls_17_Dmu_ReadFls_17_Dmu_ReadFee_MainFunctionDefault_BSW_Async_Task_Core0MemIfFeeFls
  1. Fee_Read设置状态FeeMainJob=FEE_MAIN_READ
  2. Fee_MainFunction执行后检测到FEE_MAIN_READ,开始处理
  3. BlockNumber转为BlockId,通过BlockOffsetLength获取数据的虚拟地址
  4. 虚拟地址转换为Block Instance在Flash中的实际地址
  5. 调用Fls_17_Dmu_Read,将实际地址上的数据存入DataBufferPtr指向的RAM区域
  • 异步Job,在Fee_MainFunction中执行
  • 此Job只有在Module Status==MEMIF_IDLE才能请求

Fee_Write

Std_ReturnType Fee_Write
(
uint16 BlockNumber,
uint8* DataBufferPtr
)
#mermaid-svg-3cNhvOF5uX3WHvzd .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .label text{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .node rect,#mermaid-svg-3cNhvOF5uX3WHvzd .node circle,#mermaid-svg-3cNhvOF5uX3WHvzd .node ellipse,#mermaid-svg-3cNhvOF5uX3WHvzd .node polygon,#mermaid-svg-3cNhvOF5uX3WHvzd .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-3cNhvOF5uX3WHvzd .node .label{text-align:center;fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .node.clickable{cursor:pointer}#mermaid-svg-3cNhvOF5uX3WHvzd .arrowheadPath{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-3cNhvOF5uX3WHvzd .flowchart-link{stroke:#333;fill:none}#mermaid-svg-3cNhvOF5uX3WHvzd .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-3cNhvOF5uX3WHvzd .edgeLabel rect{opacity:0.9}#mermaid-svg-3cNhvOF5uX3WHvzd .edgeLabel span{color:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-3cNhvOF5uX3WHvzd .cluster text{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-3cNhvOF5uX3WHvzd .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-3cNhvOF5uX3WHvzd text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-3cNhvOF5uX3WHvzd .actor-line{stroke:grey}#mermaid-svg-3cNhvOF5uX3WHvzd .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-3cNhvOF5uX3WHvzd #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .sequenceNumber{fill:#fff}#mermaid-svg-3cNhvOF5uX3WHvzd #sequencenumber{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd #crosshead path{fill:#333;stroke:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .messageText{fill:#333;stroke:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-3cNhvOF5uX3WHvzd .labelText,#mermaid-svg-3cNhvOF5uX3WHvzd .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-3cNhvOF5uX3WHvzd .loopText,#mermaid-svg-3cNhvOF5uX3WHvzd .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-3cNhvOF5uX3WHvzd .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-3cNhvOF5uX3WHvzd .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-3cNhvOF5uX3WHvzd .noteText,#mermaid-svg-3cNhvOF5uX3WHvzd .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-3cNhvOF5uX3WHvzd .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-3cNhvOF5uX3WHvzd .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-3cNhvOF5uX3WHvzd .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-3cNhvOF5uX3WHvzd .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .section{stroke:none;opacity:0.2}#mermaid-svg-3cNhvOF5uX3WHvzd .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-3cNhvOF5uX3WHvzd .section2{fill:#fff400}#mermaid-svg-3cNhvOF5uX3WHvzd .section1,#mermaid-svg-3cNhvOF5uX3WHvzd .section3{fill:#fff;opacity:0.2}#mermaid-svg-3cNhvOF5uX3WHvzd .sectionTitle0{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .sectionTitle1{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .sectionTitle2{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .sectionTitle3{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-3cNhvOF5uX3WHvzd .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .grid path{stroke-width:0}#mermaid-svg-3cNhvOF5uX3WHvzd .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-3cNhvOF5uX3WHvzd .task{stroke-width:2}#mermaid-svg-3cNhvOF5uX3WHvzd .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .taskText:not([font-size]){font-size:11px}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-3cNhvOF5uX3WHvzd .task.clickable{cursor:pointer}#mermaid-svg-3cNhvOF5uX3WHvzd .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-3cNhvOF5uX3WHvzd .taskText0,#mermaid-svg-3cNhvOF5uX3WHvzd .taskText1,#mermaid-svg-3cNhvOF5uX3WHvzd .taskText2,#mermaid-svg-3cNhvOF5uX3WHvzd .taskText3{fill:#fff}#mermaid-svg-3cNhvOF5uX3WHvzd .task0,#mermaid-svg-3cNhvOF5uX3WHvzd .task1,#mermaid-svg-3cNhvOF5uX3WHvzd .task2,#mermaid-svg-3cNhvOF5uX3WHvzd .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutside0,#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutside2{fill:#000}#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutside1,#mermaid-svg-3cNhvOF5uX3WHvzd .taskTextOutside3{fill:#000}#mermaid-svg-3cNhvOF5uX3WHvzd .active0,#mermaid-svg-3cNhvOF5uX3WHvzd .active1,#mermaid-svg-3cNhvOF5uX3WHvzd .active2,#mermaid-svg-3cNhvOF5uX3WHvzd .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-3cNhvOF5uX3WHvzd .activeText0,#mermaid-svg-3cNhvOF5uX3WHvzd .activeText1,#mermaid-svg-3cNhvOF5uX3WHvzd .activeText2,#mermaid-svg-3cNhvOF5uX3WHvzd .activeText3{fill:#000 !important}#mermaid-svg-3cNhvOF5uX3WHvzd .done0,#mermaid-svg-3cNhvOF5uX3WHvzd .done1,#mermaid-svg-3cNhvOF5uX3WHvzd .done2,#mermaid-svg-3cNhvOF5uX3WHvzd .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-3cNhvOF5uX3WHvzd .doneText0,#mermaid-svg-3cNhvOF5uX3WHvzd .doneText1,#mermaid-svg-3cNhvOF5uX3WHvzd .doneText2,#mermaid-svg-3cNhvOF5uX3WHvzd .doneText3{fill:#000 !important}#mermaid-svg-3cNhvOF5uX3WHvzd .crit0,#mermaid-svg-3cNhvOF5uX3WHvzd .crit1,#mermaid-svg-3cNhvOF5uX3WHvzd .crit2,#mermaid-svg-3cNhvOF5uX3WHvzd .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-3cNhvOF5uX3WHvzd .activeCrit0,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCrit1,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCrit2,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-3cNhvOF5uX3WHvzd .doneCrit0,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCrit1,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCrit2,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-3cNhvOF5uX3WHvzd .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-3cNhvOF5uX3WHvzd .milestoneText{font-style:italic}#mermaid-svg-3cNhvOF5uX3WHvzd .doneCritText0,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCritText1,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCritText2,#mermaid-svg-3cNhvOF5uX3WHvzd .doneCritText3{fill:#000 !important}#mermaid-svg-3cNhvOF5uX3WHvzd .activeCritText0,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCritText1,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCritText2,#mermaid-svg-3cNhvOF5uX3WHvzd .activeCritText3{fill:#000 !important}#mermaid-svg-3cNhvOF5uX3WHvzd .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-3cNhvOF5uX3WHvzd g.classGroup text .title{font-weight:bolder}#mermaid-svg-3cNhvOF5uX3WHvzd g.clickable{cursor:pointer}#mermaid-svg-3cNhvOF5uX3WHvzd g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-3cNhvOF5uX3WHvzd g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-3cNhvOF5uX3WHvzd .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-3cNhvOF5uX3WHvzd .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-3cNhvOF5uX3WHvzd .dashed-line{stroke-dasharray:3}#mermaid-svg-3cNhvOF5uX3WHvzd #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd .commit-id,#mermaid-svg-3cNhvOF5uX3WHvzd .commit-msg,#mermaid-svg-3cNhvOF5uX3WHvzd .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-3cNhvOF5uX3WHvzd g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-3cNhvOF5uX3WHvzd g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-3cNhvOF5uX3WHvzd g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-3cNhvOF5uX3WHvzd .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-3cNhvOF5uX3WHvzd .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-3cNhvOF5uX3WHvzd .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-3cNhvOF5uX3WHvzd .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-3cNhvOF5uX3WHvzd .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-3cNhvOF5uX3WHvzd .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-3cNhvOF5uX3WHvzd .edgeLabel text{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-3cNhvOF5uX3WHvzd .node circle.state-start{fill:black;stroke:black}#mermaid-svg-3cNhvOF5uX3WHvzd .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-3cNhvOF5uX3WHvzd #statediagram-barbEnd{fill:#9370db}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-state .divider{stroke:#9370db}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-3cNhvOF5uX3WHvzd .note-edge{stroke-dasharray:5}#mermaid-svg-3cNhvOF5uX3WHvzd .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-3cNhvOF5uX3WHvzd .error-icon{fill:#522}#mermaid-svg-3cNhvOF5uX3WHvzd .error-text{fill:#522;stroke:#522}#mermaid-svg-3cNhvOF5uX3WHvzd .edge-thickness-normal{stroke-width:2px}#mermaid-svg-3cNhvOF5uX3WHvzd .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-3cNhvOF5uX3WHvzd .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-3cNhvOF5uX3WHvzd .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-3cNhvOF5uX3WHvzd .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-3cNhvOF5uX3WHvzd .marker{fill:#333}#mermaid-svg-3cNhvOF5uX3WHvzd .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-3cNhvOF5uX3WHvzd {color: rgba(0, 0, 0, 0.75);font: ;}SchMDefault_BSW_Async_Task_Core0MemIfFeeFlsActivateTaskFee_WriteFeeMainJob=FEE_MAIN_WRITEFee_WriteFee_MainFunctionFls_17_Dmu_WriteFls_17_Dmu_WriteFee_MainFunctionSchMDefault_BSW_Async_Task_Core0MemIfFeeFls
  1. Fee_Write设置状态FeeMainJob=FEE_MAIN_WRITE
  2. Fee_MainFunction执行后检测到FEE_MAIN_WRITE,开始处理
  3. BlockNumber转为BlockId,转换为Block Instance在Flash中的实际地址
  4. 调用Fls_17_Dmu_Write
  • 异步Job,在Fls_17_Dmu_MainFunction中执行
  • 此Job只有在Module Status==MEMIF_IDLE才能请求

Fee_Cancel

void Fee_Cancel (void)
#mermaid-svg-0mXN2TwjyTBNLAGo .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .label text{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .node rect,#mermaid-svg-0mXN2TwjyTBNLAGo .node circle,#mermaid-svg-0mXN2TwjyTBNLAGo .node ellipse,#mermaid-svg-0mXN2TwjyTBNLAGo .node polygon,#mermaid-svg-0mXN2TwjyTBNLAGo .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-0mXN2TwjyTBNLAGo .node .label{text-align:center;fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .node.clickable{cursor:pointer}#mermaid-svg-0mXN2TwjyTBNLAGo .arrowheadPath{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-0mXN2TwjyTBNLAGo .flowchart-link{stroke:#333;fill:none}#mermaid-svg-0mXN2TwjyTBNLAGo .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-0mXN2TwjyTBNLAGo .edgeLabel rect{opacity:0.9}#mermaid-svg-0mXN2TwjyTBNLAGo .edgeLabel span{color:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-0mXN2TwjyTBNLAGo .cluster text{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-0mXN2TwjyTBNLAGo .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-0mXN2TwjyTBNLAGo text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-0mXN2TwjyTBNLAGo .actor-line{stroke:grey}#mermaid-svg-0mXN2TwjyTBNLAGo .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-0mXN2TwjyTBNLAGo #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .sequenceNumber{fill:#fff}#mermaid-svg-0mXN2TwjyTBNLAGo #sequencenumber{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo #crosshead path{fill:#333;stroke:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .messageText{fill:#333;stroke:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-0mXN2TwjyTBNLAGo .labelText,#mermaid-svg-0mXN2TwjyTBNLAGo .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-0mXN2TwjyTBNLAGo .loopText,#mermaid-svg-0mXN2TwjyTBNLAGo .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-0mXN2TwjyTBNLAGo .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-0mXN2TwjyTBNLAGo .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-0mXN2TwjyTBNLAGo .noteText,#mermaid-svg-0mXN2TwjyTBNLAGo .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-0mXN2TwjyTBNLAGo .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-0mXN2TwjyTBNLAGo .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-0mXN2TwjyTBNLAGo .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-0mXN2TwjyTBNLAGo .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .section{stroke:none;opacity:0.2}#mermaid-svg-0mXN2TwjyTBNLAGo .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-0mXN2TwjyTBNLAGo .section2{fill:#fff400}#mermaid-svg-0mXN2TwjyTBNLAGo .section1,#mermaid-svg-0mXN2TwjyTBNLAGo .section3{fill:#fff;opacity:0.2}#mermaid-svg-0mXN2TwjyTBNLAGo .sectionTitle0{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .sectionTitle1{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .sectionTitle2{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .sectionTitle3{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-0mXN2TwjyTBNLAGo .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .grid path{stroke-width:0}#mermaid-svg-0mXN2TwjyTBNLAGo .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-0mXN2TwjyTBNLAGo .task{stroke-width:2}#mermaid-svg-0mXN2TwjyTBNLAGo .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .taskText:not([font-size]){font-size:11px}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-0mXN2TwjyTBNLAGo .task.clickable{cursor:pointer}#mermaid-svg-0mXN2TwjyTBNLAGo .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0mXN2TwjyTBNLAGo .taskText0,#mermaid-svg-0mXN2TwjyTBNLAGo .taskText1,#mermaid-svg-0mXN2TwjyTBNLAGo .taskText2,#mermaid-svg-0mXN2TwjyTBNLAGo .taskText3{fill:#fff}#mermaid-svg-0mXN2TwjyTBNLAGo .task0,#mermaid-svg-0mXN2TwjyTBNLAGo .task1,#mermaid-svg-0mXN2TwjyTBNLAGo .task2,#mermaid-svg-0mXN2TwjyTBNLAGo .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutside0,#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutside2{fill:#000}#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutside1,#mermaid-svg-0mXN2TwjyTBNLAGo .taskTextOutside3{fill:#000}#mermaid-svg-0mXN2TwjyTBNLAGo .active0,#mermaid-svg-0mXN2TwjyTBNLAGo .active1,#mermaid-svg-0mXN2TwjyTBNLAGo .active2,#mermaid-svg-0mXN2TwjyTBNLAGo .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-0mXN2TwjyTBNLAGo .activeText0,#mermaid-svg-0mXN2TwjyTBNLAGo .activeText1,#mermaid-svg-0mXN2TwjyTBNLAGo .activeText2,#mermaid-svg-0mXN2TwjyTBNLAGo .activeText3{fill:#000 !important}#mermaid-svg-0mXN2TwjyTBNLAGo .done0,#mermaid-svg-0mXN2TwjyTBNLAGo .done1,#mermaid-svg-0mXN2TwjyTBNLAGo .done2,#mermaid-svg-0mXN2TwjyTBNLAGo .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-0mXN2TwjyTBNLAGo .doneText0,#mermaid-svg-0mXN2TwjyTBNLAGo .doneText1,#mermaid-svg-0mXN2TwjyTBNLAGo .doneText2,#mermaid-svg-0mXN2TwjyTBNLAGo .doneText3{fill:#000 !important}#mermaid-svg-0mXN2TwjyTBNLAGo .crit0,#mermaid-svg-0mXN2TwjyTBNLAGo .crit1,#mermaid-svg-0mXN2TwjyTBNLAGo .crit2,#mermaid-svg-0mXN2TwjyTBNLAGo .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-0mXN2TwjyTBNLAGo .activeCrit0,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCrit1,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCrit2,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-0mXN2TwjyTBNLAGo .doneCrit0,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCrit1,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCrit2,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-0mXN2TwjyTBNLAGo .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-0mXN2TwjyTBNLAGo .milestoneText{font-style:italic}#mermaid-svg-0mXN2TwjyTBNLAGo .doneCritText0,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCritText1,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCritText2,#mermaid-svg-0mXN2TwjyTBNLAGo .doneCritText3{fill:#000 !important}#mermaid-svg-0mXN2TwjyTBNLAGo .activeCritText0,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCritText1,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCritText2,#mermaid-svg-0mXN2TwjyTBNLAGo .activeCritText3{fill:#000 !important}#mermaid-svg-0mXN2TwjyTBNLAGo .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-0mXN2TwjyTBNLAGo g.classGroup text .title{font-weight:bolder}#mermaid-svg-0mXN2TwjyTBNLAGo g.clickable{cursor:pointer}#mermaid-svg-0mXN2TwjyTBNLAGo g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-0mXN2TwjyTBNLAGo g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-0mXN2TwjyTBNLAGo .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-0mXN2TwjyTBNLAGo .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-0mXN2TwjyTBNLAGo .dashed-line{stroke-dasharray:3}#mermaid-svg-0mXN2TwjyTBNLAGo #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo .commit-id,#mermaid-svg-0mXN2TwjyTBNLAGo .commit-msg,#mermaid-svg-0mXN2TwjyTBNLAGo .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-0mXN2TwjyTBNLAGo g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-0mXN2TwjyTBNLAGo g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-0mXN2TwjyTBNLAGo g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-0mXN2TwjyTBNLAGo .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-0mXN2TwjyTBNLAGo .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-0mXN2TwjyTBNLAGo .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-0mXN2TwjyTBNLAGo .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-0mXN2TwjyTBNLAGo .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-0mXN2TwjyTBNLAGo .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-0mXN2TwjyTBNLAGo .edgeLabel text{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0mXN2TwjyTBNLAGo .node circle.state-start{fill:black;stroke:black}#mermaid-svg-0mXN2TwjyTBNLAGo .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-0mXN2TwjyTBNLAGo #statediagram-barbEnd{fill:#9370db}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-state .divider{stroke:#9370db}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-0mXN2TwjyTBNLAGo .note-edge{stroke-dasharray:5}#mermaid-svg-0mXN2TwjyTBNLAGo .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-0mXN2TwjyTBNLAGo .error-icon{fill:#522}#mermaid-svg-0mXN2TwjyTBNLAGo .error-text{fill:#522;stroke:#522}#mermaid-svg-0mXN2TwjyTBNLAGo .edge-thickness-normal{stroke-width:2px}#mermaid-svg-0mXN2TwjyTBNLAGo .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-0mXN2TwjyTBNLAGo .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-0mXN2TwjyTBNLAGo .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-0mXN2TwjyTBNLAGo .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-0mXN2TwjyTBNLAGo .marker{fill:#333}#mermaid-svg-0mXN2TwjyTBNLAGo .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-0mXN2TwjyTBNLAGo {color: rgba(0, 0, 0, 0.75);font: ;}MemIfFeeFlsFee_CancelFls_17_Dmu_CancelFls_17_Dmu_CancelFee_CancelMemIfFeeFls
  • 取消当前Job
  • 同步Job,立即执行

Fee_GetStatus

MemIf_StatusType Fee_GetStatus (void)
  • 返回Fee模块Module Status
  • 同步job,立即执行

Fee_GetJobResult

MemIf_StatusType Fee_GetJobResult (void)
  • 返回最近或当前处理的Job Result
  • 同步job,立即执行

Fee_SetMode

void Fee_SetMode (MemIf_ModeType Mode)
#mermaid-svg-9r5TMPHLOEuqNjV6 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .label text{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .node rect,#mermaid-svg-9r5TMPHLOEuqNjV6 .node circle,#mermaid-svg-9r5TMPHLOEuqNjV6 .node ellipse,#mermaid-svg-9r5TMPHLOEuqNjV6 .node polygon,#mermaid-svg-9r5TMPHLOEuqNjV6 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-9r5TMPHLOEuqNjV6 .node .label{text-align:center;fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .node.clickable{cursor:pointer}#mermaid-svg-9r5TMPHLOEuqNjV6 .arrowheadPath{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-9r5TMPHLOEuqNjV6 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-9r5TMPHLOEuqNjV6 .edgeLabel rect{opacity:0.9}#mermaid-svg-9r5TMPHLOEuqNjV6 .edgeLabel span{color:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-9r5TMPHLOEuqNjV6 .cluster text{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-9r5TMPHLOEuqNjV6 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-9r5TMPHLOEuqNjV6 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .actor-line{stroke:grey}#mermaid-svg-9r5TMPHLOEuqNjV6 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .sequenceNumber{fill:#fff}#mermaid-svg-9r5TMPHLOEuqNjV6 #sequencenumber{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .messageText{fill:#333;stroke:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-9r5TMPHLOEuqNjV6 .labelText,#mermaid-svg-9r5TMPHLOEuqNjV6 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .loopText,#mermaid-svg-9r5TMPHLOEuqNjV6 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-9r5TMPHLOEuqNjV6 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-9r5TMPHLOEuqNjV6 .noteText,#mermaid-svg-9r5TMPHLOEuqNjV6 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-9r5TMPHLOEuqNjV6 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-9r5TMPHLOEuqNjV6 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-9r5TMPHLOEuqNjV6 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .section{stroke:none;opacity:0.2}#mermaid-svg-9r5TMPHLOEuqNjV6 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-9r5TMPHLOEuqNjV6 .section2{fill:#fff400}#mermaid-svg-9r5TMPHLOEuqNjV6 .section1,#mermaid-svg-9r5TMPHLOEuqNjV6 .section3{fill:#fff;opacity:0.2}#mermaid-svg-9r5TMPHLOEuqNjV6 .sectionTitle0{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .sectionTitle1{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .sectionTitle2{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .sectionTitle3{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-9r5TMPHLOEuqNjV6 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .grid path{stroke-width:0}#mermaid-svg-9r5TMPHLOEuqNjV6 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-9r5TMPHLOEuqNjV6 .task{stroke-width:2}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText:not([font-size]){font-size:11px}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-9r5TMPHLOEuqNjV6 .task.clickable{cursor:pointer}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText0,#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText1,#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText2,#mermaid-svg-9r5TMPHLOEuqNjV6 .taskText3{fill:#fff}#mermaid-svg-9r5TMPHLOEuqNjV6 .task0,#mermaid-svg-9r5TMPHLOEuqNjV6 .task1,#mermaid-svg-9r5TMPHLOEuqNjV6 .task2,#mermaid-svg-9r5TMPHLOEuqNjV6 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutside0,#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutside2{fill:#000}#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutside1,#mermaid-svg-9r5TMPHLOEuqNjV6 .taskTextOutside3{fill:#000}#mermaid-svg-9r5TMPHLOEuqNjV6 .active0,#mermaid-svg-9r5TMPHLOEuqNjV6 .active1,#mermaid-svg-9r5TMPHLOEuqNjV6 .active2,#mermaid-svg-9r5TMPHLOEuqNjV6 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-9r5TMPHLOEuqNjV6 .activeText0,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeText1,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeText2,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeText3{fill:#000 !important}#mermaid-svg-9r5TMPHLOEuqNjV6 .done0,#mermaid-svg-9r5TMPHLOEuqNjV6 .done1,#mermaid-svg-9r5TMPHLOEuqNjV6 .done2,#mermaid-svg-9r5TMPHLOEuqNjV6 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-9r5TMPHLOEuqNjV6 .doneText0,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneText1,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneText2,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneText3{fill:#000 !important}#mermaid-svg-9r5TMPHLOEuqNjV6 .crit0,#mermaid-svg-9r5TMPHLOEuqNjV6 .crit1,#mermaid-svg-9r5TMPHLOEuqNjV6 .crit2,#mermaid-svg-9r5TMPHLOEuqNjV6 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCrit0,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCrit1,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCrit2,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCrit0,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCrit1,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCrit2,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-9r5TMPHLOEuqNjV6 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-9r5TMPHLOEuqNjV6 .milestoneText{font-style:italic}#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCritText0,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCritText1,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCritText2,#mermaid-svg-9r5TMPHLOEuqNjV6 .doneCritText3{fill:#000 !important}#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCritText0,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCritText1,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCritText2,#mermaid-svg-9r5TMPHLOEuqNjV6 .activeCritText3{fill:#000 !important}#mermaid-svg-9r5TMPHLOEuqNjV6 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-9r5TMPHLOEuqNjV6 g.classGroup text .title{font-weight:bolder}#mermaid-svg-9r5TMPHLOEuqNjV6 g.clickable{cursor:pointer}#mermaid-svg-9r5TMPHLOEuqNjV6 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-9r5TMPHLOEuqNjV6 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-9r5TMPHLOEuqNjV6 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-9r5TMPHLOEuqNjV6 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .dashed-line{stroke-dasharray:3}#mermaid-svg-9r5TMPHLOEuqNjV6 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 .commit-id,#mermaid-svg-9r5TMPHLOEuqNjV6 .commit-msg,#mermaid-svg-9r5TMPHLOEuqNjV6 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-9r5TMPHLOEuqNjV6 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-9r5TMPHLOEuqNjV6 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-9r5TMPHLOEuqNjV6 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-9r5TMPHLOEuqNjV6 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-9r5TMPHLOEuqNjV6 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-9r5TMPHLOEuqNjV6 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-9r5TMPHLOEuqNjV6 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-9r5TMPHLOEuqNjV6 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-9r5TMPHLOEuqNjV6 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-9r5TMPHLOEuqNjV6 .edgeLabel text{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-9r5TMPHLOEuqNjV6 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-9r5TMPHLOEuqNjV6 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-9r5TMPHLOEuqNjV6 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-9r5TMPHLOEuqNjV6 .note-edge{stroke-dasharray:5}#mermaid-svg-9r5TMPHLOEuqNjV6 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-9r5TMPHLOEuqNjV6 .error-icon{fill:#522}#mermaid-svg-9r5TMPHLOEuqNjV6 .error-text{fill:#522;stroke:#522}#mermaid-svg-9r5TMPHLOEuqNjV6 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-9r5TMPHLOEuqNjV6 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-9r5TMPHLOEuqNjV6 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-9r5TMPHLOEuqNjV6 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-9r5TMPHLOEuqNjV6 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-9r5TMPHLOEuqNjV6 .marker{fill:#333}#mermaid-svg-9r5TMPHLOEuqNjV6 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-9r5TMPHLOEuqNjV6 {color: rgba(0, 0, 0, 0.75);font: ;}MemIfFeeFlsFee_SetModeFls_17_Dmu_SetModeFls_17_Dmu_SetModeFee_SetModeMemIfFeeFls
  • 调用Fls_SetMode
  • 同步job,立即执行
  • 此job只有在Module Status==MEMIF_IDLE才能请求
  • Set Mode supported决定是否启用API

2.5 Fee模块提供的Callback

Fee_JobEndNotification

void Fee_JobEndNotification (void)
#mermaid-svg-0YdPWoSrtM2Oy2UZ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .label text{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .node rect,#mermaid-svg-0YdPWoSrtM2Oy2UZ .node circle,#mermaid-svg-0YdPWoSrtM2Oy2UZ .node ellipse,#mermaid-svg-0YdPWoSrtM2Oy2UZ .node polygon,#mermaid-svg-0YdPWoSrtM2Oy2UZ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .node .label{text-align:center;fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .node.clickable{cursor:pointer}#mermaid-svg-0YdPWoSrtM2Oy2UZ .arrowheadPath{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edgeLabel rect{opacity:0.9}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edgeLabel span{color:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .cluster text{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-0YdPWoSrtM2Oy2UZ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-0YdPWoSrtM2Oy2UZ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .actor-line{stroke:grey}#mermaid-svg-0YdPWoSrtM2Oy2UZ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sequenceNumber{fill:#fff}#mermaid-svg-0YdPWoSrtM2Oy2UZ #sequencenumber{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .messageText{fill:#333;stroke:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-0YdPWoSrtM2Oy2UZ .labelText,#mermaid-svg-0YdPWoSrtM2Oy2UZ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .loopText,#mermaid-svg-0YdPWoSrtM2Oy2UZ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-0YdPWoSrtM2Oy2UZ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-0YdPWoSrtM2Oy2UZ .noteText,#mermaid-svg-0YdPWoSrtM2Oy2UZ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-0YdPWoSrtM2Oy2UZ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .section{stroke:none;opacity:0.2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .section2{fill:#fff400}#mermaid-svg-0YdPWoSrtM2Oy2UZ .section1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .section3{fill:#fff;opacity:0.2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sectionTitle0{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sectionTitle1{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sectionTitle2{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sectionTitle3{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-0YdPWoSrtM2Oy2UZ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .grid path{stroke-width:0}#mermaid-svg-0YdPWoSrtM2Oy2UZ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .task{stroke-width:2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText:not([font-size]){font-size:11px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .task.clickable{cursor:pointer}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskText3{fill:#fff}#mermaid-svg-0YdPWoSrtM2Oy2UZ .task0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .task1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .task2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutside0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutside2{fill:#000}#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutside1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .taskTextOutside3{fill:#000}#mermaid-svg-0YdPWoSrtM2Oy2UZ .active0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .active1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .active2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeText0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeText1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeText2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeText3{fill:#000 !important}#mermaid-svg-0YdPWoSrtM2Oy2UZ .done0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .done1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .done2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneText0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneText1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneText2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneText3{fill:#000 !important}#mermaid-svg-0YdPWoSrtM2Oy2UZ .crit0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .crit1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .crit2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCrit0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCrit1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCrit2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCrit0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCrit1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCrit2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-0YdPWoSrtM2Oy2UZ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .milestoneText{font-style:italic}#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCritText0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCritText1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCritText2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .doneCritText3{fill:#000 !important}#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCritText0,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCritText1,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCritText2,#mermaid-svg-0YdPWoSrtM2Oy2UZ .activeCritText3{fill:#000 !important}#mermaid-svg-0YdPWoSrtM2Oy2UZ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.classGroup text .title{font-weight:bolder}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.clickable{cursor:pointer}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-0YdPWoSrtM2Oy2UZ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .dashed-line{stroke-dasharray:3}#mermaid-svg-0YdPWoSrtM2Oy2UZ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ .commit-id,#mermaid-svg-0YdPWoSrtM2Oy2UZ .commit-msg,#mermaid-svg-0YdPWoSrtM2Oy2UZ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-0YdPWoSrtM2Oy2UZ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-0YdPWoSrtM2Oy2UZ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-0YdPWoSrtM2Oy2UZ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-0YdPWoSrtM2Oy2UZ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edgeLabel text{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-0YdPWoSrtM2Oy2UZ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-0YdPWoSrtM2Oy2UZ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-0YdPWoSrtM2Oy2UZ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-0YdPWoSrtM2Oy2UZ .note-edge{stroke-dasharray:5}#mermaid-svg-0YdPWoSrtM2Oy2UZ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-0YdPWoSrtM2Oy2UZ .error-icon{fill:#522}#mermaid-svg-0YdPWoSrtM2Oy2UZ .error-text{fill:#522;stroke:#522}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-0YdPWoSrtM2Oy2UZ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-0YdPWoSrtM2Oy2UZ .marker{fill:#333}#mermaid-svg-0YdPWoSrtM2Oy2UZ .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-0YdPWoSrtM2Oy2UZ {color: rgba(0, 0, 0, 0.75);font: ;}FeeFlsFee_JobEndNotificationFls_17_Dmu_GetNotifCallerFls_17_Dmu_GetNotifCallerFee_JobEndNotificationFeeFls
  • Fls模块成功处理一个Job时,向Fee模块返回此回调函数
  • Fee_JobEndNotification会调用Fls_17_Dmu_GetNotifCaller,获取状态&FlsStateVar->NotifCaller,从而知道哪个Job返回此Callback Function

Fee_JobErrorNotification

void Fee_JobErrorNotification (void)
#mermaid-svg-PA0vax9qGxA0uNLP .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-PA0vax9qGxA0uNLP .label text{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .node rect,#mermaid-svg-PA0vax9qGxA0uNLP .node circle,#mermaid-svg-PA0vax9qGxA0uNLP .node ellipse,#mermaid-svg-PA0vax9qGxA0uNLP .node polygon,#mermaid-svg-PA0vax9qGxA0uNLP .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-PA0vax9qGxA0uNLP .node .label{text-align:center;fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .node.clickable{cursor:pointer}#mermaid-svg-PA0vax9qGxA0uNLP .arrowheadPath{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-PA0vax9qGxA0uNLP .flowchart-link{stroke:#333;fill:none}#mermaid-svg-PA0vax9qGxA0uNLP .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-PA0vax9qGxA0uNLP .edgeLabel rect{opacity:0.9}#mermaid-svg-PA0vax9qGxA0uNLP .edgeLabel span{color:#333}#mermaid-svg-PA0vax9qGxA0uNLP .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-PA0vax9qGxA0uNLP .cluster text{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-PA0vax9qGxA0uNLP .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-PA0vax9qGxA0uNLP text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-PA0vax9qGxA0uNLP .actor-line{stroke:grey}#mermaid-svg-PA0vax9qGxA0uNLP .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-PA0vax9qGxA0uNLP .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-PA0vax9qGxA0uNLP #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-PA0vax9qGxA0uNLP .sequenceNumber{fill:#fff}#mermaid-svg-PA0vax9qGxA0uNLP #sequencenumber{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP #crosshead path{fill:#333;stroke:#333}#mermaid-svg-PA0vax9qGxA0uNLP .messageText{fill:#333;stroke:#333}#mermaid-svg-PA0vax9qGxA0uNLP .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-PA0vax9qGxA0uNLP .labelText,#mermaid-svg-PA0vax9qGxA0uNLP .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-PA0vax9qGxA0uNLP .loopText,#mermaid-svg-PA0vax9qGxA0uNLP .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-PA0vax9qGxA0uNLP .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-PA0vax9qGxA0uNLP .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-PA0vax9qGxA0uNLP .noteText,#mermaid-svg-PA0vax9qGxA0uNLP .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-PA0vax9qGxA0uNLP .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-PA0vax9qGxA0uNLP .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-PA0vax9qGxA0uNLP .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-PA0vax9qGxA0uNLP .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .section{stroke:none;opacity:0.2}#mermaid-svg-PA0vax9qGxA0uNLP .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-PA0vax9qGxA0uNLP .section2{fill:#fff400}#mermaid-svg-PA0vax9qGxA0uNLP .section1,#mermaid-svg-PA0vax9qGxA0uNLP .section3{fill:#fff;opacity:0.2}#mermaid-svg-PA0vax9qGxA0uNLP .sectionTitle0{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .sectionTitle1{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .sectionTitle2{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .sectionTitle3{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-PA0vax9qGxA0uNLP .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .grid path{stroke-width:0}#mermaid-svg-PA0vax9qGxA0uNLP .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-PA0vax9qGxA0uNLP .task{stroke-width:2}#mermaid-svg-PA0vax9qGxA0uNLP .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .taskText:not([font-size]){font-size:11px}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-PA0vax9qGxA0uNLP .task.clickable{cursor:pointer}#mermaid-svg-PA0vax9qGxA0uNLP .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-PA0vax9qGxA0uNLP .taskText0,#mermaid-svg-PA0vax9qGxA0uNLP .taskText1,#mermaid-svg-PA0vax9qGxA0uNLP .taskText2,#mermaid-svg-PA0vax9qGxA0uNLP .taskText3{fill:#fff}#mermaid-svg-PA0vax9qGxA0uNLP .task0,#mermaid-svg-PA0vax9qGxA0uNLP .task1,#mermaid-svg-PA0vax9qGxA0uNLP .task2,#mermaid-svg-PA0vax9qGxA0uNLP .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutside0,#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutside2{fill:#000}#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutside1,#mermaid-svg-PA0vax9qGxA0uNLP .taskTextOutside3{fill:#000}#mermaid-svg-PA0vax9qGxA0uNLP .active0,#mermaid-svg-PA0vax9qGxA0uNLP .active1,#mermaid-svg-PA0vax9qGxA0uNLP .active2,#mermaid-svg-PA0vax9qGxA0uNLP .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-PA0vax9qGxA0uNLP .activeText0,#mermaid-svg-PA0vax9qGxA0uNLP .activeText1,#mermaid-svg-PA0vax9qGxA0uNLP .activeText2,#mermaid-svg-PA0vax9qGxA0uNLP .activeText3{fill:#000 !important}#mermaid-svg-PA0vax9qGxA0uNLP .done0,#mermaid-svg-PA0vax9qGxA0uNLP .done1,#mermaid-svg-PA0vax9qGxA0uNLP .done2,#mermaid-svg-PA0vax9qGxA0uNLP .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-PA0vax9qGxA0uNLP .doneText0,#mermaid-svg-PA0vax9qGxA0uNLP .doneText1,#mermaid-svg-PA0vax9qGxA0uNLP .doneText2,#mermaid-svg-PA0vax9qGxA0uNLP .doneText3{fill:#000 !important}#mermaid-svg-PA0vax9qGxA0uNLP .crit0,#mermaid-svg-PA0vax9qGxA0uNLP .crit1,#mermaid-svg-PA0vax9qGxA0uNLP .crit2,#mermaid-svg-PA0vax9qGxA0uNLP .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-PA0vax9qGxA0uNLP .activeCrit0,#mermaid-svg-PA0vax9qGxA0uNLP .activeCrit1,#mermaid-svg-PA0vax9qGxA0uNLP .activeCrit2,#mermaid-svg-PA0vax9qGxA0uNLP .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-PA0vax9qGxA0uNLP .doneCrit0,#mermaid-svg-PA0vax9qGxA0uNLP .doneCrit1,#mermaid-svg-PA0vax9qGxA0uNLP .doneCrit2,#mermaid-svg-PA0vax9qGxA0uNLP .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-PA0vax9qGxA0uNLP .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-PA0vax9qGxA0uNLP .milestoneText{font-style:italic}#mermaid-svg-PA0vax9qGxA0uNLP .doneCritText0,#mermaid-svg-PA0vax9qGxA0uNLP .doneCritText1,#mermaid-svg-PA0vax9qGxA0uNLP .doneCritText2,#mermaid-svg-PA0vax9qGxA0uNLP .doneCritText3{fill:#000 !important}#mermaid-svg-PA0vax9qGxA0uNLP .activeCritText0,#mermaid-svg-PA0vax9qGxA0uNLP .activeCritText1,#mermaid-svg-PA0vax9qGxA0uNLP .activeCritText2,#mermaid-svg-PA0vax9qGxA0uNLP .activeCritText3{fill:#000 !important}#mermaid-svg-PA0vax9qGxA0uNLP .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-PA0vax9qGxA0uNLP g.classGroup text .title{font-weight:bolder}#mermaid-svg-PA0vax9qGxA0uNLP g.clickable{cursor:pointer}#mermaid-svg-PA0vax9qGxA0uNLP g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-PA0vax9qGxA0uNLP g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-PA0vax9qGxA0uNLP .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-PA0vax9qGxA0uNLP .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-PA0vax9qGxA0uNLP .dashed-line{stroke-dasharray:3}#mermaid-svg-PA0vax9qGxA0uNLP #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP .commit-id,#mermaid-svg-PA0vax9qGxA0uNLP .commit-msg,#mermaid-svg-PA0vax9qGxA0uNLP .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-PA0vax9qGxA0uNLP g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-PA0vax9qGxA0uNLP g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-PA0vax9qGxA0uNLP g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-PA0vax9qGxA0uNLP .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-PA0vax9qGxA0uNLP .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-PA0vax9qGxA0uNLP .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-PA0vax9qGxA0uNLP .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-PA0vax9qGxA0uNLP .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-PA0vax9qGxA0uNLP .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-PA0vax9qGxA0uNLP .edgeLabel text{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-PA0vax9qGxA0uNLP .node circle.state-start{fill:black;stroke:black}#mermaid-svg-PA0vax9qGxA0uNLP .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-PA0vax9qGxA0uNLP #statediagram-barbEnd{fill:#9370db}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-state .divider{stroke:#9370db}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-PA0vax9qGxA0uNLP .note-edge{stroke-dasharray:5}#mermaid-svg-PA0vax9qGxA0uNLP .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-PA0vax9qGxA0uNLP .error-icon{fill:#522}#mermaid-svg-PA0vax9qGxA0uNLP .error-text{fill:#522;stroke:#522}#mermaid-svg-PA0vax9qGxA0uNLP .edge-thickness-normal{stroke-width:2px}#mermaid-svg-PA0vax9qGxA0uNLP .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-PA0vax9qGxA0uNLP .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-PA0vax9qGxA0uNLP .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-PA0vax9qGxA0uNLP .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-PA0vax9qGxA0uNLP .marker{fill:#333}#mermaid-svg-PA0vax9qGxA0uNLP .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-PA0vax9qGxA0uNLP {color: rgba(0, 0, 0, 0.75);font: ;}FeeFlsFee_JobErrorNotificationFls_17_Dmu_GetNotifCallerFls_17_Dmu_GetNotifCallerFee_JobErrorNotificationFeeFls
  • Fls模块处理一个Job失败时,向Fee模块返回此回调函数
  • Fee_JobErrorNotification会调用Fls_17_Dmu_GetNotifCaller,获取状态&FlsStateVar->NotifCaller,从而知道哪个Job返回此Callback Function


2.6 Fee模块使用的外部API

Det_ReportError

Std_ReturnType Det_ReportError
(
uint16 ModuleId,
uint8 InstanceId,
uint8 ApiId,
uint8 ErrorId
)
  • 来自Det模块的API,检测并报告开发错误,由Dev Error Detect启用

  • ModuleId==FEE_MODULE_ID21

  • InstanceId=0

  • ApiId如下

  • ErrorId有7个,示例如下
    FEE_E_UNINIT
    FEE_E_INVALID_BLOCK_NO


Mcal_ReportSafetyError

Std_ReturnType Mcal_ReportSafetyError
(
uint16 ModuleId,
uint8 InstanceId,
uint8 ApiId,
uint8 ErrorId
)
  • 来自MCAL的API,检测并报告安全错误,由Safety Enable启用
  • 安全错误是指DMU寄存器中记录的错误,由内联函数读取,其中部分错误和开发错误相同
  • ModuleIdInstanceIdApiIdDet_ReportError
  • ErrorId有8个,示例如下
    FEE_SE_UNINIT
    FEE_SE_INVALID_BLOCK_NO

2.7 Fee模块使用的外部Callback

NvM_JobEndNotification

void NvM_JobEndNotification (void)
#mermaid-svg-BAUewPQTxcdNO4RL .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-BAUewPQTxcdNO4RL .label text{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .node rect,#mermaid-svg-BAUewPQTxcdNO4RL .node circle,#mermaid-svg-BAUewPQTxcdNO4RL .node ellipse,#mermaid-svg-BAUewPQTxcdNO4RL .node polygon,#mermaid-svg-BAUewPQTxcdNO4RL .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-BAUewPQTxcdNO4RL .node .label{text-align:center;fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .node.clickable{cursor:pointer}#mermaid-svg-BAUewPQTxcdNO4RL .arrowheadPath{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-BAUewPQTxcdNO4RL .flowchart-link{stroke:#333;fill:none}#mermaid-svg-BAUewPQTxcdNO4RL .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-BAUewPQTxcdNO4RL .edgeLabel rect{opacity:0.9}#mermaid-svg-BAUewPQTxcdNO4RL .edgeLabel span{color:#333}#mermaid-svg-BAUewPQTxcdNO4RL .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-BAUewPQTxcdNO4RL .cluster text{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-BAUewPQTxcdNO4RL .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-BAUewPQTxcdNO4RL text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-BAUewPQTxcdNO4RL .actor-line{stroke:grey}#mermaid-svg-BAUewPQTxcdNO4RL .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-BAUewPQTxcdNO4RL .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-BAUewPQTxcdNO4RL #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-BAUewPQTxcdNO4RL .sequenceNumber{fill:#fff}#mermaid-svg-BAUewPQTxcdNO4RL #sequencenumber{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL #crosshead path{fill:#333;stroke:#333}#mermaid-svg-BAUewPQTxcdNO4RL .messageText{fill:#333;stroke:#333}#mermaid-svg-BAUewPQTxcdNO4RL .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-BAUewPQTxcdNO4RL .labelText,#mermaid-svg-BAUewPQTxcdNO4RL .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-BAUewPQTxcdNO4RL .loopText,#mermaid-svg-BAUewPQTxcdNO4RL .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-BAUewPQTxcdNO4RL .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-BAUewPQTxcdNO4RL .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-BAUewPQTxcdNO4RL .noteText,#mermaid-svg-BAUewPQTxcdNO4RL .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-BAUewPQTxcdNO4RL .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-BAUewPQTxcdNO4RL .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-BAUewPQTxcdNO4RL .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-BAUewPQTxcdNO4RL .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .section{stroke:none;opacity:0.2}#mermaid-svg-BAUewPQTxcdNO4RL .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-BAUewPQTxcdNO4RL .section2{fill:#fff400}#mermaid-svg-BAUewPQTxcdNO4RL .section1,#mermaid-svg-BAUewPQTxcdNO4RL .section3{fill:#fff;opacity:0.2}#mermaid-svg-BAUewPQTxcdNO4RL .sectionTitle0{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .sectionTitle1{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .sectionTitle2{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .sectionTitle3{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-BAUewPQTxcdNO4RL .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .grid path{stroke-width:0}#mermaid-svg-BAUewPQTxcdNO4RL .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-BAUewPQTxcdNO4RL .task{stroke-width:2}#mermaid-svg-BAUewPQTxcdNO4RL .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .taskText:not([font-size]){font-size:11px}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-BAUewPQTxcdNO4RL .task.clickable{cursor:pointer}#mermaid-svg-BAUewPQTxcdNO4RL .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-BAUewPQTxcdNO4RL .taskText0,#mermaid-svg-BAUewPQTxcdNO4RL .taskText1,#mermaid-svg-BAUewPQTxcdNO4RL .taskText2,#mermaid-svg-BAUewPQTxcdNO4RL .taskText3{fill:#fff}#mermaid-svg-BAUewPQTxcdNO4RL .task0,#mermaid-svg-BAUewPQTxcdNO4RL .task1,#mermaid-svg-BAUewPQTxcdNO4RL .task2,#mermaid-svg-BAUewPQTxcdNO4RL .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutside0,#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutside2{fill:#000}#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutside1,#mermaid-svg-BAUewPQTxcdNO4RL .taskTextOutside3{fill:#000}#mermaid-svg-BAUewPQTxcdNO4RL .active0,#mermaid-svg-BAUewPQTxcdNO4RL .active1,#mermaid-svg-BAUewPQTxcdNO4RL .active2,#mermaid-svg-BAUewPQTxcdNO4RL .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-BAUewPQTxcdNO4RL .activeText0,#mermaid-svg-BAUewPQTxcdNO4RL .activeText1,#mermaid-svg-BAUewPQTxcdNO4RL .activeText2,#mermaid-svg-BAUewPQTxcdNO4RL .activeText3{fill:#000 !important}#mermaid-svg-BAUewPQTxcdNO4RL .done0,#mermaid-svg-BAUewPQTxcdNO4RL .done1,#mermaid-svg-BAUewPQTxcdNO4RL .done2,#mermaid-svg-BAUewPQTxcdNO4RL .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-BAUewPQTxcdNO4RL .doneText0,#mermaid-svg-BAUewPQTxcdNO4RL .doneText1,#mermaid-svg-BAUewPQTxcdNO4RL .doneText2,#mermaid-svg-BAUewPQTxcdNO4RL .doneText3{fill:#000 !important}#mermaid-svg-BAUewPQTxcdNO4RL .crit0,#mermaid-svg-BAUewPQTxcdNO4RL .crit1,#mermaid-svg-BAUewPQTxcdNO4RL .crit2,#mermaid-svg-BAUewPQTxcdNO4RL .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-BAUewPQTxcdNO4RL .activeCrit0,#mermaid-svg-BAUewPQTxcdNO4RL .activeCrit1,#mermaid-svg-BAUewPQTxcdNO4RL .activeCrit2,#mermaid-svg-BAUewPQTxcdNO4RL .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-BAUewPQTxcdNO4RL .doneCrit0,#mermaid-svg-BAUewPQTxcdNO4RL .doneCrit1,#mermaid-svg-BAUewPQTxcdNO4RL .doneCrit2,#mermaid-svg-BAUewPQTxcdNO4RL .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-BAUewPQTxcdNO4RL .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-BAUewPQTxcdNO4RL .milestoneText{font-style:italic}#mermaid-svg-BAUewPQTxcdNO4RL .doneCritText0,#mermaid-svg-BAUewPQTxcdNO4RL .doneCritText1,#mermaid-svg-BAUewPQTxcdNO4RL .doneCritText2,#mermaid-svg-BAUewPQTxcdNO4RL .doneCritText3{fill:#000 !important}#mermaid-svg-BAUewPQTxcdNO4RL .activeCritText0,#mermaid-svg-BAUewPQTxcdNO4RL .activeCritText1,#mermaid-svg-BAUewPQTxcdNO4RL .activeCritText2,#mermaid-svg-BAUewPQTxcdNO4RL .activeCritText3{fill:#000 !important}#mermaid-svg-BAUewPQTxcdNO4RL .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-BAUewPQTxcdNO4RL g.classGroup text .title{font-weight:bolder}#mermaid-svg-BAUewPQTxcdNO4RL g.clickable{cursor:pointer}#mermaid-svg-BAUewPQTxcdNO4RL g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-BAUewPQTxcdNO4RL g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-BAUewPQTxcdNO4RL .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-BAUewPQTxcdNO4RL .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-BAUewPQTxcdNO4RL .dashed-line{stroke-dasharray:3}#mermaid-svg-BAUewPQTxcdNO4RL #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL .commit-id,#mermaid-svg-BAUewPQTxcdNO4RL .commit-msg,#mermaid-svg-BAUewPQTxcdNO4RL .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-BAUewPQTxcdNO4RL g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-BAUewPQTxcdNO4RL g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-BAUewPQTxcdNO4RL g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-BAUewPQTxcdNO4RL .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-BAUewPQTxcdNO4RL .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-BAUewPQTxcdNO4RL .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-BAUewPQTxcdNO4RL .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-BAUewPQTxcdNO4RL .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-BAUewPQTxcdNO4RL .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-BAUewPQTxcdNO4RL .edgeLabel text{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-BAUewPQTxcdNO4RL .node circle.state-start{fill:black;stroke:black}#mermaid-svg-BAUewPQTxcdNO4RL .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-BAUewPQTxcdNO4RL #statediagram-barbEnd{fill:#9370db}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-state .divider{stroke:#9370db}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-BAUewPQTxcdNO4RL .note-edge{stroke-dasharray:5}#mermaid-svg-BAUewPQTxcdNO4RL .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-BAUewPQTxcdNO4RL .error-icon{fill:#522}#mermaid-svg-BAUewPQTxcdNO4RL .error-text{fill:#522;stroke:#522}#mermaid-svg-BAUewPQTxcdNO4RL .edge-thickness-normal{stroke-width:2px}#mermaid-svg-BAUewPQTxcdNO4RL .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-BAUewPQTxcdNO4RL .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-BAUewPQTxcdNO4RL .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-BAUewPQTxcdNO4RL .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-BAUewPQTxcdNO4RL .marker{fill:#333}#mermaid-svg-BAUewPQTxcdNO4RL .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-BAUewPQTxcdNO4RL {color: rgba(0, 0, 0, 0.75);font: ;}NvMFeeFlsFee_JobEndNotificationFls_17_Dmu_GetNotifCallerFls_17_Dmu_GetNotifCallerNvM_JobEndNotificationNvM_JobEndNotificationFee_JobEndNotificationNvMFeeFls
  • Fee模块接收到Fls模块发送的Fee_JobEndNotification后,向NvM模块返回此回调函数
  • NvM_JobEndNotification会在当前NVRAM块信息中写入NVM_REQ_OK

NvM_JobErrorNotification

void NvM_JobErrorNotification (void)
#mermaid-svg-lat5yJnZgJsCH4Ls .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .label text{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .node rect,#mermaid-svg-lat5yJnZgJsCH4Ls .node circle,#mermaid-svg-lat5yJnZgJsCH4Ls .node ellipse,#mermaid-svg-lat5yJnZgJsCH4Ls .node polygon,#mermaid-svg-lat5yJnZgJsCH4Ls .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-lat5yJnZgJsCH4Ls .node .label{text-align:center;fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .node.clickable{cursor:pointer}#mermaid-svg-lat5yJnZgJsCH4Ls .arrowheadPath{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-lat5yJnZgJsCH4Ls .flowchart-link{stroke:#333;fill:none}#mermaid-svg-lat5yJnZgJsCH4Ls .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-lat5yJnZgJsCH4Ls .edgeLabel rect{opacity:0.9}#mermaid-svg-lat5yJnZgJsCH4Ls .edgeLabel span{color:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-lat5yJnZgJsCH4Ls .cluster text{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-lat5yJnZgJsCH4Ls .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-lat5yJnZgJsCH4Ls text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-lat5yJnZgJsCH4Ls .actor-line{stroke:grey}#mermaid-svg-lat5yJnZgJsCH4Ls .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-lat5yJnZgJsCH4Ls #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .sequenceNumber{fill:#fff}#mermaid-svg-lat5yJnZgJsCH4Ls #sequencenumber{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls #crosshead path{fill:#333;stroke:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .messageText{fill:#333;stroke:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-lat5yJnZgJsCH4Ls .labelText,#mermaid-svg-lat5yJnZgJsCH4Ls .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-lat5yJnZgJsCH4Ls .loopText,#mermaid-svg-lat5yJnZgJsCH4Ls .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-lat5yJnZgJsCH4Ls .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-lat5yJnZgJsCH4Ls .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-lat5yJnZgJsCH4Ls .noteText,#mermaid-svg-lat5yJnZgJsCH4Ls .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-lat5yJnZgJsCH4Ls .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-lat5yJnZgJsCH4Ls .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-lat5yJnZgJsCH4Ls .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-lat5yJnZgJsCH4Ls .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .section{stroke:none;opacity:0.2}#mermaid-svg-lat5yJnZgJsCH4Ls .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-lat5yJnZgJsCH4Ls .section2{fill:#fff400}#mermaid-svg-lat5yJnZgJsCH4Ls .section1,#mermaid-svg-lat5yJnZgJsCH4Ls .section3{fill:#fff;opacity:0.2}#mermaid-svg-lat5yJnZgJsCH4Ls .sectionTitle0{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .sectionTitle1{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .sectionTitle2{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .sectionTitle3{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-lat5yJnZgJsCH4Ls .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .grid path{stroke-width:0}#mermaid-svg-lat5yJnZgJsCH4Ls .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-lat5yJnZgJsCH4Ls .task{stroke-width:2}#mermaid-svg-lat5yJnZgJsCH4Ls .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .taskText:not([font-size]){font-size:11px}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-lat5yJnZgJsCH4Ls .task.clickable{cursor:pointer}#mermaid-svg-lat5yJnZgJsCH4Ls .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lat5yJnZgJsCH4Ls .taskText0,#mermaid-svg-lat5yJnZgJsCH4Ls .taskText1,#mermaid-svg-lat5yJnZgJsCH4Ls .taskText2,#mermaid-svg-lat5yJnZgJsCH4Ls .taskText3{fill:#fff}#mermaid-svg-lat5yJnZgJsCH4Ls .task0,#mermaid-svg-lat5yJnZgJsCH4Ls .task1,#mermaid-svg-lat5yJnZgJsCH4Ls .task2,#mermaid-svg-lat5yJnZgJsCH4Ls .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutside0,#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutside2{fill:#000}#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutside1,#mermaid-svg-lat5yJnZgJsCH4Ls .taskTextOutside3{fill:#000}#mermaid-svg-lat5yJnZgJsCH4Ls .active0,#mermaid-svg-lat5yJnZgJsCH4Ls .active1,#mermaid-svg-lat5yJnZgJsCH4Ls .active2,#mermaid-svg-lat5yJnZgJsCH4Ls .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-lat5yJnZgJsCH4Ls .activeText0,#mermaid-svg-lat5yJnZgJsCH4Ls .activeText1,#mermaid-svg-lat5yJnZgJsCH4Ls .activeText2,#mermaid-svg-lat5yJnZgJsCH4Ls .activeText3{fill:#000 !important}#mermaid-svg-lat5yJnZgJsCH4Ls .done0,#mermaid-svg-lat5yJnZgJsCH4Ls .done1,#mermaid-svg-lat5yJnZgJsCH4Ls .done2,#mermaid-svg-lat5yJnZgJsCH4Ls .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-lat5yJnZgJsCH4Ls .doneText0,#mermaid-svg-lat5yJnZgJsCH4Ls .doneText1,#mermaid-svg-lat5yJnZgJsCH4Ls .doneText2,#mermaid-svg-lat5yJnZgJsCH4Ls .doneText3{fill:#000 !important}#mermaid-svg-lat5yJnZgJsCH4Ls .crit0,#mermaid-svg-lat5yJnZgJsCH4Ls .crit1,#mermaid-svg-lat5yJnZgJsCH4Ls .crit2,#mermaid-svg-lat5yJnZgJsCH4Ls .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-lat5yJnZgJsCH4Ls .activeCrit0,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCrit1,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCrit2,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-lat5yJnZgJsCH4Ls .doneCrit0,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCrit1,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCrit2,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-lat5yJnZgJsCH4Ls .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-lat5yJnZgJsCH4Ls .milestoneText{font-style:italic}#mermaid-svg-lat5yJnZgJsCH4Ls .doneCritText0,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCritText1,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCritText2,#mermaid-svg-lat5yJnZgJsCH4Ls .doneCritText3{fill:#000 !important}#mermaid-svg-lat5yJnZgJsCH4Ls .activeCritText0,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCritText1,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCritText2,#mermaid-svg-lat5yJnZgJsCH4Ls .activeCritText3{fill:#000 !important}#mermaid-svg-lat5yJnZgJsCH4Ls .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-lat5yJnZgJsCH4Ls g.classGroup text .title{font-weight:bolder}#mermaid-svg-lat5yJnZgJsCH4Ls g.clickable{cursor:pointer}#mermaid-svg-lat5yJnZgJsCH4Ls g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-lat5yJnZgJsCH4Ls g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-lat5yJnZgJsCH4Ls .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-lat5yJnZgJsCH4Ls .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-lat5yJnZgJsCH4Ls .dashed-line{stroke-dasharray:3}#mermaid-svg-lat5yJnZgJsCH4Ls #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls .commit-id,#mermaid-svg-lat5yJnZgJsCH4Ls .commit-msg,#mermaid-svg-lat5yJnZgJsCH4Ls .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-lat5yJnZgJsCH4Ls g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-lat5yJnZgJsCH4Ls g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-lat5yJnZgJsCH4Ls g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-lat5yJnZgJsCH4Ls .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-lat5yJnZgJsCH4Ls .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-lat5yJnZgJsCH4Ls .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-lat5yJnZgJsCH4Ls .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-lat5yJnZgJsCH4Ls .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-lat5yJnZgJsCH4Ls .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-lat5yJnZgJsCH4Ls .edgeLabel text{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lat5yJnZgJsCH4Ls .node circle.state-start{fill:black;stroke:black}#mermaid-svg-lat5yJnZgJsCH4Ls .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-lat5yJnZgJsCH4Ls #statediagram-barbEnd{fill:#9370db}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-state .divider{stroke:#9370db}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-lat5yJnZgJsCH4Ls .note-edge{stroke-dasharray:5}#mermaid-svg-lat5yJnZgJsCH4Ls .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-lat5yJnZgJsCH4Ls .error-icon{fill:#522}#mermaid-svg-lat5yJnZgJsCH4Ls .error-text{fill:#522;stroke:#522}#mermaid-svg-lat5yJnZgJsCH4Ls .edge-thickness-normal{stroke-width:2px}#mermaid-svg-lat5yJnZgJsCH4Ls .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-lat5yJnZgJsCH4Ls .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-lat5yJnZgJsCH4Ls .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-lat5yJnZgJsCH4Ls .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-lat5yJnZgJsCH4Ls .marker{fill:#333}#mermaid-svg-lat5yJnZgJsCH4Ls .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-lat5yJnZgJsCH4Ls {color: rgba(0, 0, 0, 0.75);font: ;}NvMFeeFlsFee_JobErrorNotificationFls_17_Dmu_GetNotifCallerFls_17_Dmu_GetNotifCallerNvM_JobErrorNotificationNvM_JobErrorNotificationFee_JobErrorNotificationNvMFeeFls
  • Fee模块接收到Fls模块发送的Fee_JobErrorNotification后,向NvM模块返回此回调函数
  • NvM_JobErrorNotification会在当前NVRAM块信息中写入NVM_REQ_NOT_OKNVM_REQ_NV_INVALIDATENVM_REQ_INTEGRITY_FAILED

>>返回AUTOSAR系列文章目录<<


3 Fee模块的DaVinci Configurator配制

3.1 Fee\FeeBlockConfigurations

每个Logical Block都有一个FeeBlockConfiguration页面,配制Logical Block的基本属性


Device Index

配制 Configurator选项 Device Index -> referrence
  • 将当前Block关联到Fls\FlsGeneral

Blcok Number

配制 Configurator选项 Blcok Number -> [1, 65535]
影响 Fee_PBcfg.c static const Fee_BlockType Fee_BlockConfig[]
{
.BlockNumber=
}
  • 根据根据NvM模块配制自动生成,无法修改

Blcok Size

配制 Configurator选项 Blcok Size -> [1, 65535]
影响 Fee_PBcfg.c static const Fee_BlockType Fee_BlockConfig[]
{
.Size=
}
  • 自动生成,系统在NvM模块定义的Block Length基础上加CRC长度(32位CRC则加4byte)
  • CRC长度取决于NvM模块的Crc Type

Immediate Data

配制 Configurator选项 Immediate Data -> True/False
影响 Fee_PBcfg.c static const Fee_BlockType Fee_BlockConfig[]
{
.FeeImmdiateData=
}
  • Immediate Data开启表明Block包含Immediate Data
  • 依据NvM模块自动生成

Number Of Write Cycles

配制 Configurator选项 Number Of Write Cycles -> [1, :]
影响 Fee_PBcfg.c static const Fee_BlockType Fee_BlockConfig[]
{
.CycleCountLimit=
}
  • Block的最大Write寿命
  • 选择1200000

Quasi Static Manager

配制 Configurator选项 Quasi Static Manager -> True/False
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

Qs Block Address

配制 Configurator选项 Qs Block Address -> [0, :]
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

Qs Block Instances

配制 Configurator选项 Qs Block Instances -> [0, 128]
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

4.2 Fee\FeeGeneral

FeeGeneral部分主要对应Fee_Cfg.h文件中的常量宏定义开关宏定义


Main Function Period [s]

配制 Configurator选项 Main Function Period [s] -> [0.001, 1]
  • Fee_MainFunction调用周期,要和NvM_MainFunction一致,通常为0.01

Virtual Page Size

配制 Configurator选项 Virtual Page Size -> [8]
影响 Fee_Cfg.h #define FEE_VIRTUAL_PAGE_SIZE
  • Virtual Page Size必须是Flash Page的整数倍
  • 在AUTOSAR中已经被限制只能填8

Polling Mode

配制 Configurator选项 Polling Mode -> True/False
  • 开启则选择Polling Mode,关闭则选择Callback Mode
  • 选择False

Block Type Configured

配制 Configurator选项 Block Type Configured -> enum:
FEE_DOUBLE_SECTOR_DATA_ONLY
FEE_DOUBLE_SECTOR_AND_QUASI_STATIC_DATA
FEE_QUASI_STATIC_DATA_ONLY
影响 Fee_Cfg.h #define FEE_DATA_BLOCK_SUPPORTED
  • 使用NvM模块则必须选择FEE_DOUBLE_SECTOR_DATA_ONLY

Nvm Job End Notification

配制 Configurator选项 Nvm Job End Notification -> NvM_JobEndNotification 或 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeNvMJobEndNotificationPtr =
}
  • NvM模块提供NvM_JobEndNotification回调函数
  • 不填则给Fee_Config.FeeNvMJobEndNotification 赋值NULL_PTR

Nvm Job Error Notification

配制 Configurator选项 Nvm Job Error Notification -> NvM_JobErrorNotification 或 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeNvMJobErrorNotificationPtr =
}
  • NvM模块提供NvM_JobErrorNotification回调函数
  • 不填则给Fee_Config.FeeNvMJobErrorNotification 赋值NULL_PTR

Qs Job End Notification

配制 Configurator选项 Qs Job End Notification -> Qs_JobEndNotification 或 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeQsJobEndNotificationPtr =
}
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

Qs Job Error Notification

配制 Configurator选项 Qs Job Error Notification -> Qs_JobErrorNotification 或 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeQaJobErrorNotificationPtr =
}
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

Dev Error Detect

配制 Configurator选项 Dev Error Detect -> True/False
影响 Fee_Cfg.h #define FEE_DEV_ERROR_DETECT
  • 宏定义开关,是否启用Det模块检测开发错误
  • 如果启用Dev Error Detect,则添加#include Det.h并启用APIDet_ReportError
  • 选择False

Safety Enable

配制 Configurator选项 Safety Enable -> True/False
影响 Fee_Cfg.h #define FEE_SAFETY_ENABLE
  • 宏定义开关,是否启用MCAL层检测安全错误
  • 如果使用Safety Enable,则模块添加#include Mcal_SafetyError.h,启用APIMcal_ReportSafetyError
  • 选择False

Init Check Api

配制 Configurator选项 Init Check Api -> True/False
影响 Fee_Cfg.h #define FEE_INITCHECK_API
  • 宏定义开关,是否启用API Fee_InitCheck,返回Fee模块是否完成初始化
  • 选择False

Set Mode supported

配制 Configurator选项 Set Mode supported -> True/False
影响 Fee_Cfg.h #define FEE_SET_MODE_SUPPORTED
  • 宏定义开关,是否启用API Fee_SetMode
  • 选择False

Version Info Api

配制 Configurator选项 Version Info Api -> True/False
影响 Fee_Cfg.h #define FEE_VERSION_INFO_API
  • 宏定义开关,是否启用APIFee_GetVersionInfo
  • 选择False

3.3 Fee\FeeIfxSpecificConfig

此页操作英飞凌特有的配制信息


Cancel All Api

配制 Configurator选项 Cancel All Api -> True/False
影响 Fee_Cfg.h #define FEE_CANCEL_ALL_API
  • 宏定义开关,是否启用API Fee_17_CancelAll
  • 开启则允许取消所有当前任务,优先Write high priority quasi static data
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA才有意义
  • 选择False

Erase All Enable

配制 Configurator选项 Erase All Enable -> True/False
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeEraseAllEnable=
}
  • Fee_Config->FeeEraseAllEnable赋值
  • True:当Sector处于illegal state时,将DF0_EEPROM格式化然后恢复之前的数据
  • False:当Sector处于illegal state时无法恢复,陷入死循环
  • 选择True

Gc Restart

配制 Configurator选项 Gc Restart -> enum:
FEE_GC_RESTART_INIT
FEE_GC_RESTART_WRITE
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{
.FeeGCConfigSetting
{
.FeeGcResertPoint=
}
}
  • Fee_Config->FeeGCConfigSetting->FeeGcResertPoint赋值
  • FEE_GC_RESTART_INIT:当Fee模块初始化后,restart GC
  • FEE_GC_RESTART_WRITE:当Fee模块初始化且第一个Read/Write/Invalidate请求后,restart GC
  • 选择FEE_GC_RESTART_INIT

Get Cycle Count Api

配制 Configurator选项 Get Cycle Count Api -> True/False
影响 Fee_Cfg.h #define FEE_GET_CYCLE_COUNT_API
  • 宏定义开关,是否启用API Fee_17_GetCycleCount获取block cycle和erase cycle
  • 选择True

Get Prev Data Api

配制 Configurator选项 Get Cycle Count Api -> True/False
影响 Fee_Cfg.h #define FEE_GET_PREV_DATA_API
  • 宏定义开关,是否启用API Fee_17_GetPrevData获取上一个Block Instance数据
  • 选择False

Max Block Count

配制 Configurator选项 Max Block Count -> [1, :]
影响 Fee_Cfg.h #define FEE_MAX_BLOCK_COUNT
  • 配制的Block数量

Max Bytes Per Cycle

配制 Configurator选项 Max Bytes Per Cycle -> enum:
FEE_MAX_BYTES_64
FEE_MAX_BYTES_128
FEE_MAX_BYTES_256
FEE_MAX_BYTES_512
影响 Fee_Cfg.h #define FEE_MAX_BYTES_PER_CYCLE
  • 一个Fee_MainFunction周期内最大数据处理量
  • 选择FEE_MAX_BYTES_512

Nvm Illegal State Notification

配制 Configurator选项 Nvm Illegal State Notification -> NvM_IllegalStateNotification 或 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • Fee模块提供Fee_NvMIllegalStateNotification回调函数
  • 不填则给Fee_Config.NvMIllegalStateNotification 赋值NULL_PTR
  • 一般不填

Qs Harden Error Notification

配制 Configurator选项 Qs Harden Error Notification -> 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

Qs Illegal State Notification

配制 Configurator选项 Qs Illegal State Notification -> 不填
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • Block Type Configured选择FEE_SECTOR_AND_QUASI_STATIC_DATA或者FEE_QUASI_STATIC_DATA_ONLY才有意义

State Var Struct

配制 Configurator选项 State Var Struct -> FeeStateVar
影响 Fee_PBcfg.c static Fee_StateDataType FeeStateVar
  • 定义Fee模块状态指针名称,默认的就够用了

Threshold Value

配制 Configurator选项 Threshold Value -> [0, :]
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • Sector中剩余内存小于Threshold Value时触发garbage collect和sector change

Um Config Blk Overflow Handler

配制 Configurator选项 Um Config Blk Overflow Handler -> enum:
FEE_CONTINUE
FEE_STOP_AT_GC
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • FEE_CONTINUE: GC时遇到unconfigurated block直接跳过
  • FEE_STOP_AT_GC: GC时遇到unconfigurated block短暂进入只读状态
  • FEE_CONTINUE

Um Config Block

配制 Configurator选项 Um Config Blk Overflow Handler -> enum:
FEE_UNCONFIG_BLOCK_IGNORE
FEE_UNCONFIG_BLOCK_KEEP
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • FEE_UNCONFIG_BLOCK_IGNORE: GC时不复制unconfigurated block
  • FEE_UNCONFIG_BLOCK_KEEP: GC时赋值unconfigurated block
  • FEE_UNCONFIG_BLOCK_IGNORE

Use Erase Suspend

配制 Configurator选项 Use Erase Suspend -> True/False
影响 Fee_PBcfg.c const Fee_ConfigType Fee_Config
{

}
  • 启用时,Fee模块可以中断GC操作,优先进行Read/Write请求
  • 这是TC389的硬件功能
  • 选择False

Virgin Flash Illegal State

配制 Configurator选项 Virgin Flash Illegal State -> True/False
影响 Fee_Cfg.h #define FEE_VIRGIN_FLASH_ILLEGAL_STATE
  • 选择False

3.4 Fee\FeeDemEventParamterRefs

本页是Error后Dem模块对应的Action,不填代表FEE_DISABLE_DEM_REPORT


E GC ERASE

配制 Configurator选项 E GC ERASE -> 不填
影响 Fee_Cfg.h #define FEE_GC_ERASE_DEM_REPORT

E GC INIT

配制 Configurator选项 E GC INIT -> 不填
影响 Fee_Cfg.h #define FEE_GC_INIT_DEM_REPORT

E GC READ

配制 Configurator选项 E GC READ -> 不填
影响 Fee_Cfg.h #define FEE_GC_READ_DEM_REPORT

E GC TRIG

配制 Configurator选项 E GC TRIG -> 不填
影响 Fee_Cfg.h #define FEE_GC_TRIG_DEM_REPORT

E GC WRITE

配制 Configurator选项 E GC WRITE -> 不填
影响 Fee_Cfg.h #define FEE_GC_WRITE_DEM_REPORT

E INVALIDATE

配制 Configurator选项 E INVALIDATE -> 不填
影响 Fee_Cfg.h #define FEE_INVALIDATE_DEM_REPORT

E READ

配制 Configurator选项 E READ -> 不填
影响 Fee_Cfg.h #define FEE_READ_DEM_REPORT

E UNCONFIG BLK EXCEEDED

配制 Configurator选项 E UNCONFIG BLK EXCEEDED -> 不填
影响 Fee_Cfg.h #define FEE_UNCFG_BLK_DEM_REPORT

E WRITE

配制 Configurator选项 E WRITE -> 不填
影响 Fee_Cfg.h #define FEE_WRITE_DEM_REPORT

E WRITE CYCLES EXHAUSTED

配制 Configurator选项 E WRITE CUCLES EXHAUSTED -> 不填
影响 Fee_Cfg.h #define FEE_WRITE_CYCLES_DEM_REPORT

>>返回AUTOSAR系列文章目录<<


AUTOSAR-Fee模块相关推荐

  1. 基于Vector 的AUTOSAR NvM 模块使用

    本文主要讲述Vector的两款工具configurator和Developer关于NvM的配置流程,包括如何新建NvM SWC以及添加和修改NvM block,Developer主要涉及NvM SWC ...

  2. AUTOSAR FEE 评估策略分析

    在前面提到的基于相同的Mcu. 可能有不同的供应商提供Fee模块(或者可以给Fee Suppiler提要求),他们的对于换页机制,存储结构,读写速度等相关功能可能存在差异 因此在选择Fee Suppl ...

  3. 搞一下CP AUTOSAR 入门 | 02 CP AUTOSAR 基础模块功能描述

    前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在上一篇介绍了CP AUTOSAR的分层结构,对于多数使用AUTOSAR架构开发汽 ...

  4. AUTOSAR从入门到精通100讲(二十四)-AUTOSAR通信篇—AUTOSAR COM模块

    AUTOSAR COM是AUTOSAR通讯的重要组成部分,它是从OSEK COM标准的基础上发展而来的.它提出了一个不同速率的总线网络之间进行数据交换的方法,为汽车控制单元应用软件提供了统一的通信环境 ...

  5. Autosar Dcm模块之Vector Configurator Pro配置(DSP子模块)

    背景 之前简单介绍了Autosar Dcm模块,接下来我们直接切入主题,如何通过Vector Configurator Pro工具配置DSD子模块,并实现客户的需求. DSP子模块配置 1.DSP子模 ...

  6. AUTOSAR ComM模块介绍

    AUTOSAR ComM模块介绍 Autosar ComM概述 Autosar ComM 全称是 Autosar Communication Manager,顾名思义就是用来管理通讯的,ComM 模块 ...

  7. AUTOSAR DET模块解析

    作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性.复制/转发请注明来源/作者. 欢迎添加微信交流学习. AUTOSAR DET模块解析 参考文档: ...

  8. AUTOSAR Fee Fls 换页策略与读写的分析与设计

    在正式说起FEE/FLS 换页策略和读写流程之前,我们先介绍了FLS 的一些基本概念 在MCU 中有一块非易失性存储器我们称之为Data Flash , 在AUTOSAR FEE/FLS 规范中,通过 ...

  9. Autosar Dcm模块介绍

    DCM模块介绍 诊断通信管理(Diagnostic Communication Manager, DCM)模块作为AutoSar诊断模块的重要组成部分,主要负责诊断数据流和管理诊断状态,包括诊断会话. ...

  10. autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)

    这片文章中我们详细讲解下每个模块的功能,上图是vector的autosar方案,每个模块的详细介绍后续会有单独文章进行讲解,请关注.以下是各个模块的简介 1.VHSM hardware Securit ...

最新文章

  1. JavaScript DOM编程艺术 - 读书笔记1-3章
  2. 影响视频会议效果的因素及案例分析
  3. [云炬创业基础笔记]第五章创业机会评估测试4
  4. 掌握 Ajax,第 11 部分: 服务器端的 JSON
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的铁路售票系统
  6. 被坑的过来人告诉你,为什么数据中台永远都搞不成?
  7. 3-4 创建一个新的项目
  8. No package ‘libmate-menu‘ found
  9. 第一章 语料库语言学基本知识
  10. [转]富人的28个理财习惯
  11. vmware卸载不干净,重装不了问题;装了虚拟机上不了网问题;装了虚拟机发现windows在cmd中ping不了虚拟机,虚拟机能ping的了windows;secureCRT或者filezilla连接
  12. JavaBean的前世晋升程序员如何提升领导力
  13. R语言入门(1)时间序列分析
  14. Java 学习API(一)
  15. Windows下快速获取一个文件夹下所有文件的名称列表
  16. kubernetes节点维护命令——cordon, drain, uncordon
  17. CISSP 第十一章 安全运营
  18. ssd(Single Shot MultiBox Detector)解读之(一)原理解析
  19. 5种快速查找容器文件系统中文件的方法
  20. poco新增对cocos c++项目的支持~

热门文章

  1. React Native布局实践:开发京东客户端首页(四)——首页功能按钮及控件封装
  2. 终端溯源图构建工具SPADE专题-1 SPADE工具安装
  3. keras+卷积神经网络HWDB手写汉字识别
  4. 蘑菇街商家登录php源码,蘑菇街
  5. 洛谷刷题C语言:CRNE、CETIRI、PRASE
  6. Entry name ‘META-INF/xxxxxxxx‘ collided 解决方法
  7. docker语句及SQL查询
  8. PCF8591 A/D转换模块
  9. 计算机上怎么计算x的n次方,计算x的n次方(用函数)
  10. 电子邮件注册网站哪个好:四大邮箱客户端的对比