WLfirmの値が取得できなくなっていたのを修正。

OtherInfoにRTCOffset情報、タッチパネルキャリブレーション情報を追加。(RSVのみ未実装)
RTCのリセット機能を追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2452 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
aoki_ryoma 2008-09-09 06:22:57 +00:00
parent 190b0efe57
commit cd690ffbaf
28 changed files with 210 additions and 70 deletions

View File

@ -26,7 +26,7 @@ SUBMAKES = Makefile.0 Makefile.1 Makefile.2 Makefile.3\
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
@ -37,7 +37,7 @@ do-build :
$(TARGETS)
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#----------------------------------------------------------------------------

View File

@ -1,8 +1,8 @@
#! ruby -Ks
startDir = "/cygdrive/c/home/TWL_IPL/build/tests/DisplaySystemInformation/ARM9/bin/ARM9-TS.LTD.thumb/Rom"
dstDir = "/cygdrive/c/home/TWL_IPL/build/tests/DisplaySystemInformation/ARM9/bin/ARM9-TS.LTD.thumb/roms"
startDir = "$TWL_IPL_RED_ROOT/build/tests/DisplaySystemInformation/ARM9/bin/ARM9-TS.LTD.thumb/Rom"
dstDir = "/build/tests/DisplaySystemInformation/ARM9/bin/ARM9-TS.LTD.thumb/roms"
Dir::chdir startDir
Dir::chdir "./bin/ARM9-TS.LTD.thumb/Rom"
dirList = Dir::entries "."
`mkdir #{dstDir}`

View File

@ -97,7 +97,7 @@ Property
#
#BannerFile ./etc/myGameBanner.bnr
#BannerFile $(TWLSDK_ROOT)/include/twl/specfiles/default.bnr
BannerFile $(DISPINFO_BANNERPATH)
BannerFile ../banner/$(DISPINFO_GAMECODE).bnr
#
# Permit LandingNormalJump: for TWL "ApplicationJump" function [TRUE/FALSE]

View File

@ -96,7 +96,7 @@ Property
# BANNER FILE: generated from Banner Spec File
#
#BannerFile ./etc/myGameBanner.bnr
BannerFile $(DISPINFO_BANNERPATH)
BannerFile ../banner/$(DISPINFO_GAMECODE).bnr
#
# Permit LandingNormalJump: for TWL "ApplicationJump" function [TRUE/FALSE]

View File

@ -76,11 +76,9 @@ endif
ifeq ($(IS_NAND_APP),TRUE)
MEDIA = NAND
FILE_SUFFIX = tad
BANNARPATH = ../banner/$(GAMECODE).bnr
else
MEDIA = GAMECARD
FILE_SUFFIX = srl
BANNARPATH = $(TWLSDK_ROOT)/include/twl/specfiles/default.bnr
endif
ifeq ($(INVISIBLE_SCFG),TRUE)
@ -101,7 +99,6 @@ MAKEROM_FLAGS += -DDISPINFO_WRAM_MAP=$(WRAM_MAP) \
-DDISPINFO_LOCKSCFG=$(INVISIBLE_SCFG) \
-DDISPINFO_AES=$(AES_SLOT) \
-DDISPINFO_GAMECODE=$(GAMECODE) \
-DDISPINFO_BANNERPATH=$(BANNARPATH) \
-DROM_HEADER_TEMPLATE='$(call empath,$(ROM_HEADER_TEMPLATE))'

View File

@ -48,6 +48,7 @@ static const char *s_TSDPath[] = {
static int selectLine[ROOTMENU_SIZE+1];
BOOL resetUserData( void );
BOOL breakUserData( u8 idx );
BOOL resetRTC( void );
static void TSDi_ClearSettingsDirect( LCFGTWLSettingsData *pTSD );
static BOOL LCFGi_TSD_WriteSettingsDirectForRecovery( const LCFGTWLSettingsData *pSrcInfo, int index );
static BOOL LCFGi_TSF_WriteFile( char *pPath, TSFHeader *pHeader, const void *pSrcBody, u8 *pSaveCount );
@ -82,6 +83,10 @@ BOOL executeControl( int *line, int *changeLine, u8 *mode )
result &= breakUserData(0);
result &= breakUserData(1);
break;
case MENU_RTC_RESET:
result = resetRTC();
break;
}
*mode = (u8) ((*mode & ~MODE_RESULT_MASK ) | ( result << MODE_RESULT_SHIFT) );
@ -199,7 +204,7 @@ ChangeCotnrolResult changeControl( int *menu, int *line, int *changeLine, u8 *mo
BOOL control( int *menu, int *line, int *changeLine, u8 *mode )
{
int linemax = s_numMenu[*menu]; // 選択中ページの項目数
BOOL controlFlag = FALSE; // 何か操作があったらTRUEになる
BOOL controlFlag = FALSE; // 何か操作があったらTRUEになる
// 上下で項目変更
if( pad.trg & PAD_KEY_UP )
@ -278,6 +283,7 @@ BOOL control( int *menu, int *line, int *changeLine, u8 *mode )
case MENU_RESET_INFO:
case MENU_BREAK_DATA:
case MENU_RTC_RESET:
*mode |= MODE_EXECUTE_MASK;
*changeLine = 0; // デフォルト位置をcancelにしておく
break;
@ -383,3 +389,37 @@ BOOL breakUserData( u8 idx )
OS_TPrintf("Breaking UserData Succeeded. path: %s\n", s_TSDPath[idx]);
return TRUE;
}
BOOL resetRTC( void )
{
RTCResult result;
RTCDate date;
RTCTime time;
date.year = 0;
date.month = 1;
date.day = 1;
date.week = RTC_WEEK_SUNDAY;
time.hour = 0;
time.minute = 0;
time.second = 0;
// resultは成功したらゼロが返る
result = RTC_SetDate( &date );
if( result != RTC_RESULT_SUCCESS )
{
OS_TPrintf("RTC Date Reset Failed. err: %d", result );
return FALSE;
}
result |= RTC_SetTime( &time );
if( result != RTC_RESULT_SUCCESS )
{
OS_TPrintf("RTC Time Reset Failed. err: %d", result );
return FALSE;
}
return TRUE;
}

View File

@ -252,7 +252,9 @@ void printValue( int menu,int entryLine, int drawOffset, DispInfoEntry *entry )
return;
}
if( menu == MENU_SECURE_HW && entryLine == SECURE_HW_FUSE )
if( ( menu == MENU_SECURE_HW && entryLine == SECURE_HW_FUSE ) ||
( menu == MENU_OTHER && entryLine == OTHER_RTC_OFFSET ) ||
( menu == MENU_OTHER && entryLine == OTHER_TP_RSV ) )
{
// 16文字を8文字の二段組みに変更
char buf[9] = {0};

View File

@ -19,6 +19,8 @@ typedef struct FontInfo{
BOOL isHashOK; // ハッシュ値が既知のものと一致するか
} FontInfo;
// 初回読み込みか否か
static BOOL firstRead;
// NANDアプリ情報
extern s32 gNumContents;

View File

@ -19,6 +19,7 @@ FontInfo gFontInfo[ OS_SHARED_FONT_MAX ];
void loadFontName( OSSharedFontIndex idx );
void loadFont( OSSharedFontIndex idx );
void releaseFont( OSSharedFontIndex idx );
BOOL checkFontHash( OSSharedFontIndex idx );
@ -34,6 +35,7 @@ void getFontInfo( void )
// フォントテーブルバッファの確保
tableSize = OS_GetSharedFontTableSize();
tableBuf = (u8*) Alloc ( (u32)tableSize );
SDK_ASSERT( tableBuf );
time = OS_GetSharedFontTimestamp();
OS_TPrintf("SharedFont Time Stamp %08lx\n", time );
@ -43,6 +45,7 @@ void getFontInfo( void )
if( ! OS_LoadSharedFontTable( (void*)tableBuf ) )
{
OS_TPrintf("Loading shared font table failed.\n");
Free(tableBuf);
return;
}
@ -54,8 +57,8 @@ void getFontInfo( void )
gFontInfo[fontIdx].size = (u32) OS_GetSharedFontSize( (OSSharedFontIndex)fontIdx );
loadFont( fontIdx );
gFontInfo[fontIdx].isHashOK = checkFontHash( fontIdx );
releaseFont( fontIdx );
}
Free(tableBuf);
@ -67,18 +70,10 @@ void loadFontName( OSSharedFontIndex idx )
// 名前取得
const u8* fontName = OS_GetSharedFontName( (OSSharedFontIndex)idx );
int fontNameLength = STD_StrLen( (char*)fontName );
if( gFontInfo[idx].name == NULL ||
( sizeof( gFontInfo[idx].name ) <= fontNameLength ))
{
// 名前のところにメモリが割り当てられてなかったり、
// 小さかったりした場合は割り当てなおす。
// NsysのFreeはNULLを渡すと落ちる仕様・・・
if( gFontInfo[idx].name != NULL )
{
Free( gFontInfo[idx].name );
}
OS_TPrintf("fontname length: %d\n", fontNameLength );
if( gFontInfo[idx].name == NULL ){
// 名前のところにメモリが割り当てられてなかったりしたら
gFontInfo[idx].name = (u8*) Alloc ( sizeof(u8) * (fontNameLength + 1) );
}
@ -91,18 +86,11 @@ void loadFont( OSSharedFontIndex idx )
{
// でも別に普段必要なわけじゃないからメモリ確保のためにも
// ハッシュ値取り終わったら開放するようにするかな?
if( gFontInfo[idx].data == NULL ||
( sizeof( gFontInfo[idx].data ) <= gFontInfo[idx].size ))
if( gFontInfo[idx].data == NULL )
{
// データバッファにメモリが割り当てられてなかったり、
// 小さかったりした場合は割り当てなおす。
if( gFontInfo[idx].data != NULL )
{
Free( gFontInfo[idx].data );
}
gFontInfo[idx].data = (u8*) Alloc ( gFontInfo[idx].size );
}
@ -110,6 +98,14 @@ void loadFont( OSSharedFontIndex idx )
OS_LoadSharedFont( idx, (void*)gFontInfo[idx].data );
}
void releaseFont( OSSharedFontIndex idx )
{
if( gFontInfo[idx].data != NULL )
{
Free( gFontInfo[idx].data );
}
}
BOOL checkFontHash( OSSharedFontIndex idx )
{
u8 digestBuf[MATH_SHA1_DIGEST_SIZE], cmpBuf[MATH_SHA1_DIGEST_SIZE];

View File

@ -23,8 +23,8 @@ void getNormalHWInfo( void )
int value;
value = (int) OS_GetOwnerRtcOffset();
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_OFFSET].iValue = (int) value;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_OFFSET].isNumData = TRUE;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_ADJUST].iValue = (int) value;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_ADJUST].isNumData = TRUE;
{
int i;

View File

@ -1,4 +1,5 @@
#include <twl.h>
#include <twl/lcfg.h>
#include "viewSystemInfo.h"
#include "strResource.h"
@ -7,8 +8,9 @@
void getOtherInfo( void )
{
// この辺からマクロで生成した分
s64 rtcoffset;
int value;
LCFGTWLTPCalibData tpdata;
value = OS_IsAgreeEULA();
gAllInfo[MENU_OTHER][OTHER_AGREE_EULA].iValue = value;
@ -21,8 +23,49 @@ void getOtherInfo( void )
gAllInfo[MENU_OTHER][OTHER_WIRELESS].iValue = value;
gAllInfo[MENU_OTHER][OTHER_WIRELESS].str.sjis = s_strEnable[value];
rtcoffset = LCFG_TSD_GetRTCOffset();
snprintf( gAllInfo[MENU_OTHER][OTHER_RTC_OFFSET].str.sjis,
DISPINFO_BUFSIZE-1, "%016llx", rtcoffset );
gAllInfo[MENU_OTHER][OTHER_RTC_OFFSET].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_RTC_OFFSET].fromLCFG = TRUE;
LCFG_TSD_GetTPCalibration( &tpdata );
gAllInfo[MENU_OTHER][OTHER_TP_RAWX1].iValue = tpdata.data.raw_x1;
gAllInfo[MENU_OTHER][OTHER_TP_RAWX1].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWX1].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWX2].iValue = tpdata.data.raw_x2;
gAllInfo[MENU_OTHER][OTHER_TP_RAWX2].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWX2].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DX1].iValue = tpdata.data.dx1;
gAllInfo[MENU_OTHER][OTHER_TP_DX1].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DX1].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DY1].iValue = tpdata.data.dy1;
gAllInfo[MENU_OTHER][OTHER_TP_DY1].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DY1].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY1].iValue = tpdata.data.raw_y1;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY1].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY1].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY2].iValue = tpdata.data.raw_y2;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY2].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_RAWY2].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DX2].iValue = tpdata.data.dx2;
gAllInfo[MENU_OTHER][OTHER_TP_DX2].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DX2].fromLCFG = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DY2].iValue = tpdata.data.dy2;
gAllInfo[MENU_OTHER][OTHER_TP_DY2].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_TP_DY2].fromLCFG = TRUE;
/*
snprintf( gAllInfo[MENU_OTHER][OTHER_TP_RSV].str.sjis,
DISPINFO_BUFSIZE, "%016llx", MI_LoadLE64( tpdata.rsv ) );
gAllInfo[MENU_OTHER][OTHER_TP_RSV].fromLCFG = TRUE;
*/
}

View File

@ -95,6 +95,7 @@ void getWhitelistHash( void )
gAllInfo[MENU_WHITE][WHITE_HASH].str.sjis = s_strCorrect [ cmpHash( digestBuf, &tmd->contents[0].hash ) ];
FS_CloseFile( &file );
Free( tmd );
Free( fileBuf );
@ -107,6 +108,8 @@ void getNumDHTEntry( void )
char filePath[NAM_PATH_LEN+1];
dht = (DHTFile*) Alloc (DS_HASH_TABLE_SIZE);
SDK_ASSERT(dht);
FS_InitFile( &file );
NAM_GetTitleBootContentPathFast( filePath , WHITELIST_TITLEID );
@ -133,6 +136,7 @@ void getNumDHTEntry( void )
DC_FlushRange( dht, DHT_GetDatabaseLength( dht ));
OS_TPrintf(" dht.header.nums : %d\n", dht->header.nums);
FS_CloseFile( &file );
gAllInfo[MENU_WHITE][WHITE_NUM].iValue = (int)dht->header.nums;
gAllInfo[MENU_WHITE][WHITE_NUM].isNumData = TRUE;

View File

@ -18,6 +18,7 @@
#define WL_FW_TYPE_SIZE 0x4
void getWLInfo( void )
{
FSFile file;
@ -80,6 +81,8 @@ void getWLInfo( void )
gAllInfo[MENU_WL][WL_FW_TYPE].iValue = value;
gAllInfo[MENU_WL][WL_FW_TYPE].str.sjis = s_strWLFWType[ value ];
}
FS_CloseFile( &file );
}
else
{

View File

@ -35,6 +35,7 @@ int s_numMenu[] = {
VERSIONMENU_SIZE,
0,
0,
0,
ROOTMENU_SIZE
};
@ -76,7 +77,8 @@ const char *s_strRootMenu[] = {
"<EFBFBD>ƒWhitelist<EFBFBD>",
"<EFBFBD>ƒInstalled Content Version<6F>",
"Reset HW Setting to Default",
"break HW Setting"
"break HW Setting",
"Reset RTC Data"
};
const char *s_strOwnerMenu[] = {
@ -117,11 +119,21 @@ const char *s_strSecureUserMenu[] = {
const char *s_strOtherMenu[] = {
"Agree EULA",
"EULA Version",
"Wireless"
"Wireless",
"RTC Offset",
"TP Calib raw x1",
"TP Calib raw y1",
"TP Calib dx1",
"TP Calib dy1",
"TP Calib raw x2",
"TP Calib raw y2",
"TP Calib dx2",
"TP Calib dy2",
"TP Calib RSV"
};
const char *s_strNormalHWMenu[] = {
"RTC Offset",
"RTC Adjustment",
"Unique ID"
};
@ -276,6 +288,7 @@ const char **s_strMetaMenu[] = {
NULL,
NULL,
NULL,
NULL,
s_strRootMenu
};

View File

@ -19,7 +19,9 @@
#define __DISPLAY_INFO_RESOURCE__
// ƒ<>ƒjƒ…<C692>[ID
#define MENU_ROOT 15
#define ROOTMENU_SIZE 16
#define MENU_ROOT 16
#define MENU_OWNER 0
#define MENU_PARENTAL 1
#define MENU_SECURE_USER 2
@ -35,9 +37,10 @@
#define MENU_VERSION 12
#define MENU_RESET_INFO 13
#define MENU_BREAK_DATA 14
#define MENU_RTC_RESET 15
#define OWNERMENU_SIZE 6
// 行番号
#define OWNER_LANGUAGE 0
#define OWNER_COLOR 1
#define OWNER_BIRTHDAY 2
@ -45,6 +48,8 @@
#define OWNER_NICKNAME 4
#define OWNER_COMMENT 5
#define PARENTALMENU_SIZE 12
#define PARENTAL_FLAG 0
#define PARENTAL_PICTOCHAT 1
#define PARENTAL_DOWNLOAD 2
@ -58,6 +63,8 @@
#define PARENTAL_QUESTION_ID 10
#define PARENTAL_ANSWER 11
#define SECURE_USER_MENU_SIZE 8
#define SECURE_USER_INITIAL_SETTINGS 0
#define SECURE_USER_INITIAL_LAUNCHER 1
#define SECURE_USER_BROKEN_SETTINGS 2
@ -67,13 +74,29 @@
#define SECURE_USER_LASTBOOT_PLATFORM 6
#define SECURE_USER_LASTBOOT_ID 7
#define OTHER_AGREE_EULA 0
#define OTHER_EULA_VERSION 1
#define OTHER_WIRELESS 2
#define OTHERMENU_SIZE 13
#define NORMAL_HW_RTC_OFFSET 0
#define OTHER_AGREE_EULA 0
#define OTHER_EULA_VERSION 1
#define OTHER_WIRELESS 2
#define OTHER_RTC_OFFSET 3
#define OTHER_TP_RAWX1 4
#define OTHER_TP_RAWY1 5
#define OTHER_TP_DX1 6
#define OTHER_TP_DY1 7
#define OTHER_TP_RAWX2 8
#define OTHER_TP_RAWY2 9
#define OTHER_TP_DX2 10
#define OTHER_TP_DY2 11
#define OTHER_TP_RSV 12
#define NORMAL_HW_MENU_SIZE 2
#define NORMAL_HW_RTC_ADJUST 0
#define NORMAL_HW_UNIQUE_ID 1
#define SECURE_HW_MENU_SIZE 6
#define SECURE_HW_FORCE_DISABLE 0
#define SECURE_HW_REGION 1
#define SECURE_HW_SERIAL 2
@ -81,6 +104,8 @@
#define SECURE_HW_FUSE 4
#define SECURE_HW_LAUNCHER_ID 5
#define SCFG_ARM9_MENU_SIZE 27
#define SCFG_ARM9_ROM_SEC 0
#define SCFG_ARM9_ROM_STATE 1
#define SCFG_ARM9_CLK_CPU 2
@ -109,6 +134,8 @@
#define SCFG_ARM9_CHECK_ERROR7 25
#define SCFG_ARM9_CHECK_ERROR9 26
#define SCFG_ARM7_MENU_SIZE 47
#define SCFG_ARM7_ROM_ARM9_SEC 0
#define SCFG_ARM7_ROM_ARM9_RSEL 1
#define SCFG_ARM7_ROM_ARM7_SEC 2
@ -159,6 +186,8 @@
#define SCFG_ARM7_SHARED_OFFSET 47
#define SYSMENU_MENU_SIZE 10
#define SYSMENU_TIMESTAMP 0
#define SYSMENU_VERSION_NUM 1
#define SYSMENU_VERSION_STR 2
@ -173,33 +202,40 @@
#define SYSMENU_HASH_IDX 5
#define FONTMENU_SIZE 1
#define FONT_TIMESTAMP 0
#define FONT_INFO 1
#define WLMENU_SIZE 3
#define WL_VERSION 0
#define WL_NUM_FW 1
#define WL_FW_TYPE 2
#define WHITEMENU_SIZE 2
#define WHITE_NUM 0
#define WHITE_HASH 1
#define VERSIONMENU_SIZE 0
#define VERSION_OTHER 0
// 各メニューサイズ
#define ROOTMENU_SIZE 15
#define OWNERMENU_SIZE 6
#define PARENTALMENU_SIZE 12
#define SECURE_USER_MENU_SIZE 8
#define OTHERMENU_SIZE 3
#define NORMAL_HW_MENU_SIZE 2
#define SECURE_HW_MENU_SIZE 6
#define SCFG_ARM7_MENU_SIZE 47
#define SCFG_ARM9_MENU_SIZE 27
#define SYSMENU_MENU_SIZE 10
#define FONTMENU_SIZE 1
#define WLMENU_SIZE 3
#define WHITEMENU_SIZE 2
#define VERSIONMENU_SIZE 0
extern int s_numMenu[];
extern const char *s_strRootMenu[];

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_ERROR9, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_WL], WL_VERSION, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_OTHER], OTHER_RTC_OFFSET, DISPINFO_BUFSIZE, TRUE);
infoAlloc( gAllInfo[MENU_OTHER], OTHER_TP_RSV, DISPINFO_BUFSIZE, TRUE);
// utf(u16)
@ -166,8 +168,7 @@ void infoAlloc( DispInfoEntry *p, u8 index, u8 size, BOOL isSjis )
void getAllInfo( void )
//
{
BOOL SCFGAccessable = FALSE;
BOOL fuseRomAccessable = FALSE;
static BOOL firstRead = TRUE;
OS_TPrintf("reflesh Information\n");
@ -178,15 +179,18 @@ void getAllInfo( void )
getHWInfo();
getSCFGInfo();
getSysmenuInfo();
getFontInfo();
getWhiteListInfo();
getWLInfo();
if( firstRead ){
getWLInfo();
getWhiteListInfo();
#if NAM_ENABLE
getContentsVersion();
#endif
}
getFontInfo();
printAllInfo();
firstRead = FALSE;
OS_TPrintf("reflesh information finished\n");
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B