📄 moto_flash_a.h
字号:
#define CMFRMCR_BOOT_MASK (1<<CMFRMCR_BOOT_BITNO)
#define CMFRMCR_DIS_BITNO 25 /* Flash Information Disable */
#define CMFRMCR_DIS_MASK (1<<CMFRMCR_DIS_BITNO)
#define CMFRMCR_LOCK_BITNO 26 /* Lock Control */
#define CMFRMCR_LOCK_MASK (1<<CMFRMCR_LOCK_BITNO)
#define CMFRMCR_SIE_BITNO 27 /* Lock Control */
#define CMFRMCR_SIE_MASK (1<<CMFRMCR_SIE_BITNO)
#define CMFRMCR_EME_BITNO 28 /* Emulation Enable */
#define CMFRMCR_EME_MASK ( 1<<CMFRMCR_EME_BITNO)
#define CMFRMCR_FRZ_BITNO 30 /* Freeze Enable */
#define CMFRMCR_FRZ_MASK (1<<CMFRMCR_FRZ_BITNO)
#define CMFRMCR_STOP_BITNO 31 /* Stop Enable */
#define CMFRMCR_STOP_MASK (1<<CMFRMCR_STOP_BITNO)
/* CMFR Module Test Register (CMFRMTR) */
#define CMFRMTR_PAWS_BITNO 8 /* Program Amplitude/Width Modulation Select */
#define CMFRMTR_PAWS_MAX 7
#define CMFRMTR_PAWS_MASK (CMFRMTR_PAWS_MAX << CMFRMTR_PAWS_BITNO)
/* CMFR High Voltage Control Register (CMFRCTL) */
#define CMFRCTL_EHV_BITNO 0 /* Enable a Program or Erase Pulse */
#define CMFRCTL_EHV_MASK (1<<CMFRCTL_EHV_BITNO)
#define CMFRCTL_SES_BITNO 1 /* Start-End a Program or Erase Sequence */
#define CMFRCTL_SES_MASK (1<<CMFRCTL_SES_BITNO)
#define CMFRCTL_PE_BITNO 2 /* Program or Erase Select */
#define CMFRCTL_PE_MASK (1<<CMFRCTL_PE_BITNO)
#define CMFRCTL_PEEM_BITNO 5 /* Program Erase Enable Monitor (ReadOnly)*/
#define CMFRCTL_PEEM_MASK (1<<CMFRCTL_PEEM_BITNO)
#define CMFRCTL_CSC_BITNO 6 /* Sensors Set or Clear */
#define CMFRCTL_CSC_MASK (1<<CMFRCTL_CSC_BITNO)
#define CMFRCTL_BLOCK_BITNO 8 /* Block Program and Erase Select */
#define CMFRCTL_BLOCK_MASK (CMFR_BLOCK_FIELD_MAX << CMFRCTL_BLOCK_BITNO)
#define CMFRCTL_CLKPM_BITNO 16 /* Clock Period Multiple */
#define CMFRCTL_CLKPM_MAX 127
#define CMFRCTL_CLKPM_MASK (CMFRCTL_CLKPM_MAX <<CMFRCTL_CLKPM_BITNO)
#define CMFRCTL_CLKPE_BITNO 24 /* Clock Period Exponent */
#define CMFRCTL_CLKPE_MAX 3
#define CMFRCTL_CLKPE_MASK (CMFRCTL_CLKPE_MAX <<CMFRCTL_CLKPE_BITNO)
#define CMFRCTL_SCLKR_BITNO 27 /* Clock Period Exponent */
#define CMFRCTL_SCLKR_MAX 7
#define CMFRCTL_SCLKR_MASK (CMFRCTL_SCLKR_MAX <<CMFRCTL_SCLKR_BITNO)
#define CMFRCTL_HVS_BITNO 31 /* High Voltage Pulse Status */
#define CMFRCTL_HVS_MASK (1<<CMFRCTL_HVS_BITNO)
#define CMFR_SYSTEM_CLOCK_MIN_FREQ 8 /* 8 MHZ */
#define CMFR_SYSTEM_CLOCK_MAX_FREQ 40 /* 40 MHZ */
#define CMFR_PROGRAM_PULSE_WIDTH_MIN 16 /* 16 USEC */
#define CMFR_PROGRAM_PULSE_WIDTH_MAX 32 /* 32 USEC */
#define CMFR_ERASE_PULSE_WIDTH_MIN 4096 /* 4.096 mSEC */
#define CMFR_ERASE_PULSE_WIDTH_MAX 1100000 /* 1.1 SEC */
#define MOTO_FLASH_A_PROGRAM_PAGE_BUFFER_MASK 0x0000003C /* address mask */
#define MOTO_FLASH_A_BLANK_VALUE 0xFFFFFFFF /* cmfr blank value */
#define MOTO_FLASH_A_ALL_BLOCKS (MOTO_FLASH_A_BLOCK_0 | \
MOTO_FLASH_A_BLOCK_1 | \
MOTO_FLASH_A_BLOCK_2 | \
MOTO_FLASH_A_BLOCK_3 | \
MOTO_FLASH_A_BLOCK_4 | \
MOTO_FLASH_A_BLOCK_5 | \
MOTO_FLASH_A_BLOCK_6 | \
MOTO_FLASH_A_BLOCK_7 )
/*--------------------------------------------------------------------*/
/* Prototypes */
/*--------------------------------------------------------------------*/
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_BlankCheck_f(
pMOTO_FLASH_A_Address_t,
pMOTO_FLASH_A_Address_t,
MOTO_FLASH_A_DataWidth_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlArrayAccess_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlArrayWriteMode_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_CycleType_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlBlockProtection_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_BlockSelect_t,
MOTO_FLASH_A_ReadWriteProtection_t,
MOTO_FLASH_A_PrivilegeProtection_t,
MOTO_FLASH_A_TextDataProtection_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlBootMode_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t,
MOTO_FLASH_A_Control_t,
MOTO_FLASH_A_PulseWidth_t,
MOTO_FLASH_A_SystemClock_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlDebugMode_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlEmulationMode_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlLowPowerMode_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlPulse_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlSequence_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Sequence_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlShadowAccess_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Control_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ControlWriteLock_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Lock_t );
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_EraseSerialMRVerify_f(
pMOTO_FLASH_A_t ,
pMOTO_FLASH_A_Address_t,
MOTO_FLASH_A_BlockSelect_t,
MOTO_FLASH_A_DataWidth_t,
MOTO_FLASH_A_BlockSize_t,
MOTO_FLASH_A_ShadowBlock_t,
MOTO_FLASH_A_ShadowStartOffset_t,
MOTO_FLASH_A_ShadowEndOffset_t,
MOTO_FLASH_A_MaxPulses_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_GetHighVoltageEnableStatus_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Boolean_t *);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_GetPulseStatus_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Boolean_t *);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_GetRegister_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Register_t,
UINT32 *);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_Init_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_CycleType_t,
MOTO_FLASH_A_BlockSelect_t,
MOTO_FLASH_A_Control_t,
MOTO_FLASH_A_SystemClock_t,
MOTO_FLASH_A_PulseWidth_t,
MOTO_FLASH_A_BlockSelect_t,
MOTO_FLASH_A_ReadWriteProtection_t,
MOTO_FLASH_A_PrivilegeProtection_t,
MOTO_FLASH_A_TextDataProtection_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_ProgramSerialMRVerify_f(
pMOTO_FLASH_A_t,
pMOTO_FLASH_A_Address_t,
pMOTO_FLASH_A_Address_t,
MOTO_FLASH_A_BlockSelect_t,
MOTO_FLASH_A_Control_t,
UINT32,
MOTO_FLASH_A_DataWidth_t,
MOTO_FLASH_A_BlockSize_t,
MOTO_FLASH_A_MaxPulses_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_SelectBlocks_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_BlockSelect_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_SetPulseWidth_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_PulseWidth_t,
MOTO_FLASH_A_SystemClock_t);
MOTO_FLASH_A_ReturnCode_t MOTO_FLASH_A_SetRegister_f(
pMOTO_FLASH_A_t,
MOTO_FLASH_A_Register_t,
UINT32 );
/**********************************************************************/
/* Macro: MOTO_FLASH_A_BlankCheck */
/* */
/* Purpose: Call MOTO_FLASH_A_BlankCheck_f with optional */
/* param checking */
/* */
/* Input: */
/* StartAddress : starting address of region to blank check */
/* EndAddress : ending address of region to blank check */
/* DataWidth : Determines whether memory width is 2/4 bytes*/
/* */
/* Output: */
/* MOTO_FLASH_A_ERR_NONE : For successful completion */
/* MOTO_FLASH_A_ERR_DEVICE_NOT_BLANK: at least one not blank element */
/* was read in the region */
/**********************************************************************/
#define MOTO_FLASH_A_BlankCheck(StartAddress, \
EndAddress, \
DataWidth) \
( \
(MOTO_FLASH_A_PARAM_CHECKING) ? \
( \
((StartAddress) >= (EndAddress)) ? \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -