codecアクセス関数にSPIロック処理を追加。

FS_InitFatDriverの実行を追加(trancSDKでNandにアクセスするために必要)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2773 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
kamikawa 2009-03-27 09:09:54 +00:00
parent 353c7dd46e
commit 98942da9b9
2 changed files with 20 additions and 0 deletions

View File

@ -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);
/*---------------------------------------------------------------------------*
è<EFBFBD>è`
@ -76,6 +78,7 @@ KamiWork;
*---------------------------------------------------------------------------*/
static BOOL kamiInitialized;
static KamiWork kamiWork;
static u32 kamiSpiLockId;
/*---------------------------------------------------------------------------*
àŠÖ<EFBFBD>è`
@ -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);
}
}

View File

@ -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();