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

📄 cs_a.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 2 页
字号:
                               CSRegSwitch,                             \
                               ChipSelectEnableVal                      \
                                           )                            \
(                                                                       \
    (CS_A_PARAM_CHECKING) ?                                             \
    (                                                                   \
        ((CSPtr) == NULL) ?                                             \
            CS_A_ERR_INVALID_HANDLE :                                   \
         (((CSRegSwitch) < CS_A_CSCR0 ) ||                              \
          ((CSRegSwitch) > CS_A_CSCR3)) ?                               \
            CS_A_ERR_INVALID_REGISTER :                                 \
         (((ChipSelectEnableVal) < CS_A_CHIP_SELECT_DISABLE ) ||        \
          ((ChipSelectEnableVal) > CS_A_CHIP_SELECT_ENABLE)) ?          \
            CS_A_ERR_INVALID_CHIP_SELECT_ENABLE_VAL :                   \
         CS_A_ControlChipSelect_f((CSPtr),                              \
                                  (CSRegSwitch),                        \
                                  (ChipSelectEnableVal)                 \
                                 )                                      \
    )                                                                   \
    :                                                                   \
         CS_A_ControlChipSelect_f(                                      \
                             (CSPtr),                                   \
                             (CSRegSwitch),                             \
                             (ChipSelectEnableVal)                      \
                                 )                                      \
) /* end of CS_A_ControlChipSelect */

/*----------------------------------------------------------------------*/
/* Macro:   CS_A_Reset                                                  */    
/*                                                                      */
/* Purpose:                                                             */
/*   CS_A_Reset allows software to request a reset.                     */
/* Input:                                                               */
/*   CSPtr : CS module base address associated with this driver.        */
/*   ResetConditionVal : Allows software to request a cs.               */
/* Output:                                                              */
/*   CS_A_ERR_NONE : No error.                                          */ 
/*   CS_A_ERR_INVALID_HANDLE  : CS base address parameter is zero       */
/*   CS_A_ERR_INVALID_RESET_CONDITION_VAL:Reset Condition is not valid. */
/*----------------------------------------------------------------------*/
#define CS_A_Reset(CSPtr,                                              \
                   ResetConditionVal                                   \
                    )                                                  \
(                                                                      \
  (CS_A_PARAM_CHECKING) ?                                              \
  (                                                                    \
    ((CSPtr) == NULL) ?                                                \
        CS_A_ERR_INVALID_HANDLE :                                      \
    (((ResetConditionVal) < CS_A_EMULATION_MODE) ||                    \
       ((ResetConditionVal) > CS_A_32_BIT_PORT_SIZE_ENABLE)) ?         \
       CS_A_ERR_INVALID_RESET_CONDITION_VAL :                          \
           CS_A_Reset_f((CSPtr),                                       \
                        (ResetConditionVal)                            \
                       )                                               \
  )                                                                    \
  :                                                                    \
           CS_A_Reset_f((CSPtr),                                       \
                        (ResetConditionVal)                            \
                       )                                               \
) /* End of CS_A_Reset Macro */

/*----------------------------------------------------------------------*/
/* Macro:   CS_A_ConfigureChipSelectFeatures                            */    
/*                                                                      */
/* Purpose:                                                             */
/*   Writes a chip select register with the user defined values         */
/*   requested to perform a chip select.                                */
/* Input:                                                               */
/*   CSPtr : CS base address associated with this driver.               */
/*   CSRegSwitch : Select among CS_A registers.                         */
/*   TransferAckVal : Transfer Acknowledge enabled or disabled.         */
/*   WaitStateVal : Number of wait states for the chip select logic to  */
/*                  insert before asserting the internal cycle          */
/*                  termination signal.                                 */
/*   WriteEnableVal : Determines when the Enable Byte output pins are   */
/*                    asserted.                                         */
/*   WriteWaitStateVal:Determines additional wait state for write cycle.*/
/*   PortSizeVal : Width of external data port.                         */
/*   ReadOnlyVal : Chip Select logic Read Only.                         */
/*   SupervisorOnlyVal : Determines user level access restriction.      */
/* Output:                                                              */
/*   CS_A_ERR_NONE            : No error                                */
/*   CS_A_ERR_INVALID_HANDLE  : CS base address parameter is zero       */
/*   CS_A_ERR_INVALID_TRANSFER_ACK_VAL : Not a valid transfer           */
/*                                       acknowledge selection          */
/*   CS_A_ERR_INVALID_WRITE_ENABLE_VAL : Not a valid write enable       */
/*                                       selection                      */
/*   CS_A_ERR_INVALID_WAIT_STATE_VAL : Not a valid wait state selection */
/*   CS_A_ERR_INVALID_WRITE_WAIT_STATE_VAL : Not a valid write wait     */
/*                                           state selection            */
/*   CS_A_ERR_INVALID_PORT_SIZE_VAL : Not a valid port size selection   */
/*   CS_A_ERR_INVALID_READ_ONLY_VAL : Not a valid read only selection   */ 
/*   CS_A_ERR_INVALID_SUPERVISOR_ONLY_VAL : Not a valid supervisor only */
/*                                          selection                   */
/*   CS_A_ERR_INVALID_REGISTER  CS Register:Selection switch is invalid */
/*----------------------------------------------------------------------*/
#define CS_A_ConfigureChipSelectFeatures(CSPtr,                      \
                                         CSRegSwitch,                \
                                         TransferAckVal,             \
                                         WaitStateVal,               \
                                         WriteEnableVal,             \
                                         WriteWaitStateVal,          \
                                         PortSizeVal,                \
                                         ReadOnlyVal,                \
                                         SupervisorOnlyVal           \
                                   )                                 \
(                                                                    \
  (CS_A_PARAM_CHECKING) ?                                            \
  (                                                                  \
    ((CSPtr) == NULL) ?                                              \
      CS_A_ERR_INVALID_HANDLE :                                      \
    (((CSRegSwitch) < CS_A_CSCR0 ) ||                                \
       ((CSRegSwitch) > CS_A_CSCR3)) ?                               \
       CS_A_ERR_INVALID_REGISTER :                                   \
    (((TransferAckVal) < CS_A_EXTERNAL_LOGIC_ASSERTION) ||           \
       ((TransferAckVal) > CS_A_CHIP_SELECT_LOGIC_ASSERTION)) ?      \
       CS_A_ERR_INVALID_TRANSFER_ACK_VAL :                           \
    (((WaitStateVal) < CS_A_WAIT_STATE_ZERO) ||                      \
       ((WaitStateVal) > CS_A_WAIT_STATE_SIX )) ?                    \
       CS_A_ERR_INVALID_WAIT_STATE_VAL :                             \
    (((WriteEnableVal) < CS_A_WRITE_AS_BYTES_ENABLE) ||              \
       ((WriteEnableVal) > CS_A_EXTERNAL_WRITE_ENABLE )) ?           \
       CS_A_ERR_INVALID_WRITE_ENABLE_VAL :                           \
    (((WriteWaitStateVal) < CS_A_NO_WAIT_STATE_ADD ) ||              \
       ((WriteWaitStateVal) > CS_A_ADD_ONE_WAIT_STATE )) ?           \
       CS_A_ERR_INVALID_WRITE_WAIT_STATE_VAL :                       \
    (((PortSizeVal) < CS_A_PORT_SIZE_16) ||                          \
       ((PortSizeVal) > CS_A_PORT_SIZE_32  )) ?                      \
       CS_A_ERR_INVALID_PORT_SIZE_VAL :                              \
    (((ReadOnlyVal) < CS_A_READ_WRITE_ENABLE) ||                     \
       ((ReadOnlyVal) > CS_A_READ_ONLY_ENABLE )) ?                   \
       CS_A_ERR_INVALID_READ_ONLY_VAL :                              \
    (((SupervisorOnlyVal) < CS_A_SUPERVISOR_AND_USER_ENABLE ) ||     \
       ((SupervisorOnlyVal) > CS_A_SUPERVISOR_ONLY_ENABLE )) ?       \
       CS_A_ERR_INVALID_SUPERVISOR_ONLY_VAL :                        \
                 CS_A_ConfigureChipSelectFeatures_f(                 \
                                                 (CSPtr),            \
                                                 (CSRegSwitch),      \
                                                 (TransferAckVal),   \
                                                 (WaitStateVal),     \
                                                 (WriteEnableVal),   \
                                                 (WriteWaitStateVal),\
                                                 (PortSizeVal),      \
                                                 (ReadOnlyVal),      \
                                                 (SupervisorOnlyVal) \
                                   )                                 \
  )                                                                  \
  :                                                                  \
                 CS_A_ConfigureChipSelectFeatures_f(                 \
                                                 (CSPtr),            \
                                                 (CSRegSwitch),      \
                                                 (TransferAckVal),   \
                                                 (WaitStateVal),     \
                                                 (WriteEnableVal),   \
                                                 (WriteWaitStateVal),\
                                                 (PortSizeVal),      \
                                                 (ReadOnlyVal),      \
                                                 (SupervisorOnlyVal) \
                                                    )                \
) /* End of CS_A_ConfigureChipSelectFeatures Macro */

/*----------------------------------------------------------------------*/
/* Macro:   CS_A_SetRegister                                            */    
/*                                                                      */
/* Purpose:                                                             */
/*   Write a 16-bit data value to a sub-set of Chip Select Module       */
/*   registers. Parameter checking is a compile-time option.            */
/* Input:                                                               */
/*   CSPtr        : CS_A base address associated with this driver.      */
/*   CSRegisterSwitch  : Select among MGM_A registers.                  */
/*   RegisterValue : Data to copy into selected CS_A register.          */
/* Output:                                                              */
/*   CS_A_ERR_NONE             : No error                               */
/*   CS_A_ERR_INVALID_HANDLE   : CS base address parameter is zero      */
/*   CS_A_ERR_INVALID_REGISTER : CS Register Selection is invalid       */
/*----------------------------------------------------------------------*/
#define CS_A_SetRegister( CSPtr,                                    \
                           CSRegisterSwitch,                        \
                           RegisterValue                            \
                          )                                         \
(                                                                   \
  (CS_A_PARAM_CHECKING) ?                                           \
  (                                                                 \
    ((CSPtr) == NULL) ?                                             \
      CS_A_ERR_INVALID_HANDLE :                                     \
    (((CSRegisterSwitch) < CS_A_CSCR0 ) ||                          \
       ((CSRegisterSwitch) > CS_A_CSCR3)) ?                         \
       CS_A_ERR_INVALID_REGISTER :                                  \
    CS_A_SetRegister_f( (CSPtr),                                    \
                         (CSRegisterSwitch),                        \
                         (RegisterValue)                            \
                       )                                            \
  )                                                                 \
  :                                                                 \
    CS_A_SetRegister_f( (CSPtr),                                    \
                         (CSRegisterSwitch),                        \
                         (RegisterValue)                            \
                        )                                           \
) /* End of CS_A_SetRegister Macro */

/*----------------------------------------------------------------------*/
/* Macro:   CS_A_GetRegister                                            */    
/*                                                                      */
/* Purpose:                                                             */
/*   Return the contents of a sub-set of CS Module registers.           */
/*   Parameter checking is a compile-time option.                       */
/* Input:                                                               */
/*   CSPtr : CS_A base address associated with this driver.             */
/*   CSRegisterSwitch : Select among a sub-set of CS_A registers.       */ 
/*   GetRegisterPtr : Result address for selected CS_A register data.   */
/* Output:                                                              */
/*   CS_A_ERR_NONE : No error                                           */
/*   CS_A_ERR_INVALID_HANDLE : CS base address parameter is zero        */
/*   CS_A_ERR_INVALID_REGISTER : CS Register Selection switch is invalid*/
/*----------------------------------------------------------------------*/
#define CS_A_GetRegister(                                               \
                         CSPtr,                                         \
                         CSRegisterSwitch,                              \
                         GetRegisterPtr                                 \
                        )                                               \
(                                                                       \
  (CS_A_PARAM_CHECKING) ?                                               \
  (                                                                     \
    ((CSPtr) == NULL) ?                                                 \
      CS_A_ERR_INVALID_HANDLE :                                         \
    ((GetRegisterPtr) == NULL) ?                                        \
      CS_A_ERR_BAD_RESULT_ADDR :                                        \
    (((CSRegisterSwitch) < CS_A_CSCR0) ||                               \
       ((CSRegisterSwitch) > CS_A_CSCR3)) ?                             \
       CS_A_ERR_INVALID_REGISTER :                                      \
    CS_A_GetRegister_f( (CSPtr),                                        \
                         (CSRegisterSwitch),                            \
                         (GetRegisterPtr)                               \
                       )                                                \
  )                                                                     \
  :                                                                     \
    CS_a_GetRegister_f( (CSPtr),                                        \
                         (CSRegisterSwitch),                            \
                         (GetRegisterPtr)                               \
                       )                                                \
) /* End of CS_A_GetRegister Macro */

#endif

⌨️ 快捷键说明

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