250 lines
5.1 KiB
C
250 lines
5.1 KiB
C
/*
|
|
* Copyright (c) 2022, Shenzhen CVA Innovation CO.,LTD
|
|
* All rights reserved.
|
|
*
|
|
* Shenzhen CVA Innovation CO.,LTD (CVA chip) is supplying this file for use
|
|
* exclusively with CVA's microcontroller products. This file can be freely
|
|
* distributed within development tools that are supporting such microcontroller
|
|
* products.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
|
|
* OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
|
|
* CVA SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
|
|
* OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
|
*/
|
|
|
|
/*******************************************************************************
|
|
* the includes
|
|
******************************************************************************/
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include "fee_cfg.h"
|
|
#include "fee_extra.h"
|
|
#include "fee_jobs.h"
|
|
#include "fee_sector.h"
|
|
#include "fee_internal.h"
|
|
#include "mcu.h"
|
|
|
|
/*******************************************************************************
|
|
* the defines
|
|
******************************************************************************/
|
|
|
|
|
|
/*******************************************************************************
|
|
* the typedefs
|
|
******************************************************************************/
|
|
|
|
/*******************************************************************************
|
|
* the globals
|
|
******************************************************************************/
|
|
const Fee_BlockConfigType Fee_BlockCfg[FEE_BLOCK_NUM] =
|
|
{
|
|
{
|
|
FEE_BLOCK_MOTORDATA_DATASET0,
|
|
81,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA0_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA1_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA2_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA3_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA4_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA5_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA6_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA7_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA8_DATASET0,
|
|
21,
|
|
},
|
|
{
|
|
FEE_BLOCK_DIDDATA9_DATASET0,
|
|
21,
|
|
},
|
|
};
|
|
|
|
Fee_BlockInfoType Fee_BlockInfo[FEE_BLOCK_NUM];
|
|
|
|
const Fee_BlockType Fee_Block[FEE_BLOCK_NUM] =
|
|
{
|
|
{
|
|
&Fee_BlockCfg[0],
|
|
&Fee_BlockInfo[0]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[1],
|
|
&Fee_BlockInfo[1]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[2],
|
|
&Fee_BlockInfo[2]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[3],
|
|
&Fee_BlockInfo[3]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[4],
|
|
&Fee_BlockInfo[4]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[5],
|
|
&Fee_BlockInfo[5]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[6],
|
|
&Fee_BlockInfo[6]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[7],
|
|
&Fee_BlockInfo[7]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[8],
|
|
&Fee_BlockInfo[8]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[9],
|
|
&Fee_BlockInfo[9]
|
|
},
|
|
{
|
|
&Fee_BlockCfg[10],
|
|
&Fee_BlockInfo[10]
|
|
},
|
|
};
|
|
|
|
Fee_SectorInfoType Fee_SectorInfo[FEE_SECTOR_NUM];
|
|
|
|
const Fee_SectorConfigType Fee_SectorCfg[FEE_SECTOR_NUM] =
|
|
{
|
|
{
|
|
(void *)0x10010000,
|
|
(void *)0x10010800,
|
|
2,
|
|
&Fee_SectorInfo[0]
|
|
},
|
|
{
|
|
(void *)0x10010800,
|
|
(void *)0x10011000,
|
|
2,
|
|
&Fee_SectorInfo[1]
|
|
},
|
|
};
|
|
|
|
const Fee_SectorType Fee_Sector =
|
|
{
|
|
FEE_SECTOR_NUM,
|
|
&Fee_SectorCfg[0],
|
|
FEE_BLOCK_NUM,
|
|
&Fee_Block[0],
|
|
};
|
|
|
|
const Fee_MethodType Fee_FlsMethod =
|
|
{
|
|
Fee_InternalWriteCheck,
|
|
Fee_InternalReadCheckData,
|
|
Fee_InternalEarseCheckPhrase,
|
|
Fee_InternalIsWriteable,
|
|
Fee_InternalCalcCrc8
|
|
};
|
|
|
|
Fee_JobControlBlockType Fee_sysJob =
|
|
{
|
|
FEE_JOB_UNLOCK,
|
|
0x0000,
|
|
0x0000,
|
|
FEE_JOB_OP_UNDEFINE,
|
|
NULL,
|
|
NULL,
|
|
};
|
|
|
|
Fee_JobControlBlockType Fee_userJob =
|
|
{
|
|
FEE_JOB_UNLOCK,
|
|
0x0000,
|
|
0x0000,
|
|
FEE_JOB_OP_UNDEFINE,
|
|
NULL,
|
|
NULL,
|
|
};
|
|
|
|
Fee_JobsType Fee_JobCfg =
|
|
{
|
|
false,
|
|
&Fee_userJob,
|
|
&Fee_sysJob
|
|
};
|
|
|
|
Fee_JobControlBlockType Fee_JobControlBlock =
|
|
{
|
|
FEE_JOB_UNLOCK,
|
|
0,
|
|
0,
|
|
FEE_JOB_OP_UNDEFINE,
|
|
NULL,
|
|
NULL
|
|
};
|
|
|
|
Fee_GcRuntimeType Fee_GcRuntime =
|
|
{
|
|
FEE_GC_INIT,
|
|
FEE_GC_COPY_WRITE_MARK,
|
|
NULL,
|
|
0,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
FEE_GC_STATE_NO_ERROR
|
|
};
|
|
|
|
Fee_RunTimeType Fee_Runtime =
|
|
{
|
|
FEE_MAIN_FUN_FSM_ERROR,
|
|
FEE_INITIALIZATION_ERROR,
|
|
&Fee_JobCfg,
|
|
NULL,
|
|
&Fee_JobControlBlock,
|
|
&Fee_GcRuntime,
|
|
FEE_JOB_RESULT_OK
|
|
};
|
|
|
|
uint8_t Fee_RuntimeCache[FEE_BUFF_SIZE];
|
|
|
|
const FeeType fee =
|
|
{
|
|
&Fee_Sector,
|
|
&Fee_FlsMethod,
|
|
&Fee_Runtime,
|
|
(void *)&Fee_RuntimeCache[0],
|
|
};
|
|
|
|
/*******************************************************************************
|
|
* the functions
|
|
******************************************************************************/
|
|
|
|
|