162 lines
4.1 KiB
C
162 lines
4.1 KiB
C
/** ##########################################################################
|
|
** 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
|