From 67ca69985af9109a0603a1cde71f21b940c059ff Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期四, 15 五月 2025 09:12:53 +0800 Subject: [PATCH] 完全将免布线标签代码移植过来版本 --- keil/include/components/hido/Include/HIDO_FIFO.h | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diff --git a/keil/include/components/hido/Include/HIDO_FIFO.h b/keil/include/components/hido/Include/HIDO_FIFO.h new file mode 100644 index 0000000..78ecb13 --- /dev/null +++ b/keil/include/components/hido/Include/HIDO_FIFO.h @@ -0,0 +1,85 @@ +/******************************************************************************* + * File Name : HIDO_FIFO.h + * Description : + * Created on : 2018年4月26日 + * Author : www.hido-studio.com + *******************************************************************************/ + +#ifndef HIDOLIBRARY_FIFO_HIDO_FIFO_H_ +#define HIDOLIBRARY_FIFO_HIDO_FIFO_H_ +/******************************************************************************* + * Include Files * + *******************************************************************************/ +#include "HIDO_TypeDef.h" + +/******************************************************************************* + * Macro * + *******************************************************************************/ + +/******************************************************************************* + * Type Definition * + *******************************************************************************/ +typedef struct +{ +#define FIFO_DATA_DEL_FLAG_UNDEL 0xFF +#define FIFO_DATA_DEL_FLAG_DEL 0xDE + HIDO_UINT8 m_u8DelFlag; +#define FIFO_DATA_FLAG_USED 0xAB +#define FIFO_DATA_FLAG_UNUSED 0xFF + HIDO_UINT8 m_u8Flag; /* 标记,固定为0xAB,标识已使用 */ + HIDO_UINT8 m_u8DataLen; /* 数据长度,数据的最大长度=m_u32MemberSize-sizeof(ST_FIFOHeader) */ + +#define FIFO_DATA_TYPE_MID 0xAC +#define FIFO_DATA_TYPE_END 0xED + HIDO_UINT8 m_u8Type; /* 标识是都是一段数据的结束 */ +}HIDO_FIFOHeaderStruct; + +typedef struct FIFOStruct HIDO_FIFOStruct; +typedef struct FIFOInitStruct HIDO_FIFOInitStruct; +typedef HIDO_INT32 (*HIDO_FIFOReadFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); +typedef HIDO_INT32 (*HIDO_FIFOWriteFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); +typedef HIDO_INT32 (*HIDO_FIFOEraseFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr); +typedef HIDO_INT32 (*HIDO_FIFOForEachFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Index, HIDO_VOID *_pArg); + +struct FIFOStruct +{ + HIDO_UINT16 m_u16Reserve; + HIDO_UINT32 m_u32SectorSize; /* 存储介质的sector大小 */ + HIDO_UINT32 m_u32MemberSize; /* 成员大小 */ + HIDO_UINT32 m_u32ColCount; /* 有多少列,也就是一个sector可以容纳成员的总个数 */ + HIDO_UINT32 m_u32RowCount; /* 有多少行,也就是有多少个sector */ + + HIDO_UINT32 m_u32CurIndex; /* 当前索引,记录当前保存到了哪里 */ + HIDO_UINT32 m_u32TotalCount; /* 可以存储数据的总个数,= m_u32ColCount*m_u32RowCount */ + HIDO_UINT32 m_u32StartAddr; /* 数据保存的起始位置 */ + HIDO_UINT32 m_u32TotalSize; /* FIFO的总大小 */ + + HIDO_FIFOReadFunc m_fnRead; /* 介质读取方法 */ + HIDO_FIFOWriteFunc m_fnWrite; /* 介质写入方法 */ + HIDO_FIFOEraseFunc m_fnErase; /* 介质擦除方法 */ +}; + +struct FIFOInitStruct +{ + HIDO_UINT32 m_u32SectorSize; /* 存储介质的sector大小 */ + HIDO_UINT32 m_u32MemberSize; /* 成员大小 */ + HIDO_UINT32 m_u32TotalSize; /* FIFO的总大小 */ + HIDO_UINT32 m_u32StartAddr; /* 数据保存的起始位置 */ + + HIDO_FIFOReadFunc m_fnRead; /* 介质读取方法 */ + HIDO_FIFOWriteFunc m_fnWrite; /* 介质写入方法 */ + HIDO_FIFOEraseFunc m_fnErase; /* 介质擦除方法 */ +}; + +/******************************************************************************* + * Global Function * + *******************************************************************************/ +HIDO_INT32 HIDO_FIFOInit(HIDO_FIFOStruct *_pstFIFO, HIDO_FIFOInitStruct *_pstInit); +HIDO_INT32 HIDO_FIFOReadForEach(HIDO_FIFOStruct *_pstFIFO, HIDO_FIFOForEachFunc _fnForEach, HIDO_BOOL _bAsc, HIDO_VOID *_pArg); +HIDO_INT32 HIDO_FIFOReadMember(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32ReadIndex, HIDO_FIFOHeaderStruct *_pstDataHeader, HIDO_UINT8 *_pu8Data, HIDO_UINT32 *_pu32Len); +HIDO_INT32 HIDO_FIFODelFrontData(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32FrontIndex); +HIDO_INT32 HIDO_FIFOGetFrontData(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 *_pu32FrontIndex, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32DataSize, HIDO_UINT32 *_pu32Len); +HIDO_INT32 HIDO_FIFOWrite(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); +HIDO_INT32 HIDO_FIFOClean(HIDO_FIFOStruct *_pstFIFO); + +#endif /* HIDOLIBRARY_FIFO_HIDO_FIFO_H_ */ -- Gitblit v1.9.3