mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・SDK5.0FCplus4用IPLブランチのマージ
・時間計測処理の追加 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1597 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a0145ed624
commit
f99d45cd2f
@ -201,6 +201,17 @@ Autoload WRAM
|
||||
|
||||
Library libathdrv_sp$(LIBSUFFIX).a (.bss)
|
||||
Library libathdrv_sp$(LIBSUFFIX).a (.data)
|
||||
|
||||
# FATFS core symbols
|
||||
Object OBJECT(FATFSi_lfi2text, libfatfs_sp$(LIBSUFFIX).a) (.text) # 360 BYTEs
|
||||
Object OBJECT(FATFSi_pc_findin, libfatfs_sp$(LIBSUFFIX).a) (.text) # 904 BYTEs
|
||||
Object OBJECT(FATFSi_pc_patcmp_vfat, libfatfs_sp$(LIBSUFFIX).a) (.text) # 436 BYTEs
|
||||
Object OBJECT(FATFSi_pc_ascii_mfile, libfatfs_sp$(LIBSUFFIX).a) (.text) # 160 BYTEs
|
||||
Object OBJECT(FATFSi_map_ascii_to_unicode, libfatfs_sp$(LIBSUFFIX).a) (.text) # 48 BYTEs
|
||||
Object OBJECT(SDCARD_Intr_Thread, libfatfs_sp$(LIBSUFFIX).a) (.text) # 520 BYTEs
|
||||
Object OBJECT(FATFSi_unicode_cmp_to_ascii_char, libfatfs_sp$(LIBSUFFIX).a) (.text) # 40 BYTEs
|
||||
Object OBJECT(FATFSi_pc_read_blk, libfatfs_sp$(LIBSUFFIX).a) (.text) # 352 BYTEs
|
||||
|
||||
Object * (.rsvwram)
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,8 @@ typedef struct BannerCheckParam {
|
||||
u32 size;
|
||||
}BannerCheckParam;
|
||||
|
||||
#define MEASURE_BANNER_LOAD_TIME 0
|
||||
|
||||
// extern data-----------------------------------------------------------------
|
||||
// function's prototype-------------------------------------------------------
|
||||
|
||||
@ -66,7 +68,11 @@ BOOL BANNER_ReadBannerFromCARD( u32 bannerOffset, TWLBannerFile *pBanner )
|
||||
BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
{
|
||||
#define PATH_LENGTH 1024
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OSTick start;
|
||||
#endif
|
||||
|
||||
FSFile file[1];
|
||||
BOOL bSuccess;
|
||||
char path[PATH_LENGTH];
|
||||
@ -75,9 +81,15 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
|
||||
FS_InitFile(file);
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
readLen = NAM_GetTitleBootContentPathFast( path, titleID );
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "NAM_GetTitleBootContentPath : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// ファイルパスを取得
|
||||
if(readLen != NAM_OK){
|
||||
@ -85,6 +97,10 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// ファイルオープン
|
||||
bSuccess = FS_OpenFileEx(file, path, FS_FILEMODE_R);
|
||||
if( ! bSuccess )
|
||||
@ -93,6 +109,11 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "OpenFileEX : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// ROMヘッダのバナーデータオフセットを読み込む
|
||||
bSuccess = FS_SeekFile(file, 0x68, FS_SEEK_SET);
|
||||
if( ! bSuccess )
|
||||
@ -101,6 +122,12 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
FS_CloseFile(file);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "FS_SeekFile offset: %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
readLen = FS_ReadFile(file, &offset, sizeof(offset));
|
||||
if( readLen != sizeof(offset) )
|
||||
{
|
||||
@ -108,9 +135,18 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
FS_CloseFile(file);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "FS_ReadFile offset : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// バナーが存在する場合のみリード
|
||||
if( offset ) {
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
bSuccess = FS_SeekFile(file, offset, FS_SEEK_SET);
|
||||
if( ! bSuccess )
|
||||
{
|
||||
@ -118,6 +154,12 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
FS_CloseFile(file);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "FS_SeekFile banner: %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
readLen = FS_ReadFile( file, pDst, (s32)sizeof(TWLBannerFile) );
|
||||
if( readLen != (s32)sizeof(TWLBannerFile) )
|
||||
{
|
||||
@ -125,21 +167,46 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
FS_CloseFile(file);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "FS_ReadFile banner: %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
if( !BANNER_CheckBanner( pDst ) )
|
||||
{
|
||||
// 正当性チェック失敗の場合はバッファクリア
|
||||
MI_CpuClearFast( pDst, sizeof(TWLBannerFile) );
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "check banner: %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
}else {
|
||||
// バナーが存在しない場合はバッファクリア
|
||||
MI_CpuClearFast( pDst, sizeof(TWLBannerFile) );
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
FS_CloseFile(file);
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "close file : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// サブバナーファイルを読み込んでみる
|
||||
if(NAM_OK == NAM_GetTitleBannerFilePath( path, titleID ))
|
||||
{
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "NAM_GetTitleBannerFilePath : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
if( FS_OpenFileEx(file, path, FS_FILEMODE_R) )
|
||||
{
|
||||
TWLSubBannerFile subBanner;
|
||||
@ -153,16 +220,21 @@ BOOL BANNER_ReadBannerFromNAND( OSTitleId titleID, TWLBannerFile *pDst )
|
||||
// 成功したのでコピーする
|
||||
pDst->h = subBanner.h;
|
||||
pDst->anime = subBanner.anime;
|
||||
OS_TPrintf("BANNER_ReadBanner_NAND : subbanner check succeed. id=%.16x\n", titleID);
|
||||
// OS_TPrintf("BANNER_ReadBanner_NAND : subbanner check succeed. id=%.16x\n", titleID);
|
||||
}else
|
||||
{
|
||||
OS_TPrintf("BANNER_ReadBanner_NAND : subbanner check failed. id=%.16x\n", titleID);
|
||||
// OS_TPrintf("BANNER_ReadBanner_NAND : subbanner check failed. id=%.16x\n", titleID);
|
||||
}
|
||||
}else
|
||||
{
|
||||
OS_TPrintf("BANNER_ReadBanner_NAND : subbanner read failed. id=%.16x\n", titleID);
|
||||
}
|
||||
}
|
||||
|
||||
#if (MEASURE_BANNER_LOAD_TIME == 1)
|
||||
OS_TPrintf( "open-read-close-check subbanner : %dus\n", OS_TicksToMicroSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
@ -784,6 +784,9 @@ static void NAMUTi_ClearWiFiSettings( void )
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void PrintDirectory(s32 depth, const char* path)
|
||||
{
|
||||
#ifdef SDK_FINALROM
|
||||
#pragma unused(path)
|
||||
#endif
|
||||
int i;
|
||||
|
||||
for (i=0; i<depth; i++)
|
||||
@ -805,6 +808,9 @@ static void PrintDirectory(s32 depth, const char* path)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void PrintFile(s32 depth, const char* filename)
|
||||
{
|
||||
#ifdef SDK_FINALROM
|
||||
#pragma unused(filename)
|
||||
#endif
|
||||
int i;
|
||||
|
||||
for (i=0; i<depth+1; i++)
|
||||
|
||||
@ -23,6 +23,9 @@
|
||||
#include "fs_wram.h"
|
||||
|
||||
// define data-----------------------------------------------------------------
|
||||
|
||||
#define MEASURE_MAKELIST_TIME 0
|
||||
|
||||
#define CARD_BANNER_INDEX ( LAUNCHER_TITLE_LIST_NUM - 1 )
|
||||
|
||||
#define LAUNCHER_KEY_INDEX 0 // ファームから送られてくる鍵のうちLauncherキーのインデックス
|
||||
@ -1627,7 +1630,13 @@ static void SYSMi_makeTitleIdList( void )
|
||||
int l;
|
||||
u8 count = 0;
|
||||
int max = ( s_listLength < OS_TITLEIDLIST_MAX ) ? s_listLength : OS_TITLEIDLIST_MAX;
|
||||
OSTick start;
|
||||
#if (MEASURE_MAKELIST_TIME == 1)
|
||||
OSTick prev;
|
||||
#endif
|
||||
|
||||
// ŽžŠÔŒv‘ª‘<C2AA><E28098>‡
|
||||
start = OS_GetTick();
|
||||
if( s_pTitleIDList == NULL )
|
||||
{
|
||||
OS_TPrintf("SYSMi_makeTitleIdList failed: SYSM_InitNandTitleList() is not called.\n");
|
||||
@ -1672,7 +1681,22 @@ static void SYSMi_makeTitleIdList( void )
|
||||
continue;
|
||||
}
|
||||
// romヘッダ読み込み
|
||||
|
||||
#if (MEASURE_MAKELIST_TIME == 1)
|
||||
// ŽžŠÔŒv‘ª‚P
|
||||
prev = OS_GetTick();
|
||||
#endif
|
||||
|
||||
NAM_GetTitleBootContentPathFast(path, s_pTitleIDList[l]);
|
||||
|
||||
#if (MEASURE_MAKELIST_TIME == 1)
|
||||
OS_TPrintf("SYSMi_makeTitleIdList : NAM_GetTitleBootContentPathFast %dms\n",OS_TicksToMilliSeconds(OS_GetTick() - prev));
|
||||
// endŽžŠÔŒv‘ª‚P
|
||||
|
||||
// ŽžŠÔŒv‘ª‚Q
|
||||
prev = OS_GetTick();
|
||||
#endif
|
||||
|
||||
FS_InitFile( file );
|
||||
bSuccess = FS_OpenFileEx(file, path, FS_FILEMODE_R);
|
||||
if( ! bSuccess )
|
||||
@ -1697,6 +1721,10 @@ static void SYSMi_makeTitleIdList( void )
|
||||
}
|
||||
FS_CloseFile(file);
|
||||
pe_hs = (ROM_Header_Short *)&e_hs;
|
||||
// endŽžŠÔŒv‘ª‚Q
|
||||
#if (MEASURE_MAKELIST_TIME == 1)
|
||||
OS_TPrintf("SYSMi_makeTitleIdList : read header. %dms\n",OS_TicksToMilliSeconds(OS_GetTick() - prev));
|
||||
#endif
|
||||
}
|
||||
|
||||
for(m=0;m<MAKER_CODE_MAX;m++)
|
||||
@ -1756,6 +1784,8 @@ static void SYSMi_makeTitleIdList( void )
|
||||
}
|
||||
}
|
||||
list->num = count;
|
||||
// endŽžŠÔŒv‘ª‘<C2AA><E28098>‡
|
||||
OS_TPrintf("SYSMi_makeTitleIdList : total %dms\n",OS_TicksToMilliSeconds(OS_GetTick() - start));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <twl.h>
|
||||
#include <twl/nam.h>
|
||||
#include <sysmenu.h>
|
||||
|
||||
// define data------------------------------------------
|
||||
@ -246,3 +247,31 @@ BOOL UTL_CheckRTCTime( RTCTime *timep )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
// タイトル数取得
|
||||
//======================================================================
|
||||
|
||||
// ローンチ対象のアプリ数カウント
|
||||
int UTL_GetInstalledSoftBoxCount( void )
|
||||
{
|
||||
int l;
|
||||
int listNum;
|
||||
int validNum = 0;
|
||||
OSTitleId titleIDArray[ LCFG_TWL_FREE_SOFT_BOX_COUNT_MAX ];
|
||||
|
||||
MI_CpuClear32( titleIDArray, sizeof(titleIDArray) );
|
||||
|
||||
// インストールされているNANDアプリ全タイトルのTitleID取得
|
||||
listNum = NAM_GetNumTitles();
|
||||
(void)NAM_GetTitleList( titleIDArray, (u32)listNum );
|
||||
|
||||
// 取得したタイトルがローンチ対象かどうかをチェック
|
||||
for( l = 0; l < listNum; l++ ) {
|
||||
// "Not Launch"でない かつ "Data Only"でない なら有効なタイトルとしてリストに追加
|
||||
if( ( titleIDArray[ l ] & ( TITLE_ID_NOT_LAUNCH_FLAG_MASK | TITLE_ID_DATA_ONLY_FLAG_MASK ) ) == 0 ) {
|
||||
validNum++;
|
||||
}
|
||||
}
|
||||
return validNum;
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ OUT_KEY : rsa_public.sbin
|
||||
|
||||
WRAM_RBIN: ./wram_regs/wram_regs.rbin
|
||||
|
||||
MIRROR_OFS: 0x100000
|
||||
MIRROR_OFS: 0x80000
|
||||
|
||||
DECOMP_PROC : ARM9 # ARM9 or ARM7
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ OUT_KEY : rsa_public.sbin
|
||||
|
||||
WRAM_RBIN: ../../norfirm/norfirm-print/wram_regs/wram_regs.rbin
|
||||
|
||||
MIRROR_OFS: 0x100000
|
||||
MIRROR_OFS: 0x80000
|
||||
|
||||
DECOMP_PROC : ARM9 # ARM9 or ARM7
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ OUT_KEY : rsa_public.sbin
|
||||
|
||||
WRAM_RBIN: ./wram_regs/wram_regs.rbin
|
||||
|
||||
MIRROR_OFS: 0x100000
|
||||
MIRROR_OFS: 0x80000
|
||||
|
||||
DECOMP_PROC : ARM9 # ARM9 or ARM7
|
||||
|
||||
|
||||
@ -32,6 +32,8 @@
|
||||
|
||||
#define INIT_DEVICES_LIKE_UIG_LAUNCHER
|
||||
|
||||
#define MEASURE_TIME 1
|
||||
|
||||
// function's prototype-------------------------------------------------------
|
||||
static void INTR_VBlank( void );
|
||||
static void deleteTmp();
|
||||
@ -134,7 +136,7 @@ void TwlMain( void )
|
||||
};
|
||||
u32 state = LOGODEMO_INIT;
|
||||
TitleProperty *pBootTitle = NULL;
|
||||
OSTick start, end = 0;
|
||||
OSTick allstart, start, end = 0;
|
||||
BOOL direct_boot = FALSE;
|
||||
|
||||
#ifdef DEBUG_LAUNCHER_DUMP
|
||||
@ -149,6 +151,17 @@ void TwlMain( void )
|
||||
|
||||
// OS初期化------------------------
|
||||
OS_InitTick();
|
||||
|
||||
// start 時間計測total
|
||||
#if (MEASURE_TIME == 1)
|
||||
allstart = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// start時間計測1
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
PM_Init();
|
||||
|
||||
(void)OS_EnableIrq();
|
||||
@ -171,24 +184,39 @@ void TwlMain( void )
|
||||
#ifdef USE_WRAM_LOAD
|
||||
HOTSW_Init();
|
||||
#endif
|
||||
|
||||
|
||||
//NAMの初期化
|
||||
NAM_Init( Alloc, Free );
|
||||
|
||||
|
||||
OS_TPrintf( "SYSM_work size = 0x%x\n", sizeof(SYSM_work) );
|
||||
|
||||
// 割り込み許可--------------------
|
||||
(void)OS_SetIrqFunction(OS_IE_V_BLANK, INTR_VBlank);
|
||||
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||
(void)GX_VBlankIntr(TRUE);
|
||||
|
||||
|
||||
// システムの初期化----------------
|
||||
InitAllocator(); // ※SYSM_Init以外のSYSMライブラリ関数を呼ぶ前に
|
||||
// Alloc, Freeで登録したメモリアロケータを初期化してください。
|
||||
|
||||
// end時間計測1
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "System Init Time 1: %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測1-b
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// Alloc, Freeで登録したメモリアロケータを初期化してください。
|
||||
#ifdef INIT_DEVICES_LIKE_UIG_LAUNCHER
|
||||
// カメラ初期化
|
||||
CAMERA_Init();
|
||||
|
||||
// end時間計測1-b
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "Camera Init: %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// DSP初期化
|
||||
#if 0
|
||||
{
|
||||
@ -211,11 +239,27 @@ void TwlMain( void )
|
||||
DSP_UnloadJpegDecoder();
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // INIT_DEVICES_LIKE_UIG_LAUNCHER
|
||||
|
||||
// start時間計測1-c
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// 各種パラメータの取得------------
|
||||
pBootTitle = SYSM_ReadParameters(); // 本体設定データ、リセットパラメータのリード、検査用オート起動カード判定、量産ライン用キーショートカット起動判定等のリード
|
||||
|
||||
// end時間計測1-c
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "SYSM_ReadParameters: %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測2
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
|
||||
// TPキャリブレーション
|
||||
UTL_CaribrateTP( LCFG_TSD_GetTPCalibrationPtr() );
|
||||
|
||||
@ -225,21 +269,53 @@ void TwlMain( void )
|
||||
if( !LCFG_TSD_IsFinishedInitialSetting() ) {
|
||||
// 初回起動シーケンス判定
|
||||
}
|
||||
|
||||
|
||||
(void)SYSM_GetCardTitleList( s_titleList ); // カードアプリリストの取得(カードアプリはs_titleList[0]に格納される)
|
||||
// end時間計測2
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "GetCardTitleList Time : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測3
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// TMPフォルダのクリーン
|
||||
SYSM_DeleteTmpDirectory( pBootTitle );
|
||||
// end時間計測3
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "TmpClean : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測4
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// NANDタイトルリストの準備
|
||||
SYSM_InitNandTitleList();
|
||||
// end時間計測4
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "InitNandTitleList : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測5
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// 「ダイレクトブートでない」なら
|
||||
if( !pBootTitle ) {
|
||||
// NAND & カードアプリリスト取得
|
||||
(void)SYSM_GetNandTitleList( s_titleList, LAUNCHER_TITLE_LIST_NUM ); // NANDアプリリストの取得(内蔵アプリはs_titleList[1]から格納される)
|
||||
}
|
||||
// end時間計測5
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "GetNandTitleList : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// start時間計測6
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// 「ダイレクトブートでない」もしくは
|
||||
// 「ダイレクトブートだが、ロゴデモ表示」の時、各種リソースのロード------------
|
||||
if( !pBootTitle ||
|
||||
@ -251,9 +327,17 @@ void TwlMain( void )
|
||||
timestamp = OS_GetSharedFontTimestamp();
|
||||
if( timestamp > 0 ) OS_TPrintf( "SharedFont timestamp : %08x\n", timestamp );
|
||||
}
|
||||
// end時間計測6
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "GetSharedFont : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
// 開始ステートの判定--------------
|
||||
|
||||
// start時間計測7
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
if( pBootTitle ) {
|
||||
// ダイレクトブートなら、ロゴ、ランチャーを飛ばしてロード開始
|
||||
if( pBootTitle->flags.isLogoSkip ) {
|
||||
@ -292,19 +376,36 @@ void TwlMain( void )
|
||||
s_strmThreadStack + THREAD_STACK_SIZE / sizeof(u64),
|
||||
THREAD_STACK_SIZE, STREAM_THREAD_PRIO);
|
||||
OS_WakeupThreadDirect(&s_strmThread);
|
||||
// end時間計測7
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "time 7 (etc...) : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
|
||||
// start時間計測8
|
||||
#if (MEASURE_TIME == 1)
|
||||
start = OS_GetTick();
|
||||
#endif
|
||||
// 無線ファームウェアを無線モジュールにダウンロードする。
|
||||
#ifndef DISABLE_WLFIRM_LOAD
|
||||
if( FALSE == InstallWlanFirmware( SYSM_IsHotStart() ) ) {
|
||||
OS_TPrintf( "ERROR: Wireless firmware download failed!\n" );
|
||||
}
|
||||
#endif // DISABLE_WLFIRM_LOAD
|
||||
// end時間計測8
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "Load WlanFirm Time : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||
#endif
|
||||
|
||||
if( SYSM_IsFatalError() ) {
|
||||
// FATALエラー処理
|
||||
}
|
||||
|
||||
// end 時間計測total
|
||||
#if (MEASURE_TIME == 1)
|
||||
OS_TPrintf( "Total Time : %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - allstart ) );
|
||||
#endif
|
||||
|
||||
// メインループ--------------------
|
||||
while( 1 ) {
|
||||
OS_WaitIrq(1, OS_IE_V_BLANK); // Vブランク割り込み待ち
|
||||
|
||||
Binary file not shown.
@ -19,6 +19,7 @@
|
||||
#define __SYSM_UTIL_H__
|
||||
|
||||
#include <twl.h>
|
||||
#include <sysmenu.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -53,6 +54,16 @@ extern BOOL UTL_IsLeapYear100( u32 year ); //
|
||||
extern u32 UTL_CalcPCTLInquiryCode( void ); // 問い合わせコード(10進8桁)算出
|
||||
extern u32 UTL_CalcPCTLMasterKey( void ); // マスターキー (10進5桁)算出(※内部でRTC_GetDateを使用します。)
|
||||
|
||||
// タイトル数取得(内部でNAMを使用するので、NAM_Initが事前に呼ばれている必要あり)
|
||||
extern int UTL_GetInstalledSoftBoxCount( void );
|
||||
|
||||
// アプリROMヘッダの要EULAフラグ取得
|
||||
static inline BOOL UTL_IsROMHeaderEULARequired( void )
|
||||
{
|
||||
return (BOOL)SYSM_GetAppRomHeader()->agree_EULA;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Loading…
Reference in New Issue
Block a user