#ifndef RW_LOGGING_H_ #define RW_LOGGING_H_ #include "stdint.h" /*OLD*/ #define Log_Type_Device_Change 0x04 //设备动作 #define Log_Type_Global_Parameters 0x05 //全局参数变化 //SRAM中日志相关地址 /* 2022-05-09 将SRAM日志数据地址 SRAM_LOG_DATA_Address 将0x090020改为0x090100 原因:增加Launcher启动输出调试信息 - 给APP使用,如果需要设置是通过PC下发命令设置,本次启动APP有效 */ #define SRAM_LOG_Start_Address 0x090000 //日志空间起始地址 - 当前SRAM中日志数据的写入地址 - 4Byte #define SRAM_TFTP_LOG_READ_Address 0x090004 //TFTP日志上报读取地址 - 4Byte #define SRAM_FLASH_LOG_READ_Address 0x090008 //Flash日志写入读取地址 - 4Byte #define SRAM_SD_LOG_READ_Start_Address 0x09000C //SD读取起始地址 - 当TFTP开始传输文件时,同时将当前的起始地址与结束地址赋值该变量,用于向SD写入LOG使用 - 4Byte #define SRAM_SD_LOG_READ_End_Address 0x090010 //SD读取结束地址 - 4Byte #define SRAM_Flash_Serial_Number 0x090014 //日志序号保存地址 - 1Byte #define SRAM_LOGFlag_Reset_Source 0x090018 //Launcher启动源标记 - 给APP使用 #define SRAM_LOGFlag_Addr_INIT 0x090019 //Launcher记录地址SRAM初始化状态标志位 - 给APP使用 #define SRAM_LOGFlag_Debug_Switch 0x09001A //Launcher启动输出调试信息 4Byte - 给APP使用 #define SRAM_APPFlag_Reset_Source 0x09001E //App串口升级标志位 2Byte - 给Launcher调试输出信息使用 0xBBC1 #define SRAM_LOG_DATA_Address 0x090100 //日志数据地址 #define SRAM_LOG_End_Address 0x2FFFFF //日志空间结束地址 - 0x0AFFFF #define APPFlag_UartUpgrade_Reset 0xBBC1 //APP串口升级标志位 //Flash中日志相关地址 /* 2022-04-17 将Flash日志地址从0x090000改为0x100000 ~ 0x1FFFFF */ #define LOG_Flash_Start_Address 0x100000 //Flash日志空间写入地址 #define LOG_Flash_Overflow_Address 0x100004 //Flash日志空间是否已存满标志位 //#define LOG_Flash_Serial_Number 0x090005 //日志序号保存地址 #define LOG_Flash_DATA_Address 0x100020 //Flash日志数据地址 #define LOG_Flash_End_Address 0x1FFFFF //Flash日志空间结束地址 //日志数据相关定义 #define LOG_Data_Hand 0xA5 //LOG数据头 #define Log_Data_End 0x5A //LOG数据尾 #define Log_Data_Len_MAX 512 //日志数据最长512Byte /*日志保存的数据格式 2021-04-02 ;加个校验位 2021_11_29:将数据长度改为2Byte */ typedef enum{ S_Log_Hand, S_Log_SN, //日志每条数据增加序列号 S_Log_Len, S_Log_Len_8, S_Log_Check, S_Log_Date_H, //年:5bit 月:5bit 日:5bit S_Log_Date_L, S_Log_Type, S_Log_Time8B, //小时时间戳 S_Log_Time16B, S_Log_Time24B, S_Log_Time32B, S_Log_Data, }Sram_Log_Data_Format; /************************************************************/ uint8_t Log_write_sram(uint8_t data_type,uint8_t *buff,uint16_t len); uint8_t Log_read_sram(void); uint32_t Get_Log_Current_Address(void); void Set_Log_Current_Address(uint32_t W_addr); void SRAM_Set_TFTP_READ_LOG_Address(uint32_t r_addr); uint32_t SRAM_Get_TFTP_READ_Log_Address(void); void SRAM_Set_FLASH_READ_LOG_Address(uint32_t r_addr); uint32_t SRAM_Get_FLASH_READ_LOG_Address(void); void SRAM_Set_SD_LOG_READ_Start_Address(uint32_t r_addr); uint32_t SRAM_Get_SD_LOG_READ_Start_Address(void); void SRAM_Set_SD_LOG_READ_End_Address(uint32_t r_addr); uint32_t SRAM_Get_SD_LOG_READ_End_Address(void); uint32_t Log_Get_Flash_Current_Address(void); void Log_Set_Flash_Current_Address(uint32_t w_addr); void Log_set_Flash_overflow_flag(uint8_t overflow_state); void Log_Write_Flash(void); void Log_Read_Flash(void); void LOG_Preserve_Flash_Task(void); void LOG_Save_Device_Action(uint8_t type,uint8_t addr,uint16_t loop,uint16_t state); void LOG_Save_Device_Change(uint32_t data_addr, uint16_t data_len); void LOG_Save_Global_Parameters(void); uint8_t SRAM_PowerOn_Restore_ParaInfo(void); void Retain_Flash_Register_Data(void); void Read_Flash_Register_Data(void); #endif