⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moto_flash_a.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 5 页
字号:
#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 + -