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

📄 moto_flash_a.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 5 页
字号:
(                                                                      \
   (MOTO_FLASH_A_PARAM_CHECKING) ?                                     \
   (                                                                   \
      ((MOTO_FLASH_A_Ptr) == NULL) ? MOTO_FLASH_A_ERR_INVALID_HANDLE : \
      (((CycleType) != MOTO_FLASH_A_PROGRAM) &&                        \
       ((CycleType) != MOTO_FLASH_A_ERASE) &&                          \
       ((CycleType) != MOTO_FLASH_A_READ)) ?                           \
                       MOTO_FLASH_A_ERR_INVALID_CYCLE_TYPE :           \
      ((BlocksToWrite) > MOTO_FLASH_A_ALL_BLOCKS ||                    \
       (BlocksToWrite) < MOTO_FLASH_A_NO_BLOCK_SELECTED  ) ?           \
                       MOTO_FLASH_A_ERR_INVALID_BLOCK_CONFIG :         \
      (((ShadowAccess) != MOTO_FLASH_A_ENABLE) &&                      \
       ((ShadowAccess) != MOTO_FLASH_A_DISABLE)) ?                     \
                       MOTO_FLASH_A_ERR_INVALID_MODE :                 \
      ((((SystemClock) < CMFR_SYSTEM_CLOCK_MIN_FREQ ) ||               \
       ((SystemClock) > CMFR_SYSTEM_CLOCK_MAX_FREQ )) &&               \
        ((CycleType) != MOTO_FLASH_A_READ)) ?                          \
                       MOTO_FLASH_A_ERR_INVALID_SYSTEM_CLOCK :         \
      ((((CycleType) == MOTO_FLASH_A_PROGRAM) &&                       \
               (PulseWidth) < CMFR_PROGRAM_PULSE_WIDTH_MIN)  ||        \
       (((CycleType) == MOTO_FLASH_A_PROGRAM) &&                       \
               (PulseWidth) > CMFR_PROGRAM_PULSE_WIDTH_MAX)  ||        \
       (((CycleType) == MOTO_FLASH_A_ERASE) &&                         \
               (PulseWidth) < CMFR_ERASE_PULSE_WIDTH_MIN)    ||        \
       (((CycleType) == MOTO_FLASH_A_ERASE) &&                         \
               (PulseWidth) > CMFR_ERASE_PULSE_WIDTH_MAX)) ?           \
                       MOTO_FLASH_A_ERR_INVALID_PULSE_WIDTH :          \
      ((BlocksToProtect) > MOTO_FLASH_A_ALL_BLOCKS ||                  \
        (BlocksToProtect) < MOTO_FLASH_A_NO_BLOCK_SELECTED ) ?         \
                       MOTO_FLASH_A_ERR_INVALID_BLOCK_CONFIG :         \
      (((ReadWriteProtection) != MOTO_FLASH_A_READ_ONLY) &&            \
       ((ReadWriteProtection) != MOTO_FLASH_A_READ_WRITE) &&           \
       ((ReadWriteProtection) !=                                       \
                       MOTO_FLASH_A_NO_READ_WRITE_PROTECTION_CHANGE))? \
                       MOTO_FLASH_A_ERR_INVALID_PROTECTION :           \
      (((PrivilegeProtection) != MOTO_FLASH_A_USER_ACCESS) &&          \
       ((PrivilegeProtection) != MOTO_FLASH_A_SUPERVISOR_ACCESS) &&    \
       ((PrivilegeProtection) !=                                       \
                       MOTO_FLASH_A_NO_PRIVILEGE_CHANGE)) ?            \
                       MOTO_FLASH_A_ERR_INVALID_PROTECTION :           \
      (((TextDataProtection) != MOTO_FLASH_A_DATA_ACCESS) &&           \
       ((TextDataProtection) != MOTO_FLASH_A_TEXT_AND_DATA_ACCESS) &&  \
       ((TextDataProtection) !=                                        \
                       MOTO_FLASH_A_NO_TEXT_DATA_PROTECTION_CHANGE)) ? \
                       MOTO_FLASH_A_ERR_INVALID_PROTECTION :           \
        MOTO_FLASH_A_Init_f( (MOTO_FLASH_A_Ptr),                       \
                                     (CycleType),                      \
                                     (BlocksToWrite),                  \
                                     (ShadowAccess),                   \
                                     (SystemClock),                    \
                                     (PulseWidth),                     \
                                     (BlocksToProtect),                \
                                     (ReadWriteProtection),            \
                                     (PrivilegeProtection),            \
                                     (TextDataProtection))             \
   )                                                                   \
   :                                                                   \
   MOTO_FLASH_A_Init_f( (MOTO_FLASH_A_Ptr),                            \
                                     (CycleType),                      \
                                     (BlocksToWrite),                  \
                                     (ShadowAccess),                   \
                                     (SystemClock),                    \
                                     (PulseWidth),                     \
                                     (BlocksToProtect),                \
                                     (ReadWriteProtection),            \
                                     (PrivilegeProtection),            \
                                     (TextDataProtection))             \
) /* End of MOTO_FLASH_A_Init Macro */


/**********************************************************************/
/* Macro:    MOTO_FLASH_A_EraseSerialMRVerify                         */
/*                                                                    */
/* Purpose:     Call MOTO_FLASH_A_EraseSerialMRVerify_f function with */
/*              optional parameter checking.                          */
/*                                                                    */
/* Input:                                                             */
/*      MOTO_FLASH_A_Ptr  : FLASH register block base address         */
/*      DeviceBaseAddress : array base address (chip select)          */
/*      BlocksToErase     : Determines which block(s) to erase        */
/*      DataWidth         : Determines if memory width is 2/4 bytes   */
/*      BlockSize         : Determines array block size               */
/*      ShadowBlock       : Determines shadow block number            */
/*      ShadowStartOffset : Determines start of shadow info as offset */   
/*                          from device base address                  */
/*      ShadowEndOffset  : Determines end of shadow info as  offset   */   
/*                          from device base address                  */
/*      SystemClock      : Specifies system clock in Hz               */
/*      PulseWidth       : Specifies pulse width in uSec              */
/*      MaxPulses        : Specifies maximum number of erase pulses   */
/*                                                                    */ 
/* Output:                                                            */
/*    MOTO_FLASH_A_ERR_NONE           : For successful completion     */
/*    MOTO_FLASH_A_ERR_INVALID_HANDLE : Device Address is zero        */
/*    MOTO_FLASH_A_ERR_INVALID_ADDRESS : Specified Address pointer is */
/*                                       zero                         */
/*    MOTO_FLASH_A_ERR_INVALID_BLOCK_CONFIG : BlocksToErase invalid   */
/*    MOTO_FLASH_A_ERR_INVALID_DATA_WIDTH : DataWidth input invalid   */
/*    MOTO_FLASH_A_ERR_INVALID_BLOCK_SIZE : BlockSize input invalid   */
/*    MOTO_FLASH_A_ERR_INVALID_SHADOW_BLOCK : ShadowBlock input invali*/
/*    MOTO_FLASH_A_ERR_INVALID_SHADOW_OFFSET : ShadowStartOffset or   */
/*                                             ShadowEndOffset invalid*/
/*    MOTO_FLASH_A_ERR_INVALID_SYSTEM_CLOCK : SystemClock input invali*/
/*    MOTO_FLASH_A_ERR_INVALID_PULSE_WIDTH : PulseWidth input invalid */
/*    MOTO_FLASH_A_ERR_INVALID_MAX_PULSES : MaxPulses input invalid   */
/*    MOTO_FLASH_A_ERR_ARRAY_ERASE_FAILURE: array erase failed within */
/*                                          specified limit of MaxPulse/
/*    MOTO_FLASH_A_ERR_SHADOW_ERASE_FAILURE: shadow erase failed withi*/
/*                                          specified limit of MaxPuls*/
/*                                                                    */
/**********************************************************************/
#define MOTO_FLASH_A_EraseSerialMRVerify(                              \
                                           MOTO_FLASH_A_Ptr,           \
                                           DeviceBaseAddress,          \
                                           BlocksToErase,              \
                                           DataWidth,                  \
                                           BlockSize,                  \
                                           ShadowBlock,                \
                                           ShadowStartOffset,          \
                                           ShadowEndOffset,            \
                                           MaxPulses )                 \
(                                                                      \
   (MOTO_FLASH_A_PARAM_CHECKING) ?                                     \
   (                                                                   \
      ((MOTO_FLASH_A_Ptr) == NULL) ? MOTO_FLASH_A_ERR_INVALID_HANDLE : \
      ((BlocksToErase) > MOTO_FLASH_A_ALL_BLOCKS ||                    \
       (BlocksToErase) < MOTO_FLASH_A_NO_BLOCK_SELECTED  ) ?           \
                       MOTO_FLASH_A_ERR_INVALID_BLOCK_CONFIG :         \
      (((DataWidth) != MOTO_FLASH_A_2_BYTES) &&                        \
       ((DataWidth) != MOTO_FLASH_A_4_BYTES)) ?                        \
                       MOTO_FLASH_A_ERR_INVALID_DATA_WIDTH :           \
      (((BlockSize) != MOTO_FLASH_A_16K_BYTES) &&                      \
       ((BlockSize) != MOTO_FLASH_A_32K_BYTES)) ?                      \
                       MOTO_FLASH_A_ERR_INVALID_BLOCK_SIZE :           \
      (((ShadowBlock) != MOTO_FLASH_A_LOW_FILL_SHADOW_BLOCK) &&        \
       ((ShadowBlock) != MOTO_FLASH_A_HIGH_FILL_SHADOW_BLOCK)) ?       \
                       MOTO_FLASH_A_ERR_INVALID_SHADOW_BLOCK :         \
  (((ShadowStartOffset)!= MOTO_FLASH_A_SHADOW_START_OFFSET_0_BYTES) && \
((ShadowStartOffset)!= MOTO_FLASH_A_SHADOW_START_OFFSET_16_BYTES))?    \
                       MOTO_FLASH_A_ERR_INVALID_SHADOW_OFFSET :        \
   ((ShadowEndOffset)!= MOTO_FLASH_A_SHADOW_END_OFFSET_256_BYTES) ?    \
                       MOTO_FLASH_A_ERR_INVALID_SHADOW_OFFSET :        \
      ((MaxPulses) != MOTO_FLASH_A_MAX_NUMBER_ERASE_PULSES ) ?         \
                       MOTO_FLASH_A_ERR_INVALID_MAX_PULSES :           \
        MOTO_FLASH_A_EraseSerialMRVerify_f( (MOTO_FLASH_A_Ptr),        \
                                           (DeviceBaseAddress),        \
                                           (BlocksToErase),            \
                                           (DataWidth),                \
                                           (BlockSize),                \
                                           (ShadowBlock),              \
                                           (ShadowStartOffset),        \
                                           (ShadowEndOffset),          \
                                           (MaxPulses) )               \
   )                                                                   \
   :                                                                   \
   MOTO_FLASH_A_EraseSerialMRVerify_f( (MOTO_FLASH_A_Ptr),             \
                                           (DeviceBaseAddress),        \
                                           (BlocksToErase),            \
                                           (DataWidth),                \
                                           (BlockSize),                \
                                           (ShadowBlock),              \
                                           (ShadowStartOffset),        \
                                           (ShadowEndOffset),          \
                                           (MaxPulses) )               \
) /* End of MOTO_FLASH_A_EraseSerialMRVerify Macro */   
/**********************************************************************/
/* Macro:    MOTO_FLASH_A_GetPulseStatus                              */
/*                                                                    */
/* Purpose:     Call MOTO_FLASH_A_GetPulseStatus_f with               */
/*              optional parameter checking                           */
/*                                                                    */
/* Input:                                                             */
/*      pMOTO_FLASH_A_Ptr : FLASH register block base address         */
/*      PulseStatus       : Determines if high voltage pulse is active*/
/*                                                                    */ 
/* Output:                                                            */
/*  MOTO_FLASH_A_ERR_NONE                 : For successful completion */
/*  MOTO_FLASH_A_ERR_BAD_RESULT_ADDR      : Result Pointer is zero    */
/*                                                                    */
/**********************************************************************/
#define MOTO_FLASH_A_GetPulseStatus(                                   \
                                     MOTO_FLASH_A_Ptr,                 \
                                     PulseStatus)                      \
(                                                                      \
   (MOTO_FLASH_A_PARAM_CHECKING) ?                                     \
   (                                                                   \
      ((MOTO_FLASH_A_Ptr) == NULL) ? MOTO_FLASH_A_ERR_INVALID_HANDLE : \
      ((PulseStatus) == NULL) ? MOTO_FLASH_A_ERR_BAD_RESULT_ADDR :     \
        MOTO_FLASH_A_GetPulseStatus_f( (MOTO_FLASH_A_Ptr),             \
                                       (PulseStatus) )                 \
   )                                                                   \
   :                                                                   \
   MOTO_FLASH_A_GetPulseStatus_f( (MOTO_FLASH_A_Ptr),                  \
                                  (PulseStatus) )                      \
)/* End of MOTO_FLASH_A_GetPulseStatus Macro */   
/**********************************************************************/
/* Macro:    MOTO_FLASH_A_GetHighVoltageEnableStatus                  */
/*                                                                    */
/* Purpose:     Call MOTO_FLASH_A_GetHighVoltageEnableStatus_f with   */
/*              optional parameter checking                           */
/*                                                                    */
/* Input:                     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -