mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(更新:Akabane Jumpei)
・フラグ処理を修正 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@811 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
64514d6c07
commit
cdbc7d2f6c
@ -503,8 +503,8 @@ static HotSwState LoadBannerData(void)
|
|||||||
// バナーリードが成功していたら各種フラグTRUE その他の場合はFALSE (この関数の外で排他制御されているからここでは排他制御しないでOK)
|
// バナーリードが成功していたら各種フラグTRUE その他の場合はFALSE (この関数の外で排他制御されているからここでは排他制御しないでOK)
|
||||||
state = (retval == HOTSW_SUCCESS) ? TRUE : FALSE;
|
state = (retval == HOTSW_SUCCESS) ? TRUE : FALSE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isValidCardBanner = state;
|
SYSMi_GetWork()->flags.hotsw.isValidCardBanner = state;
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = (u8)state;
|
SYSMi_GetWork()->flags.hotsw.isExistCard = state;
|
||||||
SYSMi_GetWork()->flags.hotsw.isExistCard = state;
|
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// バナーデータが登録されていない場合 (この関数の外で排他制御されているからここでは排他制御しないでOK)
|
// バナーデータが登録されていない場合 (この関数の外で排他制御されているからここでは排他制御しないでOK)
|
||||||
@ -522,7 +522,7 @@ static HotSwState LoadBannerData(void)
|
|||||||
SYSMi_GetWork()->flags.hotsw.isInspectCard = FALSE;
|
SYSMi_GetWork()->flags.hotsw.isInspectCard = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE;
|
SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE;
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -1069,11 +1069,14 @@ static void McThread(void *arg)
|
|||||||
while(1){
|
while(1){
|
||||||
OS_ReceiveMessage(&s_ctData.hotswQueue, (OSMessage *)&msg, OS_MESSAGE_BLOCK);
|
OS_ReceiveMessage(&s_ctData.hotswQueue, (OSMessage *)&msg, OS_MESSAGE_BLOCK);
|
||||||
|
|
||||||
// カードデータロード完了フラグを下ろす
|
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = FALSE;
|
|
||||||
|
|
||||||
if( msg->ctrl == TRUE ) {
|
if( msg->ctrl == TRUE ) {
|
||||||
|
// [TODO]とりあえず、ここでHOTSWを抑制した時点でisExistCardがFALSEなら、HOTSWのFinalizeをするようにする。
|
||||||
SYSMi_GetWork()->flags.hotsw.isEnableHotSW = msg->value;
|
SYSMi_GetWork()->flags.hotsw.isEnableHotSW = msg->value;
|
||||||
|
// [TODO]カードがあるときとないときで場合分けしてFinalize処理を実装
|
||||||
|
// PXIメッセージを「抑制」と「Finalize」で分けて処理
|
||||||
|
// → 1.全てのレジスタをクリアする (カードがささっていない時)
|
||||||
|
// 2.一度電源を落としてNomalモードにする (NANDアプリ等を起動する場合)
|
||||||
|
// 3.必要なレジスタを残して、後はクリア (ささっているカードを起動する場合)
|
||||||
// HOTSW_Finalize();
|
// HOTSW_Finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1093,10 +1096,10 @@ static void McThread(void *arg)
|
|||||||
if(CmpMcSlotMode(SLOT_STATUS_MODE_10) == TRUE){
|
if(CmpMcSlotMode(SLOT_STATUS_MODE_10) == TRUE){
|
||||||
// フラグケア
|
// フラグケア
|
||||||
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||||
SYSMi_GetWork()->flags.hotsw.isExistCard = TRUE;
|
|
||||||
|
SYSMi_GetWork()->flags.hotsw.isExistCard = TRUE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
||||||
UnlockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
|
||||||
|
|
||||||
// 新しいカードのIDを入れる
|
// 新しいカードのIDを入れる
|
||||||
SYSMi_GetWork()->nCardID = s_cbData.id_gam;
|
SYSMi_GetWork()->nCardID = s_cbData.id_gam;
|
||||||
|
|
||||||
@ -1107,21 +1110,17 @@ static void McThread(void *arg)
|
|||||||
// カードデータロード完了フラグ
|
// カードデータロード完了フラグ
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = TRUE;
|
||||||
|
|
||||||
|
UnlockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||||
|
|
||||||
OS_PutString("ok!\n");
|
OS_PutString("ok!\n");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// HotSwをbusy状態にする
|
|
||||||
SetHotSwState(TRUE);
|
|
||||||
|
|
||||||
// カード読み込み開始
|
// カード読み込み開始
|
||||||
retval = LoadCardData();
|
retval = LoadCardData();
|
||||||
|
|
||||||
// HotSwをfree状態にする
|
|
||||||
SetHotSwState(FALSE);
|
|
||||||
|
|
||||||
// Debug表示
|
// Debug表示
|
||||||
DebugPrintErrorMessage(retval);
|
DebugPrintErrorMessage(retval);
|
||||||
|
|
||||||
@ -1154,6 +1153,7 @@ static void McThread(void *arg)
|
|||||||
SYSMi_GetWork()->flags.hotsw.isExistCard = FALSE;
|
SYSMi_GetWork()->flags.hotsw.isExistCard = FALSE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isValidCardBanner = FALSE;
|
SYSMi_GetWork()->flags.hotsw.isValidCardBanner = FALSE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
||||||
|
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = FALSE;
|
||||||
UnlockHotSwRsc(&SYSMi_GetWork()->lockHotSW);
|
UnlockHotSwRsc(&SYSMi_GetWork()->lockHotSW);
|
||||||
|
|
||||||
// カードブート用構造体の初期化
|
// カードブート用構造体の初期化
|
||||||
@ -1352,11 +1352,11 @@ static void SetInterrupt(void)
|
|||||||
#ifndef DEBUG_USED_CARD_SLOT_B_
|
#ifndef DEBUG_USED_CARD_SLOT_B_
|
||||||
SetInterruptCallback( OS_IE_CARD_A_IREQ , InterruptCallbackCard );
|
SetInterruptCallback( OS_IE_CARD_A_IREQ , InterruptCallbackCard );
|
||||||
SetInterruptCallback( OS_IE_CARD_A_DET , InterruptCallbackCardDet );
|
SetInterruptCallback( OS_IE_CARD_A_DET , InterruptCallbackCardDet );
|
||||||
SetInterruptCallback( OS_IE_CARD_A_DATA , InterruptCallbackCardData );
|
SetInterruptCallback( OS_IE_CARD_A_DATA , InterruptCallbackCardData ); // DMA転送終了割り込み使う
|
||||||
#else
|
#else
|
||||||
SetInterruptCallback( OS_IE_CARD_B_IREQ , InterruptCallbackCard );
|
SetInterruptCallback( OS_IE_CARD_B_IREQ , InterruptCallbackCard );
|
||||||
SetInterruptCallback( OS_IE_CARD_B_DET , InterruptCallbackCardDet );
|
SetInterruptCallback( OS_IE_CARD_B_DET , InterruptCallbackCardDet );
|
||||||
SetInterruptCallback( OS_IE_CARD_B_DATA , InterruptCallbackCardData );
|
SetInterruptCallback( OS_IE_CARD_B_DATA , InterruptCallbackCardData ); // DMA転送終了割り込み使う
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user