/** ########################################################################## ** Filename : ** Project : ** Module : ** Processor : ** Version : ** Compiler : ** Date/Time : ** Abstract : ** Contents : ** ** (c) Copyright dmdz Co.,Ltd ** -------------------------------------------------------------------------- ** R E V I S I O N H I S T O R Y ** -------------------------------------------------------------------------- ** Date Ver Author Description *** -20230602- --V1.0-- --mingyea--- --修改-- ** #########################################################################*/ #ifndef LS_NM_H_ #define LS_NM_H_ /*--------------------------------------------------------------------------- - I N C L U D E F I L E S ----------------------------------------------------------------------------*/ #include "common_types.h" //#include "Std_Types.h" //#include "ComStack_Types.h" #include "Cpu.h" #include "can.h" #include "Ls_Nm_Cfg.h" /*--------------------------------------------------------------------------- - D E F I N E S / M A C R O S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - T Y P E D E F I N I T I O N S ----------------------------------------------------------------------------*/ /*請求命令*/ typedef enum { NM_REQ_CMD_NULL = 0, NM_REQ_CMD_GOTO_INACTIVE, NM_REQ_CMD_GOTO_ACTIVE, NM_REQ_CMD_POWER_ON, /*第一次上電*/ }nm_req_cmd_e; /*主狀態*/ typedef enum { NM_MAIN_STATE_INACTIVE = 0, NM_MAIN_STATE_ACTIVE, }nm_main_state_e; /*子狀態*/ typedef enum { NM_SUB_STATE_INACTIVE_IDLE = 0, NM_SUB_STATE_ACTIVE_NORMAL , NM_SUB_STATE_ACTIVE_BUSOFF, }nm_sub_state_active_e; /*標誌--可預睡眠*/ typedef enum { NM_FLAG_SHALL_SLEEP = 0, NM_FLAG_SHALL_WAKE, }nm_flag_shall_sleep_e; typedef enum { NM_DLL_ERROR_ACTIVE = 0, NM_DLL_ERROR_PASSIVE, NM_DLL_BUS_OFF_PRE, //预进入busoff NM_DLL_BUS_OFF, //真正进入busoff }nm_erro_source_e; typedef enum { NM_MOTE_STARTED = 0, NM_MOTE_SLEEP = 1, NM_MOTE_STOP = 2, }nmCanModeType; typedef enum { NM_REC_SEND = 0, NM_REC_ONLY = 1, NM_REC_STOP = 2, }nmIlReqType; //快慢恢复状态 typedef enum { NM_BUSOFF_RECOVERY_STATE_NULL = 0u, NM_BUSOFF_RECOVERY_STATE_QUICK, NM_BUSOFF_RECOVERY_STATE_SLOW }nm_busoff_recovery_state_e; //子状态 typedef enum { NM_BUSOFF_SUBSTATE_NULL = 0u, NM_BUSOFF_SUBSTATE_TRY, NM_BUSOFF_SUBSTATE_WAIT }nm_busoff_sub_state_e; #if 0 #define NM_CPU_SR_ALLOC() //CPU_SR_ALLOC() #define NM_ENTER_CRITICAL() INT_SYS_DisableIRQGlobal() #define NM_EXIT_CRITICAL() INT_SYS_EnableIRQGlobal() #else #define NM_CPU_SR_ALLOC() CPU_SR_ALLOC() #define NM_ENTER_CRITICAL() ENTER_CRITICAL() #define NM_EXIT_CRITICAL() EXIT_CRITICAL() #endif /*--------------------------------------------------------------------------- - G L O B A L V A R I A B L E S - only configuration table allowed here,variables are not allowed! ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - C O N S T A N T S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - F U N C T I O N P R O T O T Y P E ----------------------------------------------------------------------------*/ extern void ls_nm_Init(void); extern void ls_nm_task(void); /*END對外接口***********************************************************/ /***********************************************************************/ /*CanIf接口宏定義*******************************************************/ extern u8 CanNm_PhysErrorInd(u8 phy_id,nm_erro_source_e erro); extern void CanNm_TxConfirmation_com(PduIdType canNmPduId,u8 phy_id); //extern void ls_nm_TxConfirmation(PduIdType canNmPduId,u8 phy_id); //u8 CanNm_is_busoff(void); #endif