diff --git a/build/tests/Makefile b/build/tests/Makefile index af4d03a..bd202f8 100644 --- a/build/tests/Makefile +++ b/build/tests/Makefile @@ -20,7 +20,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs #---------------------------------------------------------------------------- -SUBDIRS = os +SUBDIRS = os mi #---------------------------------------------------------------------------- diff --git a/build/tests/mi/Makefile b/build/tests/mi/Makefile new file mode 100644 index 0000000..6fb357d --- /dev/null +++ b/build/tests/mi/Makefile @@ -0,0 +1,31 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - tests +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Log: $ +# $NoKeywords: $ +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/commondefs + + +#---------------------------------------------------------------------------- + +SUBDIRS = exDma-1 + + +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + + +#===== End of Makefile ===== diff --git a/build/tests/mi/exDma-1/Makefile b/build/tests/mi/exDma-1/Makefile new file mode 100644 index 0000000..3a92a02 --- /dev/null +++ b/build/tests/mi/exDma-1/Makefile @@ -0,0 +1,42 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - OS - demos - exDma-1 +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Log: $ +# $NoKeywords: $ +#---------------------------------------------------------------------------- + + +SUBDIRS = + + +#---------------------------------------------------------------------------- + +TARGET_BIN = exDma.axf + +SRCS = main.c + +#SRCDIR = # using default +#LCFILE = # using default + +include $(TWLSDK_ROOT)/build/buildtools/commondefs + + +#---------------------------------------------------------------------------- + +do-build: $(TARGETS) + + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + + +#===== End of Makefile ===== diff --git a/build/tests/mi/exDma-1/src/main.c b/build/tests/mi/exDma-1/src/main.c new file mode 100644 index 0000000..3526f38 --- /dev/null +++ b/build/tests/mi/exDma-1/src/main.c @@ -0,0 +1,370 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - MI - demos - exDma-1 + File: main.c + + Copyright 2003-2006 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Log: $ + $NoKeywords: $ + *---------------------------------------------------------------------------*/ +#include + + +#define ONE_BUF_SIZE 0x2004 + +typedef struct +{ + u32 prePad __attribute__ ((aligned (32))); + u16 src[4][ONE_BUF_SIZE/2] __attribute__ ((aligned (32))); + u16 dest[4][ONE_BUF_SIZE/2] __attribute__ ((aligned (32))); + u32 PostPad __attribute__ ((aligned (32))); +} +t_TestBuf; + +typedef struct +{ + u16 (*src)[ONE_BUF_SIZE/2]; + u16 (*dest)[ONE_BUF_SIZE/2]; + char *copyStr; + char *fillStr; +} +t_CommonArg; + + +t_TestBuf testBuf __attribute__ ((aligned (32))); + +t_CommonArg copyfillArg[] = +{ + { testBuf.src, testBuf.dest, "DmaCopy success.\n", "DmaFill success on WRAM.\n", }, +}; + +t_CommonArg stopArg[] = +{ + { testBuf.src, testBuf.dest, "Stopping DmaCopy success.\n", "Stopping DmaFill success on WRAM.\n", }, +}; + +t_CommonArg copyfillAsyncArg[] = +{ + { testBuf.src, testBuf.dest, "DmaCopyAsync success.\n", "DmaFillAsync success on WRAM.\n", }, +}; + +static BOOL CheckDmaCopy( u32 dmaNo, void *src, void *dest, const char *str ) +{ + BOOL ercd = TRUE; + u8 *s = src; + u8 *d = dest; + int i; + + for (i=0; isrc; + u16 (*dest)[ONE_BUF_SIZE/2] = arg->dest; + char *copyStr = arg->copyStr; + char *fillStr = arg->fillStr; + BOOL c_ercd = TRUE, f_ercd = TRUE; + u32 i, ii; + + for (i=0; i<4; i++) + { + for (ii=0; iisrc; + u16 (*dest)[ONE_BUF_SIZE/2] = arg->dest; + char *copyStr = arg->copyStr; + char *fillStr = arg->fillStr; + BOOL c_ercd = TRUE, f_ercd = TRUE; + u32 i, ii; + + for (i=0; i<4; i++) + { + for (ii=0; iisrc; + u16 (*dest)[ONE_BUF_SIZE/2] = arg->dest; + char *copyStr = arg->copyStr; + char *fillStr = arg->fillStr; + BOOL c_ercd = TRUE, f_ercd = TRUE; + u32 i; + + for (i=0; i<4; i++) + { + u32 ch = i + MI_EXDMA_CH_MIN; + u16 *s = src[i]; + u16 *d = dest[i]; + + MIi_ExDmaCopyAsync( ch, s, d, ONE_BUF_SIZE ); + if ( MIi_IsExDmaBusy( ch ) == FALSE ) + { + OS_TPrintf( "warning: DmaCopyAsync isn't busy dmaNo = %d.\n", ch ); + } + MIi_StopExDma( ch ); + + if ( MIi_IsExDmaBusy( ch ) == TRUE ) + { + OS_TPrintf( "error: Stopping DmaCopy failed dmaNo = %d.\n", ch ); + c_ercd = FALSE; +// break; + } + } + if ( c_ercd == TRUE ) + { + OS_TPrintf( copyStr ); + } + + for (i=0; i<4; i++) + { + u32 ch = i + MI_EXDMA_CH_MIN; + u16 *d = dest[i]; + + MIi_ExDmaFillAsync( ch, d, i, ONE_BUF_SIZE ); + if ( MIi_IsExDmaBusy( ch ) == FALSE ) + { + OS_TPrintf( "warning: DmaFillAsync isn't busy dmaNo = %d.\n", ch ); + } + MIi_StopExDma( ch ); + + if ( MIi_IsExDmaBusy( ch ) == TRUE ) + { + OS_TPrintf( "error: Stopping DmaFill failed dmaNo = %d.\n", ch ); + f_ercd = FALSE; +// break; + } + } + if ( f_ercd == TRUE ) + { + OS_TPrintf( fillStr ); + } + + return c_ercd | f_ercd; +} + + + +//================================================================================ +/*---------------------------------------------------------------------------* + Name: TwlMain + + Description: main + + Arguments: None + + Returns: None + *---------------------------------------------------------------------------*/ +void TwlMain() +{ + u32 i; + + OS_Init(); + +// (void)OS_EnableIrq(); + + OS_TPrintf("ARM9 starts.\n"); + + OS_TPrintf( "\nChecking DmaCopy and DmaFill ....\n" ); + for (i=0; i<1; i++) + { + (void)CheckDmaCopyAndFill( ©fillArg[i], i ); + } + + OS_TPrintf( "\nChecking DmaCopyAsync and DmaFillAsync ....\n" ); + for (i=0; i<1; i++) + { + (void)CheckDmaCopyAndFillAsync( ©fillAsyncArg[i], i ); + } + + OS_TPrintf( "\nChecking DmaStop ....\n" ); + for (i=0; i<1; i++) + { + (void)CheckDmaStop( &stopArg[i] ); + } + + OS_TPrintf("ARM9 ends.\n"); + OS_Terminate(); +} + + +/*====== End of main.c ======*/ diff --git a/build/tests/os/_ARM7-alarm-2/src/main.c b/build/tests/os/_ARM7-alarm-2/src/main.c index eb3c4d8..1a66222 100644 --- a/build/tests/os/_ARM7-alarm-2/src/main.c +++ b/build/tests/os/_ARM7-alarm-2/src/main.c @@ -56,7 +56,7 @@ $NoKeywords: $ *---------------------------------------------------------------------------*/ -#include +#include void alarmCallback(void *arg); void alarmDisp(u32 arg); @@ -99,10 +99,6 @@ int count; *---------------------------------------------------------------------------*/ void TwlMain() { -#ifdef SDK_DEBUGGER_ARM - OS_Printf("ARM7 before OS_Init.\n"); -#endif - OS_Init(); // この2つは ARM7では os_init() でやる diff --git a/build/tests/os/alarm-1/src/main.c b/build/tests/os/alarm-1/src/main.c index 6490b40..4e04b85 100644 --- a/build/tests/os/alarm-1/src/main.c +++ b/build/tests/os/alarm-1/src/main.c @@ -57,7 +57,6 @@ $NoKeywords: $ *---------------------------------------------------------------------------*/ #include -#include void VBlankIntr(void); void alarmCallback(void *arg); diff --git a/include/twl.h b/include/twl.h index 27af3cb..c6f28ac 100644 --- a/include/twl.h +++ b/include/twl.h @@ -20,7 +20,10 @@ #include #include + +#ifdef SDK_DEBUGGER_KMC #include +#endif // SDK_DEBUGGER_KMC /* TWL_H_ */ #endif diff --git a/include/twl/os.h b/include/twl/os.h index 5650ec8..f351904 100644 --- a/include/twl/os.h +++ b/include/twl/os.h @@ -22,6 +22,10 @@ #include #include +#ifdef SDK_DEBUGGER_KMC +#include +#endif // SDK_DEBUGGER_KMC + #ifdef __cplusplus extern "C" { #endif