ソースのインポート

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_card_test@1 ff8ce827-af98-4349-adb5-4c00699b5328
This commit is contained in:
(no author) 2010-02-12 02:11:12 +00:00
commit fa6e7597d5
11 changed files with 3972 additions and 0 deletions

61
trunk/CommandTest.cpp Normal file
View File

@ -0,0 +1,61 @@
#include "nakayama.h"
using namespace nn::red::nakayama;
class CommandTest : public Program
{
virtual void Execute()
{
Page page;
Label title;
title.X = 20;
title.Y = 10;
title.Text = "Command Test";
page.Add(title);
Label date;
date.X = 250;
date.Y = 10;
date.Text = __DATE__;
page.Add(date);
ValueSelector menu;
menu.X = 30;
menu.Y = 40;
page.Add(menu);
SelectableValue<int> address;
address.Add( 0 );
address.Add( 1 );
address.Add( 2 );
menu.Register("Address", address);
SelectableValue< NamedValue<int> > loop;
loop.Add(*(new NamedValue<int>("Once", 0)));
loop.Add(*(new NamedValue<int>("Repeat", 1)));
menu.Register("Loop", loop);
// 画面表示しながら選択を受け付ける
while(1)
{
page.Show(Display::GetInstance(Display::Upper));
// 選択されたら
if(menu.Selected)
{
int a = address.GetValue();
int l = loop.GetValue().Value;
menu.Selected = false;
}
// キャンセルされたら
if(menu.Canceled)
{
menu.Canceled = false;
break;
}
}
};
};

65
trunk/CtrCardTest.cpp Normal file
View File

@ -0,0 +1,65 @@
#include "nakayama.h"
#include "FunctionTest.cpp"
#include "CommandTest.cpp"
using namespace nn::red::nakayama;
class CtrCardTest : public Program
{
public:
virtual void Execute()
{
// ページ
Page page;
// タイトルラベル
Label title;
title.X = 20;
title.Y = 10;
title.Text = "CTR Card Test";
page.Add(title);
// 日付ラベル
Label date;
date.X = 250;
date.Y = 10;
date.Text = __DATE__;
page.Add(date);
// 選択肢
Selector<Program> menu;
menu.X = 30;
menu.Y = 40;
page.Add(menu);
// 選択肢に項目を追加
menu.Register("Function Test", *(new FunctionTest()));
menu.Register("Command Test", *(new CommandTest()));
menu.Register("Reliability Test for ROM", *(new FunctionTest()));
menu.Register("Reliability Test for Writable Memory", *(new CommandTest()));
// 画面表示しながら選択を受け付ける
while(1)
{
page.Show(Display::GetInstance(Display::Upper));
// 選択されたら
if(menu.Selected)
{
menu.GetSelectedItem()->Execute();
menu.Selected = false;
}
// キャンセルされたら
if(menu.Canceled)
{
menu.Canceled = false;
Display::GetInstance(Display::Upper).Clear();
Display::GetInstance(Display::Upper).SwapBuffer();
break;
}
}
};
};

176
trunk/CtrCardTest.desc Normal file
View File

@ -0,0 +1,176 @@
DefaultSpec:
AccessControlInfo:
HandleTableSize: 512
AffinityMask: 1
MemoryMapping:
- 1f000000-1f3fffff:r
StorageId: "0"
IdealProcessor: 0
Priority: 16
ProgramId: 0L
Rom:
DefaultReject:
- .*
File:
- "*"
BasicInfo:
Title: default
InitialCode:
CompanyCode:
Media:
MediaType: Card
SystemControlInfo:
StackSize: 16384
Dependency:
- .GPI
- .SPI
- .GSP
- .I2C
- .CDC
- .HID
- .MCU
- .PDN
- .MIC
- .DSP
- .CAM
- .PTM
CommonHeaderKey:
DP: |
JChx9AzZmb1E1TZ3Bc4XWjLURl6EqkaGhmGnDi4ayuMWED6CPJ1RBRD7a4aD
53i4hVl9ZAowKKHd64fuK/k781sDnBQJMqYH1+EzK/M6s5jnj51JMoycw034
e3XC25R1F6wO/ByzpyBSHlN0CadXRW6GUvU2PGuok4Zy8+ArcuE=
InverseQ: |
aJQTgPO3Z/8TuNA1Ebtj1fyFZqCo+mB/hfrTPUFh7A9z1TbwyIPVhpAeSnjl
uJOUdkfjMEK7HzXIC7yPgUUWGh0PKMm3G5IX/GhwOck/+dsdcw7LrWNjnCxp
Cbnu3P3HmBg3d4gRk1egr1VTRrZyEcBqRpJSggIKdwarwLmgBtY=
Modulus: |
4s3l6Duqv6ecvppOVj+yAvnO9cToWrUBimIVPUgrVdQc+ux1Uo7ynaJfIcwb
k2LhdujYNMnO/QOzm6NuQgKknRau1iZI1WJVk2mHJCSfXh5P03ADwQmBqxsf
LXBlTxmxUqstI4lepNEaZBO9MRdme86sATt8/5iuCpbxuxXvIVb5dFBkS4VD
qf3soo6uN7o77E78JvpW0GCLcT62yBwvd3o0u0ddco2eSknxtOAzyhGHJkht
ACyaVYStYBAgh2aiAs2BPKozC3fwhkG/RckZ9crAwuhg2zLyoZrUDkxQ//YI
lSrLEjdamY1PP9wWl5C3yx+gLHEl4uRGqPdRILvznQ==
DQ: |
tnJM1A8dIxe6AqhorOAaTpDMBhNCVADJ9AdRoI/typVuOlNCghbvIIyGqqdU
xAOWioeS/11/bNZ+4jNGurH/njAmNCv3nrIzr5rVzCYPa7qTXYZkCQLIG2yx
tsuQbxV1moyOYUgwdacrnj/hjSrDaLCCzpX0w2xyO85JNh6n4Sk=
D: |
s+XbecRyIIkDlE/y2Qi22xNorJreLqyqJyi7bhtjfDW+Mu4B9VU7bfuP98/d
A6AH9HimneCBFUGtYkNUvnk4Nv35+hTt6ouQE1g+AFYoLtBeQvjzkVdICf9+
UF15ji9z7n2mVSyt7I+Lnlvl0h2chZGd73BPKrHhQrcN0HaKceb7OmA75S6T
T+3Dy1GLAe26EWxDKLv2jfUsVG3mvOm5SXlBA//7ztas4pc5N8XTnD5uEEAv
/582qOsB2YAN+E6kEnNiyH2+l5dcrQiUxCz8NjdFX+4BfzUFVeY0iATE+DwZ
t7f4RmasJpHSm1wASq3i917tZy/hstafbzZYAICDoQ==
P: |
/dKKGrrV19M10Ayet/gGXptE6euuoxOLprkTFIriodV4FZ+MCoRuoDEmu2Q8
DRHEt+I9yx8LtCeqYD4gkr1PiUtu+WjIPretdgwmF22lXqVE5SahcuM+hFpD
YnJ2fo4q47u9iWyUZXS8nhiiQF3p+ZP0ojVWsb0C1FHIIBzwEeU=
Q: |
5MAFC9ZMXRjPvwz66vB+yAV/eQ8haZJ9kUXGFLlpzenvg33s0WgnBWt+F+Fl
scmt1tduZn0WXmekAf07h5Ugi489m57e5pNwFF3YD3S7J3CiZ0JBwGoHF7kH
vZNq32gAvpWL41Ufg9XeICyqKmyU4ggPFH194PcZdq9Y4Lz/H1k=
Exponent: |
AQAB
AccessControlDescriptor:
HandleTableSize: 512
Signature: |
tvOhowzhCW7eH1t0TL+bDhSZSOsNqw7PK6EZX1vpkaaHQwRQgsgvzcbzSMrd
7TWQy9vE4HsHXN8JJ+I0XuAk+SBQ43bRlV0IzOrNzEWhfRsaQraU4FjyhtM/
/b/+1GAPUjacwXx41Scwwnu2WsDmrvBGU9dOkjyZSril1qK1He1+X8DYKfBC
ORSwpOia9wGmmFLwwY4mcKXrEH4hyVadAuhqIYikAJ9cmY4R13e4Uu3xdCAM
BgnK63U2aXe+22RxCvcEKTt//lZMwFIDu/81gJFsmY9o5ktv30dO7C6OfNaT
hpDHXvXv4dGDVkfJN57Ze0d1+ySGYpXghfMiCCZQiw==
MemoryMapping:
- 1f000000-1f3fffff:r
AffinityMask: 1
EnableInterruptNumbers:
EnableSystemCalls:
WaitSynchronization: 72
GetThreadIdealProcessor: 39
GetProcessIdealProcessor: 22
CloseHandle: 71
CancelTimer: 66
SleepThread: 31
SendSyncRequest: 47
DuplicateHandle: 118
CreateEvent: 59
SetThreadIdealProcessor: 40
ReleaseMutex: 55
GetSystemTick: 73
GetCurrentProcessorNumber: 41
ClearTimer: 67
GetProcessIdOfThread: 34
AllocateSharedMemory: 6
SetThreadAffinityMask: 38
SetProcessAffinityMask: 21
GetThreadId: 33
GetResourceLimit: 14
GetHandleInfo: 108
ArbitrateAddress: 120
MapSharedMemory: 8
GetResourceLimitLimitValues: 25
GetProcessAffinityMask: 20
CreateThread: 28
ConnectToPort: 44
ClearEvent: 62
SignalEvent: 61
SetTimer: 65
ReleaseSemaphore: 58
OutputDebugString: 94
CreateMutex: 53
GetThreadPriority: 35
GetThreadContext: 32
GetResourceLimitCurrentValues: 27
ExitThread: 30
CreateSemaphore: 56
ControlMemory: 1
UnmapSharedMemory: 9
SetThreadPriority: 36
QueryMemory: 2
GetThreadAffinityMask: 37
GetProcessId: 19
CreateTimer: 63
Break: 93
CreateAddressArbiter: 119
SetProcessIdealProcessor: 23
ExitProcess: 18
StorageId:
- "0"
IORegisterMapping:
- 1ec00000-1effffff
IdealProcessor: 1
Descriptor: |
AAAAAAAAAAAAAAAAAAEBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmczpVU0VSAGdz
cDo6R3B1aGlkOlVTRVJjYW06dQAAAHkycjp1AAAAbWljOnUAAABzb2M6VQAA
AHB4aTpoaW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABGQ/zw2v+T8aDtjvIDAGDzABDA9AEAAPUA8JH/APSR/wEAAP8A
AgD+////////////////////////////////////////////////////////
////////////////////////////////////////AAAAAAAAAAAAAAAAAAAA
AP////////////////////8=
ServiceAccessControl:
- fs:USER
- gsp::Gpu
- hid:USER
- cam:u
- y2r:u
- mic:u
- soc:U
- pxi:hio
Priority: 96
ProgramId: 0L

8
trunk/CtrCardTest.rsf Normal file
View File

@ -0,0 +1,8 @@
BasicInfo:
Title : CardTest
CompanyCode:
InitialCode:
AccessControlInfo:
IORegisterMapping:
- 1ec40000-1ec46fff

161
trunk/FunctionTest.cpp Normal file
View File

@ -0,0 +1,161 @@
#include "nakayama.h"
using namespace nn::red::nakayama;
class S1FunctionTest : public Program
{
public:
virtual void Execute()
{
// ページ
Page page;
Label running;
running.X = 120;
running.Y = 100;
running.Text = "Running";
page.Add(running);
Label loop;
loop.X = 10;
loop.Y = 200;
loop.Text = "Loop:";
page.Add(loop);
Label count;
count.X = 60;
count.Y = 200;
count.Text = "0000000000000";
page.Add(count);
KeyPad& pad = KeyPad::GetInstance();
// 画面表示しながら選択を受け付ける
while(1)
{
pad.ReadKey();
page.Show(Display::GetInstance(Display::Lower));
// Bボタンが押されたら
if(pad.IsTrigger(KeyPad::B))
{
Display::GetInstance(Display::Lower).Clear();
Display::GetInstance(Display::Lower).SwapBuffer();
break;
}
}
};
};
class S2FunctionTest : public Program
{
public:
virtual void Execute()
{
// ページ
Page page;
Label running;
running.X = 120;
running.Y = 100;
running.Text = "Running";
page.Add(running);
Label loop;
loop.X = 10;
loop.Y = 200;
loop.Text = "Loop:";
page.Add(loop);
Label count;
count.X = 60;
count.Y = 200;
count.Text = "0000000000000";
page.Add(count);
KeyPad& pad = KeyPad::GetInstance();
// 画面表示しながら選択を受け付ける
while(1)
{
pad.ReadKey();
page.Show(Display::GetInstance(Display::Lower));
// Bボタンが押されたら
if(pad.IsTrigger(KeyPad::B))
{
Display::GetInstance(Display::Lower).Clear();
Display::GetInstance(Display::Lower).SwapBuffer();
break;
}
}
};
};
class IrregularAccessTest : public Program
{
};
class FunctionTest : public Program
{
virtual void Execute()
{
Page page;
Label title;
title.X = 20;
title.Y = 10;
title.Text = "Function Test";
page.Add(title);
Label date;
date.X = 250;
date.Y = 10;
date.Text = __DATE__;
page.Add(date);
Selector<Program> menu;
menu.X = 30;
menu.Y = 40;
page.Add(menu);
// 選択肢に項目を追加
menu.Register("S1 Function Test", *(new S1FunctionTest()));
menu.Register("S2 Function Test", *(new S2FunctionTest()));
menu.Register("Irregular Access Test", *(new IrregularAccessTest()));
// 画面表示しながら選択を受け付ける
while(1)
{
page.Show(Display::GetInstance(Display::Upper));
// 選択されたら
if(menu.Selected)
{
menu.GetSelectedItem()->Execute();
menu.Selected = false;
}
// キャンセルされたら
if(menu.Canceled)
{
menu.Canceled = false;
break;
}
}
};
};

37
trunk/OMakefile Normal file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env omake
#----------------------------------------------------------------------------
# Project: Horizon
# File: OMakefile
#
# Copyright (C)2009 Nintendo Co., Ltd. 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.
#
# $Rev:$
#----------------------------------------------------------------------------
SUPPORTED_TARGETS = CTR-TEG2.Process.MPCore.*
SOURCES[] =
main.cpp
nakayama.cpp
CtrCardTest.cpp
FunctionTest.cpp
LIBS += libnn_demo
TARGET_PROGRAM = template
CCFLAGS_WARNING += --diag_suppress=228,826,1301,2530
TITLE = # アプリケーションのタイトルを指定します。
ROMFS_ROOT = # ROMFS のルートパスを指定します。
ROM_SPEC_FILE = CtrCardTest.rsf
DESCRIPTOR = CtrCardTest.desc
include $(ROOT_OMAKE)/modulerules
build: $(DEFAULT_TARGETS)

73
trunk/OMakeroot Normal file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env omake
#----------------------------------------------------------------------------
# Project: Horizon
# File: OMakeroot
#
# Copyright (C)2009 Nintendo Co., Ltd. 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.
#
# $Rev:$
#----------------------------------------------------------------------------
# ディレクトリレイアウトについての説明
#
# a) ソースコードがルートディレクトリ直下に配置される場合
# 例:
# /OMakeroot
# /foo/bar/OMakefile
#
# 結果:
# OMakefile と同じディレクトリ以下に objects や images が生成されます。
#
# /foo/bar/objects/...
# /foo/bar/images/..
#
#
# b) ソースコードが sources 以下に配置される場合
# 例:
# /OMakeroot
# /sources/foo/bar/OMakefile
#
# 結果:
# ルートディレクトリ以下に objects や images が生成されます。
#
# /objects/foo/bar/...
# /images/foo/bar/...
#
#
# ルート環境変数の取得
public.HORIZON_ROOT =
if $(defined-env HORIZON_ROOT)
HORIZON_ROOT = $(absname $(getenv HORIZON_ROOT))
export
if $(defined-env CTRSDK_ROOT)
CTRSDK_ROOT = $(absname $(getenv CTRSDK_ROOT))
if $(and $(defined-env HORIZON_ROOT), $(not $(equal $(HORIZON_ROOT), $(CTRSDK_ROOT))))
eprintln(HORIZON_ROOT と CTRSDK_ROOT が一致しません。同じパスを設定するか、どちらか一方だけを定義して下さい。)
exit(1)
HORIZON_ROOT = $(CTRSDK_ROOT)
export
if $(not $(HORIZON_ROOT))
eprintln($"$$CTRSDK_ROOT が定義されていません")
exit(1)
include $(HORIZON_ROOT)/build/omake/commondefs
DefineCommandVars()
.PHONY: all build clean clobber
.PHONY: run run-scripts
#
# OMakefile の読み込み
#
.SUBDIRS: .

32
trunk/main.cpp Normal file
View File

@ -0,0 +1,32 @@
/*---------------------------------------------------------------------------*
Project: Horizon
File: main.cpp
Copyright (C)2009 Nintendo Co., Ltd. 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.
$Rev: 9608 $
*---------------------------------------------------------------------------*/
#include <stdio.h>
#include <nn/os.h>
#include <nn/dbg.h>
#include "nakayama.h"
#include "CtrCardTest.cpp"
using namespace nn::red::nakayama;
extern "C" void nnMain()
{
CtrCardTest program;
program.Execute();
while(1){};
}

1658
trunk/nakayama.cpp Normal file

File diff suppressed because it is too large Load Diff

1701
trunk/nakayama.h Normal file

File diff suppressed because it is too large Load Diff

BIN
trunk/クラス図.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB