#ifndef _ACCESS_MODULE_H_ #define _ACCESS_MODULE_H_ #define MCU_ACCESS_MODULE_ID (0) #define CPU_ACCESS_MODULE_ID (1) #define MCU_ACCESS_MODULE_SUPPORT #define CPU_ACCESS_MODULE_SUPPORT #ifdef MCU_ACCESS_MODULE_SUPPORT #define ACCESS_FLASH_SUPPORT #define ACCESS_CRC_SUPPORT #endif #ifdef CPU_ACCESS_MODULE_SUPPORT #define ACCESS_RTC_SUPPORT #endif #ifdef ACCESS_FLASH_SUPPORT typedef enum { AFT_READ, AFT_WRITE, AFT_ERASE, } AccessFlashType; typedef struct { u32 mem_addr; u32 mem_size; u32 flash_addr; u32 access_type; } AccessFlashMsg; #endif #ifdef ACCESS_CRC_SUPPORT typedef struct { u32 mem_addr; u32 mem_size; u32 init; u32 widthopt; } AccessCrcMsg; #endif #ifdef ACCESS_RTC_SUPPORT typedef enum { ART_SET_TIME, ART_GET_TIME, } AccessRtcType; typedef struct { u32 rtc_cnt_h; u32 reserved; u32 access_type; } AccessRtcMsg; #endif typedef enum { AMRMS_NO_ERROR, AMRMS_LEN_ERROR, // header msg length error AMRMS_TYPE_ERROR, // header msg module type error AMRMS_PARA_ERROR, // function msg parameter error } AccessModuleRespondMsgStatus; typedef enum { AMT_STATUS, AMT_FLASH, AMT_CRC, AMT_RTC = 16, } AccessModuleType; typedef struct { u8 dest_core_id; u8 type; u8 len; u8 msg_status; u32 result; } AccessModuleHeader; #ifdef ACCESS_FLASH_SUPPORT int AccessFlash(u8 access_type, u32 addr, size_t size, u8 *buf); #endif #ifdef ACCESS_CRC_SUPPORT u32 AccessCRC(const void *buf, u32 size, u32 init, CrcDataWidth widthopt); #endif #ifdef CPU_ACCESS_MODULE_SUPPORT void DetectCpuAccessModule(void); #endif #endif