ctr_card_test/trunk/ReliabilityTestForRom.cpp
(no author) c6be5c1b6b ・BackupMemory Test
・Reliability Test(Rom/RWMemory)
のソースファイルを追加

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_card_test@2 ff8ce827-af98-4349-adb5-4c00699b5328
2010-02-17 12:30:45 +00:00

376 lines
10 KiB
C++

#include "nakayama.h"
using namespace nn::red::nakayama;
class AgingTestRom: public Program
{
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 Program
{
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 Program
{
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 Program
{
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 Program
{
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<Program> 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;
}
}
};
};