#if 1 /*SPI Drive Strength*/ #define PFC_MCU_BASE (uint32)0xE6050000UL #define PFC_PORT_GRP0 (0x00000080UL) /* Port Group0 */ -> 이거 잘 못 된 듯. (0x00000000UL) 이여야 하지 않나요? #define PFC_PORT_GRP1 (0x00000800UL) /* Port Group1 */ #define PFC_RW_OFFSET (uint32)0x00000000UL #define PFC_DRV0CTRL0_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0080U)) #define PFC_DRV0CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0080U)) #define PFC_DRV1CTRL0_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0084U)) #define PFC_DRV2CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0088U)) #define PFC_DRV3CTRL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x008CU)) #define PFC_DRV0CTRL0_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0080U) #define PFC_DRV0CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0080U) #define PFC_DRV1CTRL0_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP0 + PFC_RW_OFFSET + 0x0084U) #define PFC_DRV2CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0088U) #define PFC_DRV3CTRL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x008CU) #define PMMR0 *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP0 + 0x0000U)) #define PMMR1 *((volatile uint32 *)(0xE6050800UL)) /* Added by ChoMyungJae */ volatile uint32 *regval; #endif #if 1 PMMR0 = ~(PFC_DRV0CTRL0_RW & ~((uint32)0x70000000)); regval = (volatile uint32 *)PFC_DRV0CTRL0_RW_ADD; *regval = (PFC_DRV0CTRL0_RW & ~((uint32)0x70000000)); PMMR0 = ~(PFC_DRV0CTRL0_RW | ((uint32)0x30000000)); -> 0x10000000(가이드대로 원복) regval = (volatile uint32 *)PFC_DRV0CTRL0_RW_ADD; *regval = (PFC_DRV0CTRL0_RW | ((uint32)0x30000000)); -> 0x10000000(가이드대로 원복) PMMR0 = ~(PFC_DRV1CTRL0_RW & ~((uint32)0x00077777)); regval = (volatile uint32 *)PFC_DRV1CTRL0_RW_ADD; *regval = (PFC_DRV1CTRL0_RW & ~((uint32)0x00077777)); PMMR0 = ~(PFC_DRV1CTRL0_RW | ((uint32)0x00033333)); -> 0x00011111(가이드대로 원복) regval = (volatile uint32 *)PFC_DRV1CTRL0_RW_ADD; *regval = (PFC_DRV1CTRL0_RW | ((uint32)0x00033333)); -> 0x00011111(가이드대로 원복) PMMR1 = ~(PFC_DRV0CTRL1_RW & ~((uint32)0x00777700)); regval = (volatile uint32 *)PFC_DRV0CTRL1_RW_ADD; *regval = (PFC_DRV0CTRL1_RW & ~((uint32)0x00777700)); PMMR1 = ~(PFC_DRV0CTRL1_RW | ((uint32)0x00333300)); regval = (volatile uint32 *)PFC_DRV0CTRL1_RW_ADD; *regval = (PFC_DRV0CTRL1_RW | ((uint32)0x00333300)); PMMR1 = ~(PFC_DRV3CTRL1_RW & ~((uint32)0x00077777)); regval = (volatile uint32 *)PFC_DRV3CTRL1_RW_ADD; *regval = (PFC_DRV3CTRL1_RW & ~((uint32)0x00077777)); PMMR1 = ~(PFC_DRV3CTRL1_RW | ((uint32)0x00011111)); regval = (volatile uint32 *)PFC_DRV3CTRL1_RW_ADD; *regval = (PFC_DRV3CTRL1_RW | ((uint32)0x00011111)); PMMR1 = ~(PFC_DRV2CTRL1_RW & ~((uint32)0x70000000)); regval = (volatile uint32 *)PFC_DRV2CTRL1_RW_ADD; *regval = (PFC_DRV2CTRL1_RW & ~((uint32)0x70000000)); PMMR1 = ~(PFC_DRV2CTRL1_RW | ((uint32)0x10000000)); regval = (volatile uint32 *)PFC_DRV2CTRL1_RW_ADD; *regval = (PFC_DRV2CTRL1_RW | ((uint32)0x10000000)); #endif