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

📄 var_regs.h

📁 开放源码实时操作系统源码.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define IIC0_EXTSTS_XFRA        0x01   // Transfer aborted
#define IIC0_LSADR           ((_PPC405GP_IIC0)+0x0A)  // Slave address (low)
#define IIC0_HSADR           ((_PPC405GP_IIC0)+0x0B)  // Slave address (high)
#define IIC0_CLKDIV          ((_PPC405GP_IIC0)+0x0C)  // Clock divide
#define IIC0_INTRMSK         ((_PPC405GP_IIC0)+0x0D)  // Interrupt mask
#define IIC0_XFRCNT          ((_PPC405GP_IIC0)+0x0E)  // Transfer count
#define IIC0_XFRCNT_STC         0x70   // Slave transfer count
#define IIC0_XFRCNT_STC_SHIFT   4
#define IIC0_XFRCNT_MTC         0x07   // Master transfer count
#define IIC0_XFRCNT_MTC_SHIFT   0         
#define IIC0_XTCNTLSS        ((_PPC405GP_IIC0)+0x0F)  // Extended control & slave status
#define IIC0_DIRECT          ((_PPC405GP_IIC0)+0x10)  // Direct control over I/O lines
#endif //endif 405gp

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405EP) 
// I2C controller
#define IIC0_MDBUF           ((_PPC405EP_IIC0)+0x00)  // Master data buffer
#define IIC0_SDBUF           ((_PPC405EP_IIC0)+0x02)  // Slave data buffer
#define IIC0_LMADR           ((_PPC405EP_IIC0)+0x04)  // Master address (low)
#define IIC0_HMADR           ((_PPC405EP_IIC0)+0x05)  // Master address (high)
#define IIC0_CNTL            ((_PPC405EP_IIC0)+0x06)  // Control
#define IIC0_MDCNTL          ((_PPC405EP_IIC0)+0x07)  // Mode control
#define IIC0_STS             ((_PPC405EP_IIC0)+0x08)  // Status
#define IIC0_EXTSTS          ((_PPC405EP_IIC0)+0x09)  // Extended status
#define IIC0_LSADR           ((_PPC405EP_IIC0)+0x0A)  // Slave address (low)
#define IIC0_HSADR           ((_PPC405EP_IIC0)+0x0B)  // Slave address (high)
#define IIC0_CLKDIV          ((_PPC405EP_IIC0)+0x0C)  // Clock divide
#define IIC0_INTRMSK         ((_PPC405EP_IIC0)+0x0D)  // Interrupt mask
#define IIC0_XFRCNT          ((_PPC405EP_IIC0)+0x0E)  // Transfer count
#define IIC0_XTCNTLSS        ((_PPC405EP_IIC0)+0x0F)  // Extended control & slave status
#define IIC0_DIRECT          ((_PPC405EP_IIC0)+0x10)  // Direct control over I/O lines
#define IIC0_CNTL_HMT           0x80   // Halt master transfer
#define IIC0_CNTL_AMD           0x40   // Address mode (0=7 bit, 1=10 bit)
#define IIC0_CNTL_TCT           0x30   // Transfer size (1-4 bytes)
#define IIC0_CNTL_TCT_SHIFT     4
#define IIC0_CNTL_TCT_1         0x00
#define IIC0_CNTL_TCT_2         0x10
#define IIC0_CNTL_TCT_3         0x20
#define IIC0_CNTL_TCT_4         0x30
#define IIC0_CNTL_RPST          0x08   // Repeated start
#define IIC0_CNTL_CHT           0x04   // Chain transfer
#define IIC0_CNTL_RW            0x02   // Read/write
#define IIC0_CNTL_RW_READ       0x02
#define IIC0_CNTL_RW_WRITE      0x00
#define IIC0_CNTL_PT            0x01   // Pending transfer
#define IIC0_MDCNTL_FSDB        0x80   // Flush slave data buffer
#define IIC0_MDCNTL_FMDB        0x40   // Flush master data buffer
#define IIC0_MDCNTL_FSM         0x10   // Fast/standard mode (1=fast)
#define IIC0_MDCNTL_ESM         0x08   // Enable slave mode
#define IIC0_MDCNTL_EINT        0x04   // Enable interrupt
#define IIC0_MDCNTL_EUBS        0x02   // Exit unknown bus state
#define IIC0_MDCNTL_HSCL        0x01   // Hold serial clock low (slave only)
#define IIC0_STS_SSS            0x80   // Slave operation in progress
#define IIC0_STS_SLPR           0x40   // Sleep request
#define IIC0_STS_MDBS           0x20   // Master data buffer status (0=empty)
#define IIC0_STS_MDBF           0x10   // Master data buffer status (1=full)
#define IIC0_STS_SCMP           0x08   // Stop complete
#define IIC0_STS_ERR            0x04   // Error
#define IIC0_STS_IRQA           0x02   // Interrupt active
#define IIC0_STS_PT             0x01   // Transfer pending
#define IIC0_EXTSTS_IRQP        0x80   // Interrupt pending
#define IIC0_EXTSTS_BCS         0x70   // Bus status
#define IIC0_EXTSTS_BCS_ss      0x10   // Slave selected
#define IIC0_EXTSTS_BCS_st      0x20   // Slave transfer
#define IIC0_EXTSTS_BCS_mt      0x30   // Master transfer
#define IIC0_EXTSTS_BCS_free    0x40   // Bus free
#define IIC0_EXTSTS_BCS_busy    0x50   // Bus busy
#define IIC0_EXTSTS_IRQD        0x08   // IRQ on deck 
#define IIC0_EXTSTS_LA          0x04   // Lost arbitration
#define IIC0_EXTSTS_ICT         0x02   // Incomplete transfer
#define IIC0_EXTSTS_XFRA        0x01   // Transfer aborted
#define IIC0_XFRCNT_STC         0x70   // Slave transfer count
#define IIC0_XFRCNT_STC_SHIFT   4
#define IIC0_XFRCNT_MTC         0x07   // Master transfer count
#define IIC0_XFRCNT_MTC_SHIFT   0         
#endif //ifdef 405EP

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405) || defined(CYGHWR_HAL_POWERPC_PPC4XX_405GP)
// GPIO (General Purpose I/O)
#define GPIO_OR              ((_PPC405GP_GPIO)+0x00)  // Output register
#define GPIO_TCR             ((_PPC405GP_GPIO)+0x04)  // Tri-state control
#define GPIO_OSRH            ((_PPC405GP_GPIO)+0x08)  // Output select (high)
#define GPIO_OSRL            ((_PPC405GP_GPIO)+0x0C)  // Output select (low)
#define GPIO_TSRH            ((_PPC405GP_GPIO)+0x10)  // Tri-state select (high)
#define GPIO_TSRL            ((_PPC405GP_GPIO)+0x14)  // Tri-state select (low)
#define GPIO_ODR             ((_PPC405GP_GPIO)+0x18)  // Open drain
#define GPIO_IR              ((_PPC405GP_GPIO)+0x1C)  // Input register
#define GPIO_RR              ((_PPC405GP_GPIO)+0x20)  // Receive register
#define GPIO_ISRH            ((_PPC405GP_GPIO)+0x30)  // Input select (high)
#define GPIO_ISRL            ((_PPC405GP_GPIO)+0x34)  // Input select (low)
#endif //ifdef GPIO 405

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405EP)
// GPIO (General Purpose I/O)
#define GPIO_OR              ((_PPC405EP_GPIO)+0x00)  // Output register
#define GPIO_TCR             ((_PPC405EP_GPIO)+0x04)  // Tri-state control
#define GPIO_OSRH            ((_PPC405EP_GPIO)+0x08)  // Output select (high)
#define GPIO_OSRL            ((_PPC405EP_GPIO)+0x0C)  // Output select (low)
#define GPIO_TSRH            ((_PPC405EP_GPIO)+0x10)  // Tri-state select (high)
#define GPIO_TSRL            ((_PPC405EP_GPIO)+0x14)  // Tri-state select (low)
#define GPIO_ODR             ((_PPC405EP_GPIO)+0x18)  // Open drain
#define GPIO_IR              ((_PPC405EP_GPIO)+0x1C)  // Input register
#define GPIO_RR              ((_PPC405EP_GPIO)+0x20)  // Receive register
#define GPIO_ISRH            ((_PPC405EP_GPIO)+0x30)  // Input select (high)
#define GPIO_ISRL            ((_PPC405EP_GPIO)+0x34)  // Input select (low)
#endif //ifdef GPIO 405EP

// PCI

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405) || defined(CYGHWR_HAL_POWERPC_PPC4XX_405GP)
// PCI Bridge
#define PCIL0_PMM0LA         ((_PPC405GP_PCI_BRIDGE)+0x00)     // PMM 0 Local address
#define PCIL0_PMM0MA         ((_PPC405GP_PCI_BRIDGE)+0x04)     // PMM 0 Mask/Attributes
#define PCIL0_PMM0PCILA      ((_PPC405GP_PCI_BRIDGE)+0x08)     // PMM 0 PCI Low Address
#define PCIL0_PMM0PCIHA      ((_PPC405GP_PCI_BRIDGE)+0x0C)     // PMM 0 PCI High Address
#define PCIL0_PMM1LA         ((_PPC405GP_PCI_BRIDGE)+0x10)     // PMM 1 Local address
#define PCIL0_PMM1MA         ((_PPC405GP_PCI_BRIDGE)+0x14)     // PMM 1 Mask/Attributes
#define PCIL0_PMM1PCILA      ((_PPC405GP_PCI_BRIDGE)+0x18)     // PMM 1 PCI Low Address
#define PCIL0_PMM1PDIHA      ((_PPC405GP_PCI_BRIDGE)+0x1C)     // PMM 1 PCI High Address
#define PCIL0_PMM2LA         ((_PPC405GP_PCI_BRIDGE)+0x20)     // PMM 2 Local address
#define PCIL0_PMM2MA         ((_PPC405GP_PCI_BRIDGE)+0x24)     // PMM 2 Mask/Attributes
#define PCIL0_PMM2PCILA      ((_PPC405GP_PCI_BRIDGE)+0x28)     // PMM 2 PCI Low Address
#define PCIL0_PMM2PCIHA      ((_PPC405GP_PCI_BRIDGE)+0x2C)     // PMM 2 PCI High Address
#define PCIL0_PTM1MS         ((_PPC405GP_PCI_BRIDGE)+0x30)     // PTM 1 Memory Size/Attribute
#define PCIL0_PTM1LA         ((_PPC405GP_PCI_BRIDGE)+0x34)     // PTM 1 Local address
#define PCIL0_PTM2MS         ((_PPC405GP_PCI_BRIDGE)+0x38)     // PTM 2 Memory Size/Attribute
#define PCIL0_PTM2LA         ((_PPC405GP_PCI_BRIDGE)+0x3C)     // PTM 2 Local address

// Access to local/bridge PCI configuration registers
#define PCIC0_CFGADDR        ((_PPC405GP_PCI_IO)+0x00C00000)   // Indirect address pointer
#define PCIC0_CFGDATA        ((_PPC405GP_PCI_IO)+0x00C00004)   // Indirect data

// Debug control registers (SPR)
#define SPR_DBCR0       0x3F2

#endif // PPC4XX_405 || PPC4XX_405GP

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405EP)
// PCI Bridge
#define PCIL0_PMM0LA         ((_PPC405EP_PCI_BRIDGE)+0x00)     // PMM 0 Local address
#define PCIL0_PMM0MA         ((_PPC405EP_PCI_BRIDGE)+0x04)     // PMM 0 Mask/Attributes
#define PCIL0_PMM0PCILA      ((_PPC405EP_PCI_BRIDGE)+0x08)     // PMM 0 PCI Low Address
#define PCIL0_PMM0PCIHA      ((_PPC405EP_PCI_BRIDGE)+0x0C)     // PMM 0 PCI High Address
#define PCIL0_PMM1LA         ((_PPC405EP_PCI_BRIDGE)+0x10)     // PMM 1 Local address
#define PCIL0_PMM1MA         ((_PPC405EP_PCI_BRIDGE)+0x14)     // PMM 1 Mask/Attributes
#define PCIL0_PMM1PCILA      ((_PPC405EP_PCI_BRIDGE)+0x18)     // PMM 1 PCI Low Address
#define PCIL0_PMM1PDIHA      ((_PPC405EP_PCI_BRIDGE)+0x1C)     // PMM 1 PCI High Address
#define PCIL0_PMM2LA         ((_PPC405EP_PCI_BRIDGE)+0x20)     // PMM 2 Local address
#define PCIL0_PMM2MA         ((_PPC405EP_PCI_BRIDGE)+0x24)     // PMM 2 Mask/Attributes
#define PCIL0_PMM2PCILA      ((_PPC405EP_PCI_BRIDGE)+0x28)     // PMM 2 PCI Low Address
#define PCIL0_PMM2PCIHA      ((_PPC405EP_PCI_BRIDGE)+0x2C)     // PMM 2 PCI High Address
#define PCIL0_PTM1MS         ((_PPC405EP_PCI_BRIDGE)+0x30)     // PTM 1 Memory Size/Attribute
#define PCIL0_PTM1LA         ((_PPC405EP_PCI_BRIDGE)+0x34)     // PTM 1 Local address
#define PCIL0_PTM2MS         ((_PPC405EP_PCI_BRIDGE)+0x38)     // PTM 2 Memory Size/Attribute
#define PCIL0_PTM2LA         ((_PPC405EP_PCI_BRIDGE)+0x3C)     // PTM 2 Local address

// Access to local/bridge PCI configuration registers
#define PCIC0_CFGADDR        ((_PPC405EP_PCI_IO)+0x00C00000)   // Indirect address pointer
#define PCIC0_CFGDATA        ((_PPC405EP_PCI_IO)+0x00C00004)   // Indirect data

// Debug control registers (SPR)
#define SPR_DBCR0       0x3F2
#define SPR_DBCR1       0x3BD

#endif // PPC4XX_405EP

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405) || defined(CYGHWR_HAL_POWERPC_PPC4XX_405GP) || defined(CYGHWR_HAL_POWERPC_PPC4XX_405EP)
// Timer control (special) registers
#define SPR_PIT    987
#define SPR_TCR    986
#define SPR_TSR    984

// Interval and watchdog timer control
#define TCR_WP          0xC0000000  // Watchdog timer period
#define TCR_WP_17       0x00000000  //   2^17 clocks
#define TCR_WP_21       0x40000000  //   2^21 clocks
#define TCR_WP_25       0x80000000  //   2^25 clocks
#define TCR_WP_29       0xC0000000  //   2^29 clocks
#define TCR_WRC         0x30000000  // Reset control
#define TCR_WRC_None    0x00000000  //   No reset on timeout
#define TCR_WRC_Core    0x10000000  //   Reset core on timeout
#define TCR_WRC_Chip    0x20000000  //   Reset chip on timeout
#define TCR_WRC_System  0x30000000  //   Reset system on timeout
#define TCR_WIE         0x08000000  // Watchdog interrupt enable
#define TCR_PIE         0x04000000  // Programmable timer interrupt
#define TCR_FP          0x03000000  // Fixed timer interval
#define TCR_FP_9        0x00000000  //   2^9 clocks
#define TCR_FP_13       0x01000000  //   2^13 clocks
#define TCR_FP_17       0x02000000  //   2^17 clocks
#define TCR_FP_21       0x03000000  //   2^21 clocks
#define TCR_FIE         0x00800000  // Fixed timer interrupt
#define TCR_ARE         0x00400000  // Auto-reload enable

// Interval and watchdog status
#define TSR_ENW         0x80000000  // Enable next watchdog
#define TSR_WIS         0x40000000  // Watchdog interrupt pending
#define TSR_WRS         0x30000000  // Watchdog reset state
#define TSR_WRS_None    0x00000000  //   No watchdog reset
#define TSR_WRS_Core    0x10000000  //   Core reset by watchdog
#define TSR_WRS_Chip    0x20000000  //   Chip reset by watchdog
#define TSR_WRS_System  0x30000000  //   System reset by watchdog
#define TSR_PIS         0x08000000  // Programmable timer interrupt
#define TSR_FIS         0x04000000  // Fixed timer interrupt

// Debug registers
#define SPR_DBSR        1008
#define SPR_DBCR        1010

#define DBCR_IDM        0x40000000  // Internal debug enable
#define DBCR_IC         0x08000000  // Instruction completion
#endif // Timer all ppc40x

#endif //  CYGARC_HAL_COMMON_EXPORT_CPU_MACROS

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405) || defined(CYGHWR_HAL_POWERPC_PPC4XX_405GP)
//
// Memory mapped peripherals
//
#define _PPC405GP_UART0            0xEF600300 
#define _PPC405GP_UART1            0xEF600400 
#define _PPC405GP_IIC0             0xEF600500 
#define _PPC405GP_OPB_ARBITER      0xEF600600 
#define _PPC405GP_GPIO             0xEF600700 
#define _PPC405GP_ENET             0xEF600800 
#define _PPC405GP_PCI_BRIDGE       0xEF400000
#define _PPC405GP_PCI_IO           0xEE000000
//
// Window to PCI memory space (256MB, must be configured by target)
#define _PPC405GP_PCI_MEM          0xA0000000
//
// On-chip memory (4K only, must be configured by target platform)
//
#define _PPC405GP_OCM              0xD0000000
#endif // 405GP
//

#if defined(CYGHWR_HAL_POWERPC_PPC4XX_405EP)
//
// Memory mapped peripherals
//
#define _PPC405EP_UART0            0xEF600300 
#define _PPC405EP_UART1            0xEF600400 
#define _PPC405EP_IIC0             0xEF600500 
#define _PPC405EP_OPB_ARBITER      0xEF600600 
#define _PPC405EP_GPIO             0xEF600700 
#define _PPC405EP_ENET             0xEF600800 
#define _PPC405EP_PCI_BRIDGE       0xEF400000
#define _PPC405EP_PCI_IO           0xEE000000
//
// Window to PCI memory space (256MB, must be configured by target)
#define _PPC405EP_PCI_MEM          0x80000000
//
// On-chip memory (4K only, must be configured by target platform)
//
#define _PPC405EP_OCM              0x40000000
#endif // 405EP

//-----------------------------------------------------------------------------
#endif // ifdef CYGONCE_HAL_VAR_REGS_H
// End of var_regs.h

⌨️ 快捷键说明

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