diff --git a/build/tests/TestComponent/ARM7.TWL/src/kami_pxi.c b/build/tests/TestComponent/ARM7.TWL/src/kami_pxi.c index 9bf00a8f..2484fbea 100644 --- a/build/tests/TestComponent/ARM7.TWL/src/kami_pxi.c +++ b/build/tests/TestComponent/ARM7.TWL/src/kami_pxi.c @@ -34,6 +34,8 @@ extern BOOL FATFSi_nandRtfsIo( int driveno, dword block, void* buffer, word count, BOOLEAN reading); extern BOOL sdmcFormatNandLog( BOOL verify_flag); extern void sdmcGetCID( SDMC_PORT_NO port, u32* dest); +extern void SPI_Lock(u32 id); +extern void SPI_Unlock(u32 id); /*---------------------------------------------------------------------------* 定数定義 @@ -76,6 +78,7 @@ KamiWork; *---------------------------------------------------------------------------*/ static BOOL kamiInitialized; static KamiWork kamiWork; +static u32 kamiSpiLockId; /*---------------------------------------------------------------------------* 内部関数定義 @@ -92,6 +95,11 @@ void KamiPxiInit(void) return; } kamiInitialized = TRUE; + kamiSpiLockId = (u32)OS_GetLockID(); + if (kamiSpiLockId == OS_LOCK_ID_ERROR) + { + OS_Panic("%s: OS_GetLockID failed.\n", __FUNCTION__); + } PXI_Init(); PXI_SetFifoRecvCallback(PXI_FIFO_TAG_KAMITEST, KamiPxiCallback); @@ -283,12 +291,16 @@ static void KamiThread(void *arg) if (is_read) { + SPI_Lock(kamiSpiLockId); // CODEC用SPI排他ロック read = CDC_ReadSpiRegisterEx( page, reg_no ); + SPI_Unlock(kamiSpiLockId); // CODEC用SPI排他ロック KamiReturnResultEx(kamiWork.command, KAMI_PXI_RESULT_SUCCESS, sizeof(u8), (u8*)&read ); } else { + SPI_Lock(kamiSpiLockId); // CODEC用SPI排他ロック CDC_WriteSpiRegisterEx( page, reg_no, (u8)write ); + SPI_Unlock(kamiSpiLockId); // CODEC用SPI排他ロック KamiReturnResult(kamiWork.command, KAMI_PXI_RESULT_SUCCESS); } } diff --git a/build/tests/TestComponent/ARM9.TWL/src/main.c b/build/tests/TestComponent/ARM9.TWL/src/main.c index 7774f910..ac9585b1 100644 --- a/build/tests/TestComponent/ARM9.TWL/src/main.c +++ b/build/tests/TestComponent/ARM9.TWL/src/main.c @@ -101,6 +101,11 @@ TwlMain() // initialize file-system FS_Init(FS_DMA_NOT_USE); + // FATドライバを初期化します。 + // NANDにアクセスするために必要です。 + // この関数はTwlSDK_branchUIGには含まれていません。 + FS_InitFatDriver(); + // SDカードの挿抜イベント監視コールバック設定 // FS_RegisterEventHook("sdmc", &sSDHook, SDEvents, NULL); @@ -173,6 +178,7 @@ TwlMain() } #endif +/* { u8 temp; kamiCodecRead( 1, 31, &temp); @@ -182,6 +188,8 @@ TwlMain() OS_Printf("temp = %x\n", temp); } +*/ + while (1) { kamiPadRead();