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

📄 mcf5204.h

📁 motorola 针对coldfire 5275 评估板的Dbug bootloader源程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#define MCF5204_SIM_PADDR_PA7_INPUT     (~0x80)
#define MCF5204_SIM_PADDR_PA7_OUTPUT    ( 0x80)
#define MCF5204_SIM_PADDR_PA6           ( 0x40)
#define MCF5204_SIM_PADDR_PA6_INPUT     (~0x40)
#define MCF5204_SIM_PADDR_PA6_OUTPUT    ( 0x40)
#define MCF5204_SIM_PADDR_PA5           ( 0x20)
#define MCF5204_SIM_PADDR_PA5_INPUT     (~0x20)
#define MCF5204_SIM_PADDR_PA5_OUTPUT    ( 0x20)
#define MCF5204_SIM_PADDR_PA4           ( 0x10)
#define MCF5204_SIM_PADDR_PA4_INPUT     (~0x10)
#define MCF5204_SIM_PADDR_PA4_OUTPUT    ( 0x10)
#define MCF5204_SIM_PADDR_PA3           ( 0x08)
#define MCF5204_SIM_PADDR_PA3_INPUT     (~0x08)
#define MCF5204_SIM_PADDR_PA3_OUTPUT    ( 0x08)
#define MCF5204_SIM_PADDR_PA2           ( 0x04)
#define MCF5204_SIM_PADDR_PA2_INPUT     (~0x04)
#define MCF5204_SIM_PADDR_PA2_OUTPUT    ( 0x04)
#define MCF5204_SIM_PADDR_PA1           ( 0x02)
#define MCF5204_SIM_PADDR_PA1_INPUT     (~0x02)
#define MCF5204_SIM_PADDR_PA1_OUTPUT    ( 0x02)
#define MCF5204_SIM_PADDR_PA0           ( 0x01)
#define MCF5204_SIM_PADDR_PA0_INPUT     (~0x01)
#define MCF5204_SIM_PADDR_PA0_OUTPUT    ( 0x01)

#define MCF5204_SIM_PADAT_PA7           ( 0x80)
#define MCF5204_SIM_PADAT_PA6           ( 0x40)
#define MCF5204_SIM_PADAT_PA5           ( 0x20)
#define MCF5204_SIM_PADAT_PA4           ( 0x10)
#define MCF5204_SIM_PADAT_PA3           ( 0x08)
#define MCF5204_SIM_PADAT_PA2           ( 0x04)
#define MCF5204_SIM_PADAT_PA1           ( 0x02)
#define MCF5204_SIM_PADAT_PA0           ( 0x01)

#define MCF5204_SIM_CSAR_BASE(a)        ((a)&0xFFFFFE00)

#define MCF5204_SIM_CSMR_MASK_4M        (0x003FFE00)
#define MCF5204_SIM_CSMR_MASK_2M        (0x001FFE00)
#define MCF5204_SIM_CSMR_MASK_1M        (0x000FFE00)
#define MCF5204_SIM_CSMR_MASK_1024K     (0x000FFE00)
#define MCF5204_SIM_CSMR_MASK_512K      (0x0007FE00)
#define MCF5204_SIM_CSMR_MASK_256K      (0x0003FE00)
#define MCF5204_SIM_CSMR_MASK_128K      (0x0001FE00)
#define MCF5204_SIM_CSMR_MASK_64K       (0x0000FE00)
#define MCF5204_SIM_CSMR_MASK_32K       (0x00007E00)
#define MCF5204_SIM_CSMR_MASK_16K       (0x00003E00)
#define MCF5204_SIM_CSMR_MASK_8K        (0x00001E00)
#define MCF5204_SIM_CSMR_MASK_4K        (0x00000E00)
#define MCF5204_SIM_CSMR_MASK_2K        (0x00000600)
#define MCF5204_SIM_CSMR_MASK_1K        (0x00000200)
#define MCF5204_SIM_CSMR_MASK_512B      (0x00000000)
#define MCF5204_SIM_CSMR_WP             (0x00000100)
#define MCF5204_SIM_CSMR_CI             (0x00000020)
#define MCF5204_SIM_CSMR_SC             (0x00000010)
#define MCF5204_SIM_CSMR_SD             (0x00000008)
#define MCF5204_SIM_CSMR_UC             (0x00000004)
#define MCF5204_SIM_CSMR_UD             (0x00000002)

#define MCF5204_SIM_CSCR_WS_MASK        (0x00001C00)
#define MCF5204_SIM_CSCR_WS(a)          (((a)&0x07)<<10)
#define MCF5204_SIM_CSCR_WS_0           (0x00000000)
#define MCF5204_SIM_CSCR_WS_1           (0x00000400)
#define MCF5204_SIM_CSCR_WS_2           (0x00000800)
#define MCF5204_SIM_CSCR_WS_3           (0x00000C00)
#define MCF5204_SIM_CSCR_WS_4           (0x00001000)
#define MCF5204_SIM_CSCR_WS_5           (0x00001400)
#define MCF5204_SIM_CSCR_WS_6           (0x00001800)
#define MCF5204_SIM_CSCR_WS_7           (0x00001C00)
#define MCF5204_SIM_CSCR_BRST           (0x00000200)
#define MCF5204_SIM_CSCR_AA             (0x00000100)
#define MCF5204_SIM_CSCR_PS_8           (0x00000040)
#define MCF5204_SIM_CSCR_PS_16          (0x00000000)
#define MCF5204_SIM_CSCR_BEM            (0x00000020)
#define MCF5204_SIM_CSCR_V              (0x00000001)

#define MCF5204_IACK_ADDRESS            (0xFFFFFFE0)
#define MCF5204_IACK_MASK               (MCF5204_SIM_CSMR_MASK_512B)

/***********************************************************************/

/*
 * Timer Module, TIMER
 */

/* Offsets of the registers from the MBAR */
#define MCF5204_TIMER_TMR1      (0x100)
#define MCF5204_TIMER_TRR1      (0x104)
#define MCF5204_TIMER_TCR1      (0x108)
#define MCF5204_TIMER_TCN1      (0x10C)
#define MCF5204_TIMER_TER1      (0x111)
#define MCF5204_TIMER_TMR2      (0x120)
#define MCF5204_TIMER_TRR2      (0x124)
#define MCF5204_TIMER_TCR2      (0x128)
#define MCF5204_TIMER_TCN2      (0x12C)
#define MCF5204_TIMER_TER2      (0x131)

/* Read access macros for general use */
#define MCF5204_RD_TIMER_TMR1(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TMR1,16)
#define MCF5204_RD_TIMER_TRR1(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TRR1,16)
#define MCF5204_RD_TIMER_TCR1(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TCR1,16)
#define MCF5204_RD_TIMER_TCN1(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TCN1,16)
#define MCF5204_RD_TIMER_TER1(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TER1,16)
#define MCF5204_RD_TIMER_TMR2(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TMR2,16)
#define MCF5204_RD_TIMER_TRR2(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TRR2,16)
#define MCF5204_RD_TIMER_TCR2(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TCR2,16)
#define MCF5204_RD_TIMER_TCN2(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TCN2,16)
#define MCF5204_RD_TIMER_TER2(IMMP) Mcf5204_iord(IMMP,MCF5204_TIMER_TER2,16)

/* Write access macros for general use */
#define MCF5204_WR_TIMER_TMR1(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TMR1,16,DATA)
#define MCF5204_WR_TIMER_TRR1(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TRR1,16,DATA)
#define MCF5204_WR_TIMER_TCR1(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TCR1,16,DATA)
#define MCF5204_WR_TIMER_TCN1(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TCN1,16,DATA)
#define MCF5204_WR_TIMER_TER1(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TER1,16,DATA)
#define MCF5204_WR_TIMER_TMR2(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TMR2,16,DATA)
#define MCF5204_WR_TIMER_TRR2(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TRR2,16,DATA)
#define MCF5204_WR_TIMER_TCR2(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TCR2,16,DATA)
#define MCF5204_WR_TIMER_TCN2(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TCN2,16,DATA)
#define MCF5204_WR_TIMER_TER2(IMMP,DATA)    \
    Mcf5204_iowr(IMMP,MCF5204_TIMER_TER2,16,DATA)

#if 0
typedef volatile struct
{
    uint32  reserved1[64];
    uint16  TMR1;
    uint16  reserved2;
    uint16  TRR1;
    uint16  reserved3;
    uint16  TCR1;
    uint16  reserved4;
    uint16  TCN1;
    uint16  reserved5;
    uint8   reserved6;
    uint8   TER1;
    uint16  reserved7;
    uint32  reserved8;
    uint32  reserved9;
    uint32  reserved10;
    uint16  TMR2;
    uint16  reserved11;
    uint16  TRR2;
    uint16  reserved12;
    uint16  TCR2;
    uint16  reserved13;
    uint16  TCN2;
    uint16  reserved14;
    uint8   reserved15;
    uint8   TER2;
    uint16  reserved16;
} MCF5204_TIMER;
#endif

#define MCF5204_TIMER_TMR_PS(a)     (((a)&0x00FF)<<8)
#define MCF5204_TIMER_TMR_CE        (0x00C0)
#define MCF5204_TIMER_TMR_CE_ANY    (0x00C0)
#define MCF5204_TIMER_TMR_CE_RISE   (0x0080)
#define MCF5204_TIMER_TMR_CE_FALL   (0x0040)
#define MCF5204_TIMER_TMR_CE_NONE   (0x0000)
#define MCF5204_TIMER_TMR_OM        (0x0020)
#define MCF5204_TIMER_TMR_ORI       (0x0010)
#define MCF5204_TIMER_TMR_FRR       (0x0008)
#define MCF5204_TIMER_TMR_CLK       (0x0006)
#define MCF5204_TIMER_TMR_CLK_TIN   (0x0006)
#define MCF5204_TIMER_TMR_CLK_DIV16 (0x0004)
#define MCF5204_TIMER_TMR_CLK_MSCLK (0x0002)
#define MCF5204_TIMER_TMR_CLK_STOP  (0x0000)
#define MCF5204_TIMER_TMR_RST       (0x0001)

#define MCF5204_TIMER_TER_REF       (0x02)
#define MCF5204_TIMER_TER_CAP       (0x01)

/***********************************************************************/

/*
 * UART Module, UART
 */

#define MCF5204_UART_UMR    (0x140)
#define MCF5204_UART_USR    (0x144)
#define MCF5204_UART_UCSR   (0x144)
#define MCF5204_UART_UCR    (0x148)
#define MCF5204_UART_URB    (0x14C)
#define MCF5204_UART_UTB    (0x14C)
#define MCF5204_UART_UIPCR  (0x150)
#define MCF5204_UART_UACR   (0x150)
#define MCF5204_UART_UISR   (0x154)
#define MCF5204_UART_UIMR   (0x154)
#define MCF5204_UART_UBG1   (0x158)
#define MCF5204_UART_UBG2   (0x15C)
#define MCF5204_UART_UIVR   (0x170)
#define MCF5204_UART_UIP    (0x174)
#define MCF5204_UART_UOP1   (0x178)
#define MCF5204_UART_UOP0   (0x17C)

/* Read access macros for general use */
#define MCF5204_RD_UART_UMR(IMMP)   Mcf5204_iord(IMMP,MCF5204_UART_UMR,8)
#define MCF5204_RD_UART_USR(IMMP)   Mcf5204_iord(IMMP,MCF5204_UART_USR,8)
#define MCF5204_RD_UART_URB(IMMP)   Mcf5204_iord(IMMP,MCF5204_UART_URB,8)
#define MCF5204_RD_UART_UIPCR(IMMP) Mcf5204_iord(IMMP,MCF5204_UART_UIPCR,8)
#define MCF5204_RD_UART_UISR(IMMP)  Mcf5204_iord(IMMP,MCF5204_UART_UISR,8)
#define MCF5204_RD_UART_UIVR(IMMP)  Mcf5204_iord(IMMP,MCF5204_UART_UIVR,8)
#define MCF5204_RD_UART_UIP(IMMP)   Mcf5204_iord(IMMP,MCF5204_UART_UIP,8)

/* Write access macros for general use */
#define MCF5204_WR_UART_UMR(IMMP,DATA)  \
    Mcf5204_iowr(IMMP,MCF5204_UART_UMR,8,DATA)
#define MCF5204_WR_UART_UCSR(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UCSR,8,DATA)
#define MCF5204_WR_UART_UCR(IMMP,DATA)  \
    Mcf5204_iowr(IMMP,MCF5204_UART_UCR,8,DATA)
#define MCF5204_WR_UART_UTB(IMMP,DATA)  \
    Mcf5204_iowr(IMMP,MCF5204_UART_UTB,8,DATA)
#define MCF5204_WR_UART_UACR(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UACR,8,DATA)
#define MCF5204_WR_UART_UIMR(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UIMR,8,DATA)
#define MCF5204_WR_UART_UBG1(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UBG1,8,DATA)
#define MCF5204_WR_UART_UBG2(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UBG2,8,DATA)
#define MCF5204_WR_UART_UIVR(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UIVR,8,DATA)
#define MCF5204_WR_UART_UOP1(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UOP1,8,DATA)
#define MCF5204_WR_UART_UOP0(IMMP,DATA) \
    Mcf5204_iowr(IMMP,MCF5204_UART_UOP0,8,DATA)

#if 0
typedef volatile struct
{
    uint32  reserved1[80];
    uint8   UMR;
    uint8   reserved2;
    uint8   reserved3;
    uint8   reserved4;
    uint8   USR;
    uint8   reserved5;
    uint8   reserved6;
    uint8   reserved7;
    uint8   UCR;
    uint8   reserved8;
    uint8   reserved9;
    uint8   reserved10;
    uint8   UBUF;
    uint8   reserved11;
    uint8   reserved12;
    uint8   reserved13;
    uint8   UACR;
    uint8   reserved14;
    uint8   reserved15;
    uint8   reserved16;
    uint8   UIR;
    uint8   reserved17;
    uint8   reserved18;
    uint8   reserved19;
    uint8   UBG1;
    uint8   reserved20;
    uint8   reserved21;
    uint8   reserved22;
    uint8   UBG2;
    uint32  reserved23[4];
    uint8   UIVR;
    uint8   reserved24;
    uint8   reserved25;
    uint8   reserved26;
    uint8   UIP;
    uint8   reserved27;
    uint8   reserved28;
    uint8   reserved29;
    uint8   UOP1;
    uint8   reserved30;
    uint8   reserved31;
    uint8   reserved32;
    uint8   UOP0;
} MCF5204_UART;
#endif

#define MCF5204_UART_UMR1_RXRTS             (0x80)
#define MCF5204_UART_UMR1_RXIRQ             (0x40)
#define MCF5204_UART_UMR1_ERR               (0x20)
#define MCF5204_UART_UMR1_PM                (0x1C)
#define MCF5204_UART_UMR1_PM_MULTI_ADDR     (0x1C)
#define MCF5204_UART_UMR1_PM_MULTI_DATA     (0x18)
#define MCF5204_UART_UMR1_PM_NONE           (0x10)
#define MCF5204_UART_UMR1_PM_FORCE_HI       (0x0C)
#define MCF5204_UART_UMR1_PM_FORCE_LO       (0x08)
#define MCF5204_UART_UMR1_PM_ODD            (0x04)
#define MCF5204_UART_UMR1_PM_EVEN           (0x00)
#define MCF5204_UART_UMR1_BC                (0x03)
#define MCF5204_UART_UMR1_BC_5              (0x00)
#define MCF5204_UART_UMR1_BC_6              (0x01)
#define MCF5204_UART_UMR1_BC_7              (0x02)
#define MCF5204_UART_UMR1_BC_8              (0x03)

#define MCF5204_UART_UMR2_CM                (0xC0)
#define MCF5204_UART_UMR2_CM_NORMAL         (0x00)
#define MCF5204_UART_UMR2_CM_ECHO           (0x40)
#define MCF5204_UART_UMR2_CM_LOCAL_LOOP     (0x80)
#define MCF5204_UART_UMR2_CM_REMOTE_LOOP    (0xC0)
#define MCF5204_UART_UMR2_TXRTS             (0x20)
#define MCF5204_UART_UMR2_TXCTS             (0x10)
#define MCF5204_UART_UMR2_STOP_BITS         (0x0F)
#define MCF5204_UART_UMR2_STOP_BITS_1       (0x07)
#define MCF5204_UART_UMR2_STOP_BITS_15      (0x08)
#define MCF5204_UART_UMR2_STOP_BITS_2       (0x0F)

#define MCF5204_UART_USR_RB                 (0x80)
#define MCF5204_UART_USR_FE                 (0x40)
#define MCF5204_UART_USR_PE                 (0x20)
#define MCF5204_UART_USR_OE                 (0x10)
#define MCF5204_UART_USR_TXEMP              (0x08)
#define MCF5204_UART_USR_TXRDY              (0x04)
#define MCF5204_UART_USR_FFULL              (0x02)
#define MCF5204_UART_USR_RXRDY              (0x01)

#define MCF5204_UART_UCSR_9600_BPS          (0xBB)
#define MCF5204_UART_UCSR_19200_BPS         (0xCC)

#define MCF5204_UART_UCR_NONE               (0x00)
#define MCF5204_UART_UCR_STOP_BREAK         (0x70)
#define MCF5204_UART_UCR_START_BREAK        (0x60)
#define MCF5204_UART_UCR_RESET_BKCHGINT     (0x50)
#define MCF5204_UART_UCR_RESET_ERROR        (0x40)
#define MCF5204_UART_UCR_RESET_TX           (0x30)
#define MCF5204_UART_UCR_RESET_RX           (0x20)
#define MCF5204_UART_UCR_RESET_MR           (0x10)
#define MCF5204_UART_UCR_TX_DISABLED        (0x08)
#define MCF5204_UART_UCR_TX_ENABLED         (0x04)
#define MCF5204_UART_UCR_RX_DISABLED        (0x02)
#define MCF5204_UART_UCR_RX_ENABLED         (0x01)

#define MCF5204_UART_UIPCR_COS              (0x10)
#define MCF5204_UART_UIPCR_CTS              (0x01)

#define MCF5204_UART_UACR_BRG               (0x80)
#define MCF5204_UART_UACR_CTMS_TIMER        (0x60)
#define MCF5204_UART_UACR_IEC               (0x01)

#define MCF5204_UART_UISR_COS               (0x80)
#define MCF5204_UART_UISR_DB                (0x04)
#define MCF5204_UART_UISR_RXRDY             (0x02)
#define MCF5204_UART_UISR_TXRDY             (0x01)

#define MCF5204_UART_UIMR_COS               (0x80)
#define MCF5204_UART_UIMR_DB                (0x04)
#define MCF5204_UART_UIMR_FFULL             (0x02)
#define MCF5204_UART_UIMR_TXRDY             (0x01)

/***********************************************************************/
#if 0
/*
 * Put the modules together to overlay the internal peripherals.
 * Assuming compiler keeps data structures in the exact order
 * provided above, an example acess to the UMR register in the
 * UART is:
 *
 *  immp->uart.UMR
 *
 * where 'immp' is a pointer to the internal peripherals, MCF5204_IMM *
 */
typedef volatile union
{
    MCF5204_SIM     sim;
    MCF5204_UART    uart;
    MCF5204_TIMER   timer;
} MCF5204_IMM;
#endif

/***********************************************************************/

#endif  /* _CPU_MCF5204_H */

⌨️ 快捷键说明

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