mirror of
https://github.com/rvtr/ctr_card_test.git
synced 2025-06-18 22:55:46 -04:00
・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
This commit is contained in:
parent
fa6e7597d5
commit
c6be5c1b6b
55
trunk/BackupMemoryTest.cpp
Normal file
55
trunk/BackupMemoryTest.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
#include "nakayama.h"
|
||||
|
||||
using namespace nn::red::nakayama;
|
||||
|
||||
class BackupMemoryTest : public Program
|
||||
{
|
||||
virtual void Execute()
|
||||
{
|
||||
Page page;
|
||||
|
||||
Label title;
|
||||
title.X = 20;
|
||||
title.Y = 10;
|
||||
title.Text = "Backup Memory 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)
|
||||
{
|
||||
menu.Selected = false;
|
||||
}
|
||||
|
||||
if(menu.Canceled)
|
||||
{
|
||||
menu.Canceled = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
494
trunk/ReliabilityTestForRWMemory.cpp
Normal file
494
trunk/ReliabilityTestForRWMemory.cpp
Normal file
@ -0,0 +1,494 @@
|
||||
#include "nakayama.h"
|
||||
|
||||
using namespace nn::red::nakayama;
|
||||
|
||||
class AgingTestRWMem: 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> > write_data;
|
||||
write_data.Add(*(new NamedValue<int> ("0x0000", 0)));
|
||||
write_data.Add(*(new NamedValue<int> ("0x55AA", 1)));
|
||||
write_data.Add(*(new NamedValue<int> ("0x00FF", 2)));
|
||||
write_data.Add(*(new NamedValue<int> ("0xFFFF", 3)));
|
||||
write_data.Add(*(new NamedValue<int> ("DEC", 4)));
|
||||
write_data.Add(*(new NamedValue<int> ("INC", 5)));
|
||||
write_data.Add(*(new NamedValue<int> ("Repeat", 6)));
|
||||
menu.Register("Write Data", write_data);
|
||||
// -----------------------------
|
||||
// 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 ReadTestRWMem: 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
|
||||
// -----------------------------
|
||||
|
||||
// -----------------------------
|
||||
// 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 WriteTestRWMem: 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 = "Write 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
|
||||
// -----------------------------
|
||||
|
||||
// -----------------------------
|
||||
// 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 ReadSpeedRWMem: 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 WriteSpeedRWMem: public Program
|
||||
{
|
||||
public:
|
||||
virtual void Execute()
|
||||
{
|
||||
Page page;
|
||||
|
||||
Label title;
|
||||
title.X = 20;
|
||||
title.Y = 10;
|
||||
title.Text = "Write 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 ReadOnlyRWMem: 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;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
class WriteOnlyRWMem: public Program
|
||||
{
|
||||
public:
|
||||
virtual void Execute()
|
||||
{
|
||||
Page page;
|
||||
|
||||
Label title;
|
||||
title.X = 20;
|
||||
title.Y = 10;
|
||||
title.Text = "Write 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 ReliabilityTestForRWMemory: public Program
|
||||
{
|
||||
virtual void Execute()
|
||||
{
|
||||
Page page;
|
||||
|
||||
Label title;
|
||||
title.X = 20;
|
||||
title.Y = 10;
|
||||
title.Text = "Reliability Test for R/W Memory";
|
||||
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 AgingTestRWMem()));
|
||||
|
||||
|
||||
menu.Register("Read Test", *(new ReadTestRWMem()));
|
||||
menu.Register("Write Test", *(new WriteTestRWMem()));
|
||||
|
||||
menu.Register("Read Speed", *(new ReadSpeedRWMem()));
|
||||
menu.Register("Write Speed", *(new WriteSpeedRWMem()));
|
||||
|
||||
menu.Register("Read Only", *(new ReadOnlyRWMem()));
|
||||
menu.Register("Write Only", *(new WriteOnlyRWMem()));
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
375
trunk/ReliabilityTestForRom.cpp
Normal file
375
trunk/ReliabilityTestForRom.cpp
Normal file
@ -0,0 +1,375 @@
|
||||
#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;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user