mirror of
https://github.com/rvtr/ctr_card_test.git
synced 2025-06-18 14:45:42 -04:00

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_card_test@8 ff8ce827-af98-4349-adb5-4c00699b5328
376 lines
10 KiB
C++
376 lines
10 KiB
C++
#include "nakayama.h"
|
|
|
|
using namespace nn::red::nakayama;
|
|
|
|
class AgingTestRom: public CardTestProgram
|
|
{
|
|
public:
|
|
virtual void Execute()
|
|
{
|
|
Page page;
|
|
|
|
VariableSelector menu;
|
|
menu.X = 10;
|
|
menu.Y = 30;
|
|
page.Add(menu);
|
|
|
|
Label title;
|
|
title.X = 20;
|
|
title.Y = 10;
|
|
title.Text = "Aging Test";
|
|
page.Add(title);
|
|
|
|
Label adr1;
|
|
adr1.X = 20;
|
|
adr1.Y = 150;
|
|
adr1.Text = "ADD : ****_****";
|
|
page.Add(adr1);
|
|
|
|
Label adr2;
|
|
adr2.X = 20;
|
|
adr2.Y = 160;
|
|
adr2.Text = "ADD : ****_****";
|
|
page.Add(adr2);
|
|
|
|
Label loop_count;
|
|
loop_count.X = 20;
|
|
loop_count.Y = 200;
|
|
loop_count.Text = "LOOP : ********";
|
|
page.Add(loop_count);
|
|
|
|
// -----------------------------
|
|
// Setting Menu
|
|
// -----------------------------
|
|
// アクセスパターン
|
|
SelectableValue<NamedValue<int> > access_pattern;
|
|
access_pattern.Add(*(new NamedValue<int> ("INC", 0)));
|
|
access_pattern.Add(*(new NamedValue<int> ("DEC", 1)));
|
|
access_pattern.Add(*(new NamedValue<int> ("COMP", 2)));
|
|
access_pattern.Add(*(new NamedValue<int> ("RAMDOM1", 3)));
|
|
access_pattern.Add(*(new NamedValue<int> ("RAMDOM2", 4)));
|
|
access_pattern.Add(*(new NamedValue<int> ("ID1", 5)));
|
|
access_pattern.Add(*(new NamedValue<int> ("ID2", 6)));
|
|
access_pattern.Add(*(new NamedValue<int> ("REPEAT", 7)));
|
|
menu.Register("Access Pattern", access_pattern);
|
|
|
|
// DMAタイプ
|
|
SelectableValue<NamedValue<int> > copy_type;
|
|
copy_type.Add(*(new NamedValue<int> ("Repeat", 0)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA0", 1)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA1", 2)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA2", 3)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA3", 4)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA4", 5)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA5", 6)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA6", 7)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA7", 8)));
|
|
copy_type.Add(*(new NamedValue<int> ("CPU", 9)));
|
|
menu.Register("Select DMA", copy_type);
|
|
|
|
// ループ
|
|
SelectableValue<NamedValue<int> > loop;
|
|
loop.Add(*(new NamedValue<int> ("Once", 0)));
|
|
loop.Add(*(new NamedValue<int> ("Repeat", 1)));
|
|
menu.Register("Loop", loop);
|
|
|
|
// リードカウント
|
|
SelectableValue<NamedValue<int> > read_count;
|
|
read_count.Add(*(new NamedValue<int> ("10000", 0)));
|
|
read_count.Add(*(new NamedValue<int> ("100000", 1)));
|
|
read_count.Add(*(new NamedValue<int> ("1000000", 2)));
|
|
read_count.Add(*(new NamedValue<int> ("10000000", 3)));
|
|
menu.Register("Read Count", read_count);
|
|
|
|
// バックアップメモリ
|
|
SelectableValue<NamedValue<int> > backup_mem;
|
|
backup_mem.Add(*(new NamedValue<int> ("No", 0)));
|
|
backup_mem.Add(*(new NamedValue<int> ("64K EEP", 1)));
|
|
backup_mem.Add(*(new NamedValue<int> ("1M Flash", 2)));
|
|
backup_mem.Add(*(new NamedValue<int> ("4M Fash", 3)));
|
|
menu.Register("Backup Memory", backup_mem);
|
|
// -----------------------------
|
|
// Setting Menu ここまで
|
|
// -----------------------------
|
|
|
|
KeyPad& pad = KeyPad::GetInstance();
|
|
|
|
while (1)
|
|
{
|
|
pad.ReadKey();
|
|
page.Show(Display::GetInstance(Display::Lower));
|
|
|
|
if (pad.IsTrigger(KeyPad::B))
|
|
{
|
|
Display::GetInstance(Display::Lower).Clear();
|
|
Display::GetInstance(Display::Lower).SwapBuffer();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
class ReadTestRom: public CardTestProgram
|
|
{
|
|
public:
|
|
virtual void Execute()
|
|
{
|
|
Page page;
|
|
|
|
VariableSelector menu;
|
|
menu.X = 10;
|
|
menu.Y = 30;
|
|
page.Add(menu);
|
|
|
|
Label title;
|
|
title.X = 20;
|
|
title.Y = 10;
|
|
title.Text = "Read Test";
|
|
page.Add(title);
|
|
|
|
Label adr1;
|
|
adr1.X = 20;
|
|
adr1.Y = 200;
|
|
adr1.Text = "ADD : ****_****";
|
|
page.Add(adr1);
|
|
|
|
Label loop_count;
|
|
loop_count.X = 20;
|
|
loop_count.Y = 220;
|
|
loop_count.Text = "LOOP : ********";
|
|
page.Add(loop_count);
|
|
|
|
Label all_area;
|
|
all_area.X = 200;
|
|
all_area.Y = 200;
|
|
all_area.Text = "CHECK ALL AREA";
|
|
page.Add(all_area);
|
|
|
|
// -----------------------------
|
|
// Setting Menu
|
|
// -----------------------------
|
|
// アクセスパターン
|
|
SelectableValue<NamedValue<int> > access_pattern;
|
|
access_pattern.Add(*(new NamedValue<int> ("INC", 0)));
|
|
access_pattern.Add(*(new NamedValue<int> ("DEC", 1)));
|
|
access_pattern.Add(*(new NamedValue<int> ("COMP", 2)));
|
|
access_pattern.Add(*(new NamedValue<int> ("RAMDOM1", 3)));
|
|
access_pattern.Add(*(new NamedValue<int> ("RAMDOM2", 4)));
|
|
access_pattern.Add(*(new NamedValue<int> ("ID1", 5)));
|
|
access_pattern.Add(*(new NamedValue<int> ("ID2", 6)));
|
|
access_pattern.Add(*(new NamedValue<int> ("REPEAT", 7)));
|
|
menu.Register("Access Pattern", access_pattern);
|
|
|
|
// DMAタイプ
|
|
SelectableValue<NamedValue<int> > copy_type;
|
|
copy_type.Add(*(new NamedValue<int> ("Repeat", 0)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA0", 1)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA1", 2)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA2", 3)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA3", 4)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA4", 5)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA5", 6)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA6", 7)));
|
|
copy_type.Add(*(new NamedValue<int> ("DMA7", 8)));
|
|
copy_type.Add(*(new NamedValue<int> ("CPU", 9)));
|
|
menu.Register("Select DMA", copy_type);
|
|
|
|
// ループ
|
|
SelectableValue<NamedValue<int> > loop;
|
|
loop.Add(*(new NamedValue<int> ("Once", 0)));
|
|
loop.Add(*(new NamedValue<int> ("Repeat", 1)));
|
|
menu.Register("Loop", loop);
|
|
|
|
// リードカウント
|
|
SelectableValue<NamedValue<int> > read_count;
|
|
read_count.Add(*(new NamedValue<int> ("10000", 0)));
|
|
read_count.Add(*(new NamedValue<int> ("100000", 1)));
|
|
read_count.Add(*(new NamedValue<int> ("1000000", 2)));
|
|
read_count.Add(*(new NamedValue<int> ("10000000", 3)));
|
|
menu.Register("Read Count", read_count);
|
|
|
|
// バックアップメモリ
|
|
SelectableValue<NamedValue<int> > backup_mem;
|
|
backup_mem.Add(*(new NamedValue<int> ("No", 0)));
|
|
backup_mem.Add(*(new NamedValue<int> ("64K EEP", 1)));
|
|
backup_mem.Add(*(new NamedValue<int> ("1M Flash", 2)));
|
|
backup_mem.Add(*(new NamedValue<int> ("4M Fash", 3)));
|
|
menu.Register("Backup Memory", backup_mem);
|
|
// -----------------------------
|
|
// Setting Menu ここまで
|
|
// -----------------------------
|
|
|
|
VariableValue<u64> start_adr;
|
|
start_adr.SetShiftRange(16,0);
|
|
start_adr.SetShiftBitSize(4);
|
|
menu.Register("start address", start_adr);
|
|
|
|
VariableValue<u64> end_adr;
|
|
end_adr.SetShiftRange(16,0);
|
|
end_adr.SetShiftBitSize(4);
|
|
menu.Register("end address", end_adr);
|
|
|
|
|
|
KeyPad& pad = KeyPad::GetInstance();
|
|
|
|
while (1)
|
|
{
|
|
pad.ReadKey();
|
|
page.Show(Display::GetInstance(Display::Lower));
|
|
|
|
if (pad.IsTrigger(KeyPad::B))
|
|
{
|
|
Display::GetInstance(Display::Lower).Clear();
|
|
Display::GetInstance(Display::Lower).SwapBuffer();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
class ReadSpeedRom: public CardTestProgram
|
|
{
|
|
public:
|
|
virtual void Execute()
|
|
{
|
|
Page page;
|
|
|
|
Label title;
|
|
title.X = 20;
|
|
title.Y = 10;
|
|
title.Text = "Read Speed";
|
|
page.Add(title);
|
|
|
|
Label result[7];
|
|
for(int i=0; i<7; i++)
|
|
{
|
|
result[i].X = 50;
|
|
result[i].Y = 50 + 20 * i;
|
|
result[i].Text = "* Page: ** MByte/s";
|
|
page.Add(result[i]);
|
|
}
|
|
|
|
KeyPad& pad = KeyPad::GetInstance();
|
|
|
|
while (1)
|
|
{
|
|
pad.ReadKey();
|
|
page.Show(Display::GetInstance(Display::Lower));
|
|
|
|
if (pad.IsTrigger(KeyPad::B))
|
|
{
|
|
Display::GetInstance(Display::Lower).Clear();
|
|
Display::GetInstance(Display::Lower).SwapBuffer();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
class ReadOnlyRom: public CardTestProgram
|
|
{
|
|
public:
|
|
virtual void Execute()
|
|
{
|
|
Page page;
|
|
|
|
Label title;
|
|
title.X = 20;
|
|
title.Y = 10;
|
|
title.Text = "Read Only";
|
|
page.Add(title);
|
|
|
|
VariableSelector menu;
|
|
menu.X = 30;
|
|
menu.Y = 50;
|
|
page.Add(menu);
|
|
|
|
SelectableValue<NamedValue<int> > read_command;
|
|
read_command.Add(*(new NamedValue<int> ("RD_SEQ_PAGE", 0)));
|
|
read_command.Add(*(new NamedValue<int> ("RD_ID1", 1)));
|
|
read_command.Add(*(new NamedValue<int> ("RD_ID2", 2)));
|
|
menu.Register("CMD", read_command);
|
|
|
|
KeyPad& pad = KeyPad::GetInstance();
|
|
|
|
while (1)
|
|
{
|
|
pad.ReadKey();
|
|
page.Show(Display::GetInstance(Display::Lower));
|
|
|
|
if (pad.IsTrigger(KeyPad::B))
|
|
{
|
|
Display::GetInstance(Display::Lower).Clear();
|
|
Display::GetInstance(Display::Lower).SwapBuffer();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
#define ID_NUM 3
|
|
|
|
class ReliabilityTestForRom: public CardTestProgram
|
|
{
|
|
virtual void Execute()
|
|
{
|
|
Page page;
|
|
|
|
Label title;
|
|
title.X = 20;
|
|
title.Y = 10;
|
|
title.Text = "Reliability Test for Rom";
|
|
page.Add(title);
|
|
|
|
Label date;
|
|
date.X = 250;
|
|
date.Y = 20;
|
|
date.Text = __DATE__;
|
|
page.Add(date);
|
|
|
|
Selector<CardTestProgram> menu;
|
|
menu.X = 20;
|
|
menu.Y = 40;
|
|
page.Add(menu);
|
|
|
|
menu.Register("Aging Test", *(new AgingTestRom()));
|
|
menu.Register("Read Test", *(new ReadTestRom()));
|
|
|
|
menu.Register("Read Speed", *(new ReadSpeedRom()));
|
|
menu.Register("Read Only", *(new ReadOnlyRom()));
|
|
|
|
Label crc;
|
|
crc.X = 20;
|
|
crc.Y = 200;
|
|
crc.Text = "CRC : *******";
|
|
page.Add(crc);
|
|
|
|
Label id[ID_NUM];
|
|
for(int i=0; i<ID_NUM; i++)
|
|
{
|
|
id[i].X = 20 + 100 * i;
|
|
id[i].Y = 210;
|
|
|
|
id[i].Text = "ID : *******";
|
|
page.Add(id[i]);
|
|
}
|
|
|
|
while (1)
|
|
{
|
|
page.Show(Display::GetInstance(Display::Upper));
|
|
|
|
if (menu.Selected)
|
|
{
|
|
menu.GetSelectedItem()->Execute();
|
|
menu.Selected = false;
|
|
}
|
|
|
|
if (menu.Canceled)
|
|
{
|
|
menu.Canceled = false;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|