・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:
(no author) 2010-02-17 12:30:45 +00:00
parent fa6e7597d5
commit c6be5c1b6b
3 changed files with 924 additions and 0 deletions

View 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;
}
}
};
};

View 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;
}
}
};
};

View 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;
}
}
};
};