diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 462634aa..20f9d134 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -1552,6 +1552,8 @@ static void HotSwThread(void *arg) while(1){ OS_ReceiveMessage(&HotSwThreadData.hotswQueue, (OSMessage *)&msg, OS_MESSAGE_BLOCK); + SYSMi_GetWork()->flags.hotsw.isBusyHotSW = TRUE; + if( msg->ctrl == TRUE ) { SYSMi_GetWork()->flags.hotsw.isEnableHotSW = msg->value; s_pollingThreadSleepFlg = msg->value ? FALSE : TRUE; @@ -1580,6 +1582,9 @@ static void HotSwThread(void *arg) ReadCardData(SYSMi_GetWork()->cardReadParam.src, SYSMi_GetWork()->cardReadParam.dest, SYSMi_GetWork()->cardReadParam.size); + + SYSMi_GetWork()->flags.hotsw.isBusyHotSW = FALSE; + continue; } @@ -1652,8 +1657,10 @@ static void HotSwThread(void *arg) break; } - } + } // Card Read while loop + SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE; + SYSMi_GetWork()->flags.hotsw.isBusyHotSW = FALSE; } // while loop } diff --git a/include/sysmenu/hotsw/common/hotsw.h b/include/sysmenu/hotsw/common/hotsw.h index c40833df..6378fb4d 100644 --- a/include/sysmenu/hotsw/common/hotsw.h +++ b/include/sysmenu/hotsw/common/hotsw.h @@ -25,6 +25,9 @@ extern "C" { #define SYSM_HOTSW_ENABLE_ROMEMU #define USE_WRAM_LOAD + +#define HOTSW_isBusyHotSw() SYSMi_GetWork()->flags.hotsw.isBusyHotSW + //#define USE_NEW_DMA // enum ------------------------------------------------------------------- diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 3d3f129d..61674106 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -116,7 +116,6 @@ typedef struct SYSM_work { vu16 isInspectCard :1; // 検査カードか? vu16 isOnDebugger :1; // デバッガ動作か? vu16 isEnableHotSW :1; // 活線挿抜有効? - vu16 isBusyHotSW :1; // 活線挿抜処理中? vu16 isLoadRomEmuOnly :1; // ROMエミュレーション情報のみロード vu16 isCardLoadCompleted :1; // カードからデータロード完了? vu16 isValidCardBanner :1; // バナーデータ更新? @@ -125,8 +124,9 @@ typedef struct SYSM_work { vu16 isFinalized :1; // HOTSW終了処理完了 vu16 :0; vu8 isCardStateChanged; // カード状態更新フラグ + vu8 isBusyHotSW; // 活線挿抜処理中? }hotsw; - }flags; // 7B + }flags; // 8B u16 cardHeaderCrc16; // カード検出時に算出したROMヘッダCRC16(ARM9側でコピーして使用する側) u16 cardHeaderCrc16_bak; // カード検出時に算出したROMヘッダCRC16(ARM7側ライブラリでダイレクトに書き換わる側)