From 132d0df9b8228c97bbca3e4969c7449bf9b7ba7f Mon Sep 17 00:00:00 2001 From: yutaka Date: Mon, 18 Aug 2008 10:19:33 +0000 Subject: [PATCH] =?UTF-8?q?DebugLED=E3=81=AEI2C=E3=82=92=E7=8B=AC=E8=87=AA?= =?UTF-8?q?=E5=AE=9F=E8=A3=85=E3=81=AB=E5=A4=89=E6=9B=B4(=E8=A3=BD?= =?UTF-8?q?=E5=93=81=E6=8A=80=E8=A1=93=E9=83=A8=E3=81=AE=E9=83=BD=E5=90=88?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2181 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/gcdfirm/sdmc-launcher/ARM7/main.c | 45 ++++++++++++++++++++----- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/build/gcdfirm/sdmc-launcher/ARM7/main.c b/build/gcdfirm/sdmc-launcher/ARM7/main.c index 9d98a52d..98a2da7a 100644 --- a/build/gcdfirm/sdmc-launcher/ARM7/main.c +++ b/build/gcdfirm/sdmc-launcher/ARM7/main.c @@ -45,15 +45,6 @@ u32 pf_cnt = 0; #define PUSH_PROFILE() ((void)0) #endif -#ifdef USE_DEBUG_LED -static u8 step = 0x80; -#define InitDebugLED() I2Ci_WriteRegister(I2C_SLAVE_DEBUG_LED, 0x03, 0x00) -#define SetDebugLED(pattern) I2Ci_WriteRegister(I2C_SLAVE_DEBUG_LED, 0x01, (pattern)); -#else -#define InitDebugLED() ((void)0) -#define SetDebugLED(pattern) ((void)0) -#endif - #ifdef PRINT_MEMORY_ADDR static char* debugPtr = (char*)PRINT_MEMORY_ADDR; #undef OS_TPrintf @@ -61,6 +52,42 @@ static char* debugPtr = (char*)PRINT_MEMORY_ADDR; #define OS_TPrintf(...) (debugPtr += STD_TSPrintf(debugPtr, __VA_ARGS__)) #endif +#ifdef USE_DEBUG_LED +static u8 step = 0x80; +#define InitDebugLED() I2Ci_WriteRegister(I2C_SLAVE_DEBUG_LED, 0x03, 0x00) +static BOOL SetDebugLED(u8 pattern) +{ + I2Ci_Wait(); + reg_OS_I2C_DAT = I2C_ADDR_DEBUG_LED; + reg_OS_I2C_CNT = (u8)((1 << REG_OS_I2C_CNT_E_SHIFT) | + (1 << REG_OS_I2C_CNT_I_SHIFT) | // 割り込み禁止は IE にて行うことで仕様統一 + (I2C_WRITE << REG_OS_I2C_CNT_RW_SHIFT) | + (0 << REG_OS_I2C_CNT_ACK_SHIFT) | + (1 << REG_OS_I2C_CNT_START_SHIFT)); + I2Ci_Wait(); + reg_OS_I2C_DAT = 0x01; + reg_OS_I2C_CNT = (u8)((1 << REG_OS_I2C_CNT_E_SHIFT) | + (1 << REG_OS_I2C_CNT_I_SHIFT) | + (I2C_WRITE << REG_OS_I2C_CNT_RW_SHIFT) | + (I2C_WRITE << REG_OS_I2C_CNT_ACK_SHIFT)); + I2Ci_Wait(); + reg_OS_I2C_DAT = pattern; + reg_OS_I2C_CNT = (u8)((1 << REG_OS_I2C_CNT_E_SHIFT) | + (1 << REG_OS_I2C_CNT_I_SHIFT) | + (I2C_WRITE << REG_OS_I2C_CNT_RW_SHIFT) | + (0 << REG_OS_I2C_CNT_ACK_SHIFT) | + (1 << REG_OS_I2C_CNT_STOP_SHIFT)); + I2Ci_Wait(); +#ifdef PRINT_MEMORY_ADDR + OS_TPrintf("%02X.%02X.%02X.\n", I2C_ADDR_DEBUG_LED, 0x01, pattern); +#endif + return (BOOL)((reg_OS_I2C_CNT & REG_OS_I2C_CNT_ACK_MASK) >> REG_OS_I2C_CNT_ACK_SHIFT); +} +#else +#define InitDebugLED() ((void)0) +#define SetDebugLED(pattern) ((void)0) +#endif + #define THREAD_PRIO_FATFS 8 #define DMA_FATFS_1 0 #define DMA_FATFS_2 1