無線ファーム情報に項目を追加。

リビジョン情報が載せられるかのテスト。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2461 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
aoki_ryoma 2008-09-09 13:55:26 +00:00
parent 6ee48440dd
commit 08ac99b0d1
5 changed files with 66 additions and 24 deletions

View File

@ -103,7 +103,7 @@ void drawHeader( int menu, int line)
{ {
u16 buf[256]; u16 buf[256];
PrintfSJISSub( HEADER_LEFT, HEADER_UP, TXT_COLOR_RED, "%s %d" , "DisplaySystemInfo", DISPINFO_BIN_IDX ); PrintfSJISSub( HEADER_LEFT, HEADER_UP, TXT_COLOR_RED, "%s %d $Rev:$" , "DisplaySystemInfo", DISPINFO_BIN_IDX );
if( menu != MENU_ROOT ) if( menu != MENU_ROOT )

View File

@ -14,9 +14,19 @@
#define WL_FW_VERSION_SIZE 0x2 #define WL_FW_VERSION_SIZE 0x2
#define WL_NUM_FW_IDX 0x2 #define WL_NUM_FW_IDX 0x2
#define WL_NUM_FW_SIZE 0x2 #define WL_NUM_FW_SIZE 0x2
#define WL_FW1_OFFSET_IDX 0x4
#define WL_FW_TYPE_IDX 0xc #define WL_FW_TYPE_IDX 0xc
#define WL_FW_TYPE_SIZE 0x4 #define WL_FW_TYPE_SIZE 0x4
#define WL_FW2_OFFSET_IDX 0xc4
#define WL_FW2_TYPE_IDX 0xcc
#define WL_FW_SECTION_OFFSET 0x4
#define WL_FW_VER_MINUSOFFSET 0x2c
#define WL_FW_IDX_OFFSET 3
void getWLInfo( void ) void getWLInfo( void )
@ -32,6 +42,9 @@ void getWLInfo( void )
if( FS_OpenFileEx( &file, filePath, FS_FILEMODE_R ) ) if( FS_OpenFileEx( &file, filePath, FS_FILEMODE_R ) )
{ {
int value;
s32 fwOffset, sectionOffset;
/* /*
// バージョン情報の読み取り // バージョン情報の読み取り
FS_SeekFile( &file, WL_FW_VERSION_OFFSET, FS_SEEK_SET ); FS_SeekFile( &file, WL_FW_VERSION_OFFSET, FS_SEEK_SET );
@ -77,9 +90,43 @@ void getWLInfo( void )
gAllInfo[MENU_WL][WL_NUM_FW].iValue = (int) MI_LoadLE8( &filebuf[WL_NUM_FW_IDX] ); gAllInfo[MENU_WL][WL_NUM_FW].iValue = (int) MI_LoadLE8( &filebuf[WL_NUM_FW_IDX] );
gAllInfo[MENU_WL][WL_NUM_FW].isNumData = TRUE; gAllInfo[MENU_WL][WL_NUM_FW].isNumData = TRUE;
fwOffset = (s32)MI_LoadLE32( &filebuf[WL_FW1_OFFSET_IDX] );
value = (int) MI_LoadLE32( &filebuf[WL_FW_TYPE_IDX] ); value = (int) MI_LoadLE32( &filebuf[WL_FW_TYPE_IDX] );
gAllInfo[MENU_WL][WL_FW_TYPE].iValue = value; gAllInfo[MENU_WL][WL_FW1_TYPE].iValue = value;
gAllInfo[MENU_WL][WL_FW_TYPE].str.sjis = s_strWLFWType[ value ]; gAllInfo[MENU_WL][WL_FW1_TYPE].str.sjis = s_strWLFWType[ value ];
FS_SeekFile( &file, fwOffset, FS_SEEK_SET );
FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE );
sectionOffset = (s32)MI_LoadLE32( &filebuf[WL_FW_SECTION_OFFSET] );
FS_SeekFile( &file, fwOffset + sectionOffset - WL_FW_VER_MINUSOFFSET, FS_SEEK_SET );
FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE );
snprintf( gAllInfo[MENU_WL][WL_FW1_VER].str.sjis, DISPINFO_BUFSIZE-1, "%08x",
MI_LoadLE32( filebuf ) );
}
if( gAllInfo[MENU_WL][WL_NUM_FW].iValue == 2 )
{
FS_SeekFile( &file, WL_FW2_OFFSET_IDX, FS_SEEK_SET );
FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE );
fwOffset = (s32)MI_LoadLE32( filebuf );
value = (int) MI_LoadLE32( &filebuf[WL_FW2_TYPE_IDX - WL_FW2_OFFSET_IDX] );
gAllInfo[MENU_WL][WL_FW2_TYPE].str.sjis = s_strWLFWType[ value ];
FS_SeekFile( &file, fwOffset, FS_SEEK_SET );
FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE );
sectionOffset = (s32)MI_LoadLE32( &filebuf[WL_FW_SECTION_OFFSET] );
FS_SeekFile( &file, fwOffset + sectionOffset - WL_FW_VER_MINUSOFFSET, FS_SEEK_SET );
FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE );
snprintf( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, DISPINFO_BUFSIZE-1, "%08x",
MI_LoadLE32( filebuf ) );
}
else
{
STD_StrLCpy( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE );
} }
FS_CloseFile( &file ); FS_CloseFile( &file );
@ -88,6 +135,8 @@ void getWLInfo( void )
{ {
// 読み込めなかったらとりあえずN/Aって入れておく // 読み込めなかったらとりあえずN/Aって入れておく
STD_StrLCpy( gAllInfo[MENU_WL][WL_VERSION].str.sjis, s_strNA, DISPINFO_BUFSIZE ); STD_StrLCpy( gAllInfo[MENU_WL][WL_VERSION].str.sjis, s_strNA, DISPINFO_BUFSIZE );
STD_StrLCpy( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE );
STD_StrLCpy( gAllInfo[MENU_WL][WL_FW1_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE );
} }
} }

View File

@ -264,7 +264,10 @@ const char *s_strFontMenu[] = {
const char *s_strWLMenu[] = { const char *s_strWLMenu[] = {
"Version", "Version",
"Num of FW", "Num of FW",
"FW1 type" "FW1 type",
"FW1 version",
"FW2 type",
"FW2 version"
}; };
const char *s_strWhiteMenu[] = { const char *s_strWhiteMenu[] = {

View File

@ -202,16 +202,19 @@
#define SYSMENU_HASH_IDX 5 #define SYSMENU_HASH_IDX 5
#define FONTMENU_SIZE 1 #define FONTMENU_SIZE 1
#define FONT_TIMESTAMP 0 #define FONT_TIMESTAMP 0
#define FONT_INFO 1 #define FONT_INFO 1
#define WLMENU_SIZE 3 #define WLMENU_SIZE 6
#define WL_VERSION 0 #define WL_VERSION 0
#define WL_NUM_FW 1 #define WL_NUM_FW 1
#define WL_FW_TYPE 2 #define WL_FW1_TYPE 2
#define WL_FW1_VER 3
#define WL_FW2_TYPE 4
#define WL_FW2_VER 5
#define WHITEMENU_SIZE 2 #define WHITEMENU_SIZE 2
@ -222,21 +225,6 @@
#define VERSION_OTHER 0 #define VERSION_OTHER 0
extern int s_numMenu[]; extern int s_numMenu[];
extern const char *s_strRootMenu[]; extern const char *s_strRootMenu[];
extern const char *s_strOwnerMenu[]; extern const char *s_strOwnerMenu[];

View File

@ -130,6 +130,8 @@ void initInfo( void )
infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR7, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR7, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR9, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR9, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_WL], WL_VERSION, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_WL], WL_VERSION, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_WL], WL_FW1_VER, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_WL], WL_FW2_VER, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_OTHER], OTHER_RTC_OFFSET, DISPINFO_BUFSIZE, TRUE); infoAlloc( gAllInfo[MENU_OTHER], OTHER_RTC_OFFSET, DISPINFO_BUFSIZE, TRUE);
infoAlloc( gAllInfo[MENU_OTHER], OTHER_TP_RSV, DISPINFO_BUFSIZE, TRUE); infoAlloc( gAllInfo[MENU_OTHER], OTHER_TP_RSV, DISPINFO_BUFSIZE, TRUE);