192 lines
6.3 KiB
C
192 lines
6.3 KiB
C
#ifndef _FRam_H_
|
|
#define _FRam_H_
|
|
/******************************************************************************
|
|
* NAME: fRam.h
|
|
*******************************************************************************/
|
|
/*_____ M A C R O S __________________________________________________________*/
|
|
|
|
|
|
//端口
|
|
#define FM_CS_EN GPIO_ResetBits(GPIOA, GPIO_Pin_3);GPIO_SetBits(GPIOA, GPIO_Pin_4);
|
|
#define FM_CS_DIS GPIO_SetBits(GPIOA, GPIO_Pin_3);
|
|
//FM 命令
|
|
#define FM_WREN 0X06 //读写使能
|
|
#define FM_READ 0X03 //读命令
|
|
#define FM_WRITE 0X02 //写命令
|
|
|
|
#define CLI() __set_PRIMASK(1)
|
|
#define SEI() __set_PRIMASK(0)
|
|
|
|
/*_____ M A C R O S __________________________________________________________*/
|
|
//CONFIG(配置)
|
|
#define FRAM_SPACE_SIZE (0X800) ///定义铁电最大保存容量
|
|
#define FristStart_Addr 100
|
|
//******************************************************************************
|
|
// 存储器内容
|
|
|
|
#define uniGlobal s_uniGlobal.u
|
|
|
|
#define checkLen_1 1 ///如果数据组带有校验,增加1byte
|
|
//******************************************************************************
|
|
// FRAM_DATA_MAP
|
|
//加密验证数据
|
|
///全局缓冲中的值
|
|
///结构体定义
|
|
#define Encryption_FADR (80)
|
|
|
|
//存储器完好标致
|
|
///全局缓冲中的值
|
|
#define buf_FRam_Flag uniGlobal.FRam_Flag
|
|
///结构体定义
|
|
#define FRam_Flag_FADR (FristStart_Addr)
|
|
#define FRam_Flag_LEN (sizeof(buf_FRam_Flag) + checkLen_1)
|
|
#define FRam_Flag_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_ROM_UpData uniGlobal.ROM_UpData
|
|
///结构体定义
|
|
#define ROM_UpData_FADR (FRam_Flag_FADR + FRam_Flag_LEN * FRam_Flag_Group)
|
|
#define ROM_UpData_LEN (sizeof(buf_ROM_UpData) + checkLen_1)
|
|
#define ROM_UpData_Group 1 //组数
|
|
|
|
//员工数据
|
|
///全局缓冲中的值
|
|
#define buf_MD_Port_Data uniGlobal.MD_Port_Data
|
|
///结构体定义
|
|
#define MD_Port_Data_FADR (ROM_UpData_FADR + ROM_UpData_LEN * ROM_UpData_Group)
|
|
#define MD_Port_Data_LEN (sizeof(buf_MD_Port_Data) + checkLen_1)
|
|
#define MD_Port_Data_Group 4 //组数
|
|
|
|
//员工数据
|
|
///全局缓冲中的值
|
|
#define buf_POSData uniGlobal.POSData
|
|
///结构体定义
|
|
#define POSData_FADR (MD_Port_Data_FADR + MD_Port_Data_LEN * MD_Port_Data_Group)
|
|
#define POSData_LEN (sizeof(buf_POSData) + checkLen_1)
|
|
#define POSData_Group 1 //组数
|
|
|
|
//员工数据
|
|
///全局缓冲中的值
|
|
#define buf_MD_Port_Num_Top uniGlobal.MD_Port_Num_Top
|
|
///结构体定义
|
|
#define MD_Port_Num_Top_FADR (POSData_FADR + POSData_LEN * POSData_Group)
|
|
#define MD_Port_Num_Top_LEN (sizeof(buf_MD_Port_Num_Top) + checkLen_1)
|
|
#define MD_Port_Num_Top_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_PREXDATA_WaitUpNummber uniGlobal.PREXDATA_WaitUpNummber
|
|
///结构体定义
|
|
#define PREXDATA_WaitUpNummber_FADR (MD_Port_Num_Top_FADR + MD_Port_Num_Top_LEN * MD_Port_Num_Top_Group)
|
|
#define PREXDATA_WaitUpNummber_LEN (sizeof(buf_PREXDATA_WaitUpNummber) + checkLen_1)
|
|
#define PREXDATA_WaitUpNummber_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_PREXDATA_TTC uniGlobal.PREXDATA_TTC
|
|
///结构体定义
|
|
#define PREXDATA_TTC_FADR (PREXDATA_WaitUpNummber_FADR + PREXDATA_WaitUpNummber_LEN * PREXDATA_WaitUpNummber_Group)
|
|
#define PREXDATA_TTC_LEN (sizeof(buf_PREXDATA_TTC) + checkLen_1)
|
|
#define PREXDATA_TTC_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_PrintInfo uniGlobal.PrintInfo
|
|
///结构体定义
|
|
#define PrintInfo_FADR (PREXDATA_TTC_FADR + PREXDATA_TTC_LEN * PREXDATA_TTC_Group)
|
|
#define PrintInfo_LEN (sizeof(buf_PrintInfo) + checkLen_1)
|
|
#define PrintInfo_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_PrintLastRecord uniGlobal.PrintLastRecord
|
|
///结构体定义
|
|
#define PrintLastRecord_FADR (PrintInfo_FADR + PrintInfo_LEN * PrintInfo_Group)
|
|
#define PrintLastRecord_LEN (sizeof(buf_PrintLastRecord) + checkLen_1)
|
|
#define PrintLastRecord_Group 64 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_POSNetSetState uniGlobal.POSNetSetState
|
|
///结构体定义
|
|
#define POSNetSetState_FADR (PrintLastRecord_FADR + PrintLastRecord_LEN * PrintLastRecord_Group)
|
|
#define POSNetSetState_LEN (sizeof(buf_POSNetSetState) + checkLen_1)
|
|
#define POSNetSetState_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_MD_Multiplex_Port_Data uniGlobal.MD_Multiplex_Port_Data
|
|
///结构体定义
|
|
#define MD_Multiplex_Port_Data_FADR (POSNetSetState_FADR + POSNetSetState_LEN * POSNetSetState_Group)
|
|
#define MD_Multiplex_Port_Data_LEN (sizeof(buf_MD_Multiplex_Port_Data) + checkLen_1)
|
|
#define MD_Multiplex_Port_Data_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_WhiteList uniGlobal.WhiteList
|
|
///结构体定义
|
|
#define WhiteList_FADR (MD_Multiplex_Port_Data_FADR + MD_Multiplex_Port_Data_LEN * MD_Multiplex_Port_Data_Group)
|
|
#define WhiteList_LEN (sizeof(buf_WhiteList) + checkLen_1)
|
|
#define WhiteList_Group 1 //组数
|
|
|
|
///全局缓冲中的值
|
|
#define buf_PREXDATA_Upload uniGlobal.PREXDATA_Upload
|
|
///结构体定义
|
|
#define PREXDATA_Upload_FADR (WhiteList_FADR + WhiteList_LEN * WhiteList_Group)
|
|
#define PREXDATA_Upload_LEN (sizeof(buf_PREXDATA_Upload) + checkLen_1)
|
|
#define PREXDATA_Upload_Group 1 //组数
|
|
|
|
typedef struct
|
|
{
|
|
union
|
|
{
|
|
u8 Global[1000]; //全局最大个数
|
|
u8 FRam_Flag;
|
|
MD_Port_Data_Type MD_Port_Data;
|
|
POSData_Type POSData;
|
|
u8 MD_Port_Num_Top;
|
|
ROM_UpData_Type ROM_UpData;
|
|
u32 PREXDATA_WaitUpNummber;
|
|
u32 PREXDATA_TTC;
|
|
PrintInfo_Type PrintInfo;
|
|
PREXDATA_Type PrintLastRecord;//越南打印每把枪最后一笔数据
|
|
POSNetSetState_TypeDef POSNetSetState;
|
|
MD_Multiplex_Port_Data_Type MD_Multiplex_Port_Data;//端口5,多路复用口
|
|
WhiteList_Type WhiteList;
|
|
PREXDATA_Upload_Type PREXDATA_Upload;
|
|
}u;
|
|
u8 CheckAdd;
|
|
}s_uniGlobal_Typedef; //存储器读写缓存共用体
|
|
|
|
typedef enum
|
|
{
|
|
CF_FRam_Flag,
|
|
CF_ROM_UpData,
|
|
CF_MD_Port_Data,
|
|
CF_POSData,
|
|
CF_MD_Port_Num_Top,
|
|
CF_PREXDATA_WaitUpNummber,
|
|
CF_PREXDATA_TTC,
|
|
CF_PrintInfo,
|
|
CF_PrintLastRecord,
|
|
CF_POSNetSetState,
|
|
CF_MD_Multiplex_Port_Data,
|
|
CF_WhiteList,
|
|
CF_PREXDATA_Upload,
|
|
|
|
FramItemEnd,
|
|
}FramItem;
|
|
|
|
//********************************************************************************
|
|
typedef struct
|
|
{
|
|
u8* pInitData;//初始化指针
|
|
u8* upData; //共用体数据缓存区指针
|
|
u8* pData; //pGun数据指针
|
|
u32 firstAdr; //第一地址
|
|
u16 len; //长度
|
|
u16 Group;
|
|
u8 Tpye; //类型
|
|
}framDataIndex;
|
|
|
|
void FM_Init(void);
|
|
u8 FMItemWrite(FramItem Type, u16 Group);
|
|
u8 FMItemRead(FramItem Type, u16 Group);
|
|
void FM_Data_Init(void);
|
|
void PCBEncryption(void);
|
|
void PCBEncryption_Check(void);
|
|
#endif
|