From 5854fe9c1419b7ec37792b67a2d49da602ed0610 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Thu, 24 Apr 2008 08:53:16 +0000 Subject: [PATCH] =?UTF-8?q?NAND=E3=82=A2=E3=83=97=E3=83=AA=E5=8B=95?= =?UTF-8?q?=E4=BD=9C=E3=81=AE=E6=99=82=E3=81=ABInitAlloc=E2=86=92FS=5FInit?= =?UTF-8?q?=E3=81=AE=E9=A0=86=E3=81=A7=E5=AE=9F=E8=A1=8C=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=9F=E3=81=9F=E3=82=81=E3=80=81=20FS=5FI?= =?UTF-8?q?nit=E5=86=85=E3=81=AE=E3=83=8F=E3=83=83=E3=82=B7=E3=83=A5?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E7=94=A8=E3=83=90=E3=83=83?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=81=8C=E3=83=92=E3=83=BC=E3=83=97=E3=81=8B?= =?UTF-8?q?=E3=82=89=E7=A2=BA=E4=BF=9D=E3=81=A7=E3=81=8D=E3=81=9A=E3=81=AB?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=20=E5=8B=95=E4=BD=9C=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E4=B8=8D=E5=85=B7?= =?UTF-8?q?=E5=90=88=E5=AF=BE=E7=AD=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1258 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/systemMenu_RED/misc/src/cmn.c | 3 --- build/systemMenu_RED/misc/src/misc.c | 30 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/build/systemMenu_RED/misc/src/cmn.c b/build/systemMenu_RED/misc/src/cmn.c index 333fac13..6cc10d44 100644 --- a/build/systemMenu_RED/misc/src/cmn.c +++ b/build/systemMenu_RED/misc/src/cmn.c @@ -39,9 +39,6 @@ void CMN_InitFileSystem( NNSFndAllocator* pAllocator ) // ARM7との通信FIFO割り込み許可 (void)OS_EnableIrqMask(OS_IE_SPFIFO_RECV); - // ファイルシステム初期化 - FS_Init( FS_DMA_NOT_USE ); - // ファイルテーブルキャッシュ if( pAllocator != NULL ) { diff --git a/build/systemMenu_RED/misc/src/misc.c b/build/systemMenu_RED/misc/src/misc.c index 88ca0780..2e81ed3b 100644 --- a/build/systemMenu_RED/misc/src/misc.c +++ b/build/systemMenu_RED/misc/src/misc.c @@ -155,18 +155,26 @@ const u8 *const g_strWeek[] ATTRIBUTE_ALIGN(2) = { // アロケータの初期化 void InitAllocator( void ) { - NNSFndAllocator *pAllocator = &g_allocator; - u32 arenaLow = MATH_ROUNDUP ( (u32)OS_GetMainArenaLo(), 16 ); - u32 arenaHigh = MATH_ROUNDDOWN( (u32)OS_GetMainArenaHi(), 16 ); - u32 heapSize = arenaHigh - arenaLow; - void* heapMemory = OS_AllocFromMainArenaLo( heapSize, 16 ); - NNSFndHeapHandle heapHandle; - SDK_NULL_ASSERT( pAllocator ); - - heapHandle = NNS_FndCreateExpHeap( heapMemory, heapSize ); - SDK_ASSERT( heapHandle != NNS_FND_HEAP_INVALID_HANDLE ); + // ※暫定対策 FS_Init内でハッシュチェック用のヒープを確保しているため、 + // ユーザーヒープの確保前にFS_Initを行う必要がある。 - NNS_FndInitAllocatorForExpHeap( pAllocator, heapHandle, 32 ); + // ファイルシステム初期化 + FS_Init( FS_DMA_NOT_USE ); + + { + NNSFndAllocator *pAllocator = &g_allocator; + u32 arenaLow = MATH_ROUNDUP ( (u32)OS_GetMainArenaLo(), 16 ); + u32 arenaHigh = MATH_ROUNDDOWN( (u32)OS_GetMainArenaHi(), 16 ); + u32 heapSize = arenaHigh - arenaLow; + void* heapMemory = OS_AllocFromMainArenaLo( heapSize, 16 ); + NNSFndHeapHandle heapHandle; + SDK_NULL_ASSERT( pAllocator ); + + heapHandle = NNS_FndCreateExpHeap( heapMemory, heapSize ); + SDK_ASSERT( heapHandle != NNS_FND_HEAP_INVALID_HANDLE ); + + NNS_FndInitAllocatorForExpHeap( pAllocator, heapHandle, 32 ); + } }