#include "nakayama.h" using namespace nn::red::nakayama; class AgingTestRWMem: 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 > access_pattern; access_pattern.Add(*(new NamedValue ("INC", 0))); access_pattern.Add(*(new NamedValue ("DEC", 1))); access_pattern.Add(*(new NamedValue ("COMP", 2))); access_pattern.Add(*(new NamedValue ("RAMDOM1", 3))); access_pattern.Add(*(new NamedValue ("RAMDOM2", 4))); access_pattern.Add(*(new NamedValue ("ID1", 5))); access_pattern.Add(*(new NamedValue ("ID2", 6))); access_pattern.Add(*(new NamedValue ("REPEAT", 7))); menu.Register("Access Pattern", access_pattern); // DMAタイプ SelectableValue > copy_type; copy_type.Add(*(new NamedValue ("Repeat", 0))); copy_type.Add(*(new NamedValue ("DMA0", 1))); copy_type.Add(*(new NamedValue ("DMA1", 2))); copy_type.Add(*(new NamedValue ("DMA2", 3))); copy_type.Add(*(new NamedValue ("DMA3", 4))); copy_type.Add(*(new NamedValue ("DMA4", 5))); copy_type.Add(*(new NamedValue ("DMA5", 6))); copy_type.Add(*(new NamedValue ("DMA6", 7))); copy_type.Add(*(new NamedValue ("DMA7", 8))); copy_type.Add(*(new NamedValue ("CPU", 9))); menu.Register("Select DMA", copy_type); // ループ SelectableValue > loop; loop.Add(*(new NamedValue ("Once", 0))); loop.Add(*(new NamedValue ("Repeat", 1))); menu.Register("Loop", loop); // リードカウント SelectableValue > read_count; read_count.Add(*(new NamedValue ("10000", 0))); read_count.Add(*(new NamedValue ("100000", 1))); read_count.Add(*(new NamedValue ("1000000", 2))); read_count.Add(*(new NamedValue ("10000000", 3))); menu.Register("Read Count", read_count); // バックアップメモリ SelectableValue > write_data; write_data.Add(*(new NamedValue ("0x0000", 0))); write_data.Add(*(new NamedValue ("0x55AA", 1))); write_data.Add(*(new NamedValue ("0x00FF", 2))); write_data.Add(*(new NamedValue ("0xFFFF", 3))); write_data.Add(*(new NamedValue ("DEC", 4))); write_data.Add(*(new NamedValue ("INC", 5))); write_data.Add(*(new NamedValue ("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 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 // ----------------------------- // ----------------------------- // Setting Menu ここまで // ----------------------------- VariableValue start_adr; start_adr.SetShiftRange(16,0); start_adr.SetShiftBitSize(4); menu.Register("start address", start_adr); VariableValue 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 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 = "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 start_adr; start_adr.SetShiftRange(16,0); start_adr.SetShiftBitSize(4); menu.Register("start address", start_adr); VariableValue 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 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 WriteSpeedRWMem: public CardTestProgram { 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 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 > read_command; read_command.Add(*(new NamedValue ("RD_SEQ_PAGE", 0))); read_command.Add(*(new NamedValue ("RD_ID1", 1))); read_command.Add(*(new NamedValue ("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 CardTestProgram { 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 > read_command; read_command.Add(*(new NamedValue ("RD_SEQ_PAGE", 0))); read_command.Add(*(new NamedValue ("RD_ID1", 1))); read_command.Add(*(new NamedValue ("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 CardTestProgram { 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 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; iExecute(); menu.Selected = false; } if (menu.Canceled) { menu.Canceled = false; break; } } }; };