/////////////////////////////////////////////////////////// // SystemFactory.cpp // Implementation of the Class SystemFactory // Created on: 29-1-2011 20:58:19 // Original author: Ueno /////////////////////////////////////////////////////////// #include "SystemFactory.h" #include "DumpMemory.h" #include #include "EE_LIB/HAL/IO/IOPin.h" #include "EE_LIB/HAL/IntervalTimer/TimerWD.h" #include "EE_LIB/HAL/Interrupt/Priority.h" #include "EE_LIB/HAL/IO/Pod.h" #if defined(DMA_M) #include "EE_LIB/HAL/Communication/SCIUsingDMA.h" #endif #if defined(SCI_M) #include "EE_LIB/HAL/Communication/SCIUsingInterrupt.h" #endif #include "EE_LIB/OSWrapper/Task/OSTimer.h" #include "EE_LIB/OSWrapper/Task/TaskFactory.h" #include "EE_LIB/Util/Primitive/Format.h" #include "EE_LIB/Unit/Communication/Com.h" #include "EE_LIB/Util/CommandInterpreter/CommandInterpreter.h" #include "EE_LIB/Util/CommandInterpreter/ExceptionCommand.h" using APPLI::SystemFactory; SystemFactory::SystemFactory(){} SystemFactory::~SystemFactory(){} void SystemFactory::wait() { volatile int a,b,c,ii,jj; for(a=10,b=20,jj=0; jj<7; jj++) {for(ii=0;ii<5000; ii++) {c=c*a+b;}} } void SystemFactory::startup() { EE_LIB::OSWrapper::Task::OSTimer osTimer; EE_LIB::HAL::IntervalTimer::TimerWD timer(EE_LIB::HAL::IntervalTimer::TimerWD::Timer0,500000UL,EE_LIB::HAL::Interrupt::PRIORITY_LOW,&osTimer); // 500uS周期 EE_LIB::HAL::Communication::SCI *sci; //=============== SCIの生成 ================ { EE_LIB::HAL::Communication::SCI::CommunicationParam cp; #if defined(EE_S2238) EE_LIB::HAL::Communication::SCI::SCIId id=EE_LIB::HAL::Communication::SCI::SCI2; #endif cp.cm=EE_LIB::HAL::Communication::SCI::SYNCHRONUS_TOTNOAL; cp.bps=EE_LIB::HAL::Communication::SCI::BPS_38400; cp.dl=EE_LIB::HAL::Communication::SCI::DL_8BIT; cp.sb=EE_LIB::HAL::Communication::SCI::SB1; cp.parity=EE_LIB::HAL::Communication::SCI::P_NONE; cp.mp=EE_LIB::HAL::Communication::SCI::MP_DISABLE; #if defined(SCI_M) sci=new EE_LIB::HAL::Communication::SCIUsingInterrupt(id,cp); #endif } // ============= 通信ポートの生成 ================== EE_LIB::Unit::Communication::Com com(sci,&osTimer); // ============= コマンドインタラプタの生成 ================== EE_LIB::Util::CommandInterpreter::ExceptionCommand ec; EE_LIB::Util::CommandInterpreter::CommandInterpreter ci(&com,&ec,"Prompt>","*** EE_Type_S 2238 Checker V1.0 ***"); DumpMemory dumpMemory; ci.addCommand(&dumpMemory); EE_LIB::OSWrapper::Task::TaskFactory::createTask(&ci,2,EE_LIB::OSWrapper::Task::Task::TP_Middle,&osTimer); // 2ms周期のタスク // ============= IOポートのテスト ================== EE_LIB::HAL::IO::Pod in; EE_LIB::HAL::IO::Pod out; bool bNG=false; bool bNG_Not_Reset=false; unsigned short i; unsigned short value; // Port4・Port1のテスト EE_LIB::HAL::IO::IOPin p40(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p41(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p42(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p43(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p44(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p45(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p46(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p47(EE_LIB::HAL::IO::IOPORT4,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p10(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p11(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p12(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p13(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p14(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p15(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p16(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p17(EE_LIB::HAL::IO::IOPORT1,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&p40); in.add(&p41); in.add(&p42); in.add(&p43); in.add(&p44); in.add(&p45); in.add(&p46); in.add(&p47); out.add(&p10); out.add(&p11); out.add(&p12); out.add(&p13); out.add(&p14); out.add(&p15); out.add(&p16); out.add(&p17); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("Port1 to Port4 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("Port1 to Port4 NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("Port1 to Port4 OK !"); com.send(&format,true); } // Port3・Port7のテスト bNG=false; EE_LIB::HAL::IO::IOPin p70(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p71(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p72(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p73(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p74(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p75(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p76(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p77(EE_LIB::HAL::IO::IOPORT7,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p30(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p31(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p32(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p33(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p34(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p35(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin p36(EE_LIB::HAL::IO::IOPORT3,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pg0(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&p70); in.add(&p71); in.add(&p72); in.add(&p73); in.add(&p74); in.add(&p75); in.add(&p76); in.add(&p77); out.add(&p30); out.add(&p31); out.add(&p32); out.add(&p33); out.add(&p34); out.add(&p35); out.add(&p36); out.add(&pg0); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("Port3 and PG0 to Port7 NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("Port3 and PG0 to Port7 NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("Port3 and PG0 to Port7 OK !"); com.send(&format,true); } // PortB・PortCのテスト bNG=false; EE_LIB::HAL::IO::IOPin pb0(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb1(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb2(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb3(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb4(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb5(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb6(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pb7(EE_LIB::HAL::IO::IOPORTB,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pc0(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc1(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc2(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc3(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc4(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc5(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc6(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pc7(EE_LIB::HAL::IO::IOPORTC,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pb0); in.add(&pb1); in.add(&pb2); in.add(&pb3); in.add(&pb4); in.add(&pb5); in.add(&pb6); in.add(&pb7); out.add(&pc0); out.add(&pc1); out.add(&pc2); out.add(&pc3); out.add(&pc4); out.add(&pc5); out.add(&pc6); out.add(&pc7); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortC to PortB NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortC to PortB NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortC to PortB OK !"); com.send(&format,true); } // PortD・PortEのテスト bNG=false; EE_LIB::HAL::IO::IOPin pd0(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd1(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd2(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd3(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd4(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd5(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd6(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pd7(EE_LIB::HAL::IO::IOPORTD,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pe0(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe1(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe2(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe3(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe4(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe5(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe6(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pe7(EE_LIB::HAL::IO::IOPORTE,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pd0); in.add(&pd1); in.add(&pd2); in.add(&pd3); in.add(&pd4); in.add(&pd5); in.add(&pd6); in.add(&pd7); out.add(&pe0); out.add(&pe1); out.add(&pe2); out.add(&pe3); out.add(&pe4); out.add(&pe5); out.add(&pe6); out.add(&pe7); for(i=0; i<256; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortE to PortD NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<256; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortE to PortD NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortE to PortD OK !"); com.send(&format,true); } // PortFのテスト bNG=false; EE_LIB::HAL::IO::IOPin pf0(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf1(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf2(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf3(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pf4(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pf5(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN5,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pf6(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pf7(EE_LIB::HAL::IO::IOPORTF,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); in.clear(); out.clear(); out.add(&pf0); out.add(&pf1); out.add(&pf2); out.add(&pf3); in.add(&pf4); in.add(&pf5); in.add(&pf6); in.add(&pf7); for(i=0; i<16; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortF NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<16; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortF NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortF OK !"); com.send(&format,true); } // Port9 PortA ・PortGのテスト bNG=false; EE_LIB::HAL::IO::IOPin pa0(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN0,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p96(EE_LIB::HAL::IO::IOPORT9,EE_LIB::HAL::IO::IOPIN6,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin p97(EE_LIB::HAL::IO::IOPORT9,EE_LIB::HAL::IO::IOPIN7,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pa3(EE_LIB::HAL::IO::IOPORTA,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_IN); EE_LIB::HAL::IO::IOPin pg1(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN1,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pg2(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN2,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pg3(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN3,EE_LIB::HAL::IO::IOPin::DIR_OUT); EE_LIB::HAL::IO::IOPin pg4(EE_LIB::HAL::IO::IOPORTG,EE_LIB::HAL::IO::IOPIN4,EE_LIB::HAL::IO::IOPin::DIR_OUT); in.clear(); out.clear(); in.add(&pa0); in.add(&p96); in.add(&p97); in.add(&pa3); out.add(&pg1); out.add(&pg2); out.add(&pg3); out.add(&pg4); for(i=0; i<16; i++) { out.set(i); value=in.get(); if(value != i) {bNG=true; break;} } if(bNG==true) { bNG_Not_Reset=true; EE_LIB::Util::Primitive::Format format("PortG to Port9 PortA NG ! out=%02x in=%02x",i,value); com.send(&format,true); { for(i=0; i<16; i++) { out.set(i); value=in.get(); { EE_LIB::Util::Primitive::Format format1("PortG to Port9 PortA NG ! out=%02x in=%02x",i,value); com.send(&format1,true); } } } } else { EE_LIB::Util::Primitive::Format format("PortG to Port9 PortA OK !"); com.send(&format,true); } if(bNG_Not_Reset==false) { EE_LIB::Util::Primitive::Format format("All Test Passed !"); com.send(&format,true); } while(-1) { pg0.set(0); wait(); pg0.set(1); wait(); } }