genericmemoryspacecheck.cpp
61 lines
| 2.0 KiB
| text/x-c
|
CppLexer
/ memctrlrplugin / genericmemoryspacecheck.cpp
r0 | #include "genericmemoryspacecheck.h" | |||
genericmemoryspacecheck::genericmemoryspacecheck( const QString Name, unsigned int baseAddress, unsigned int size,QWidget *parent): | ||||
QWidget(parent) | ||||
{ | ||||
this->mainLayout = new QVBoxLayout; | ||||
this->secondLayout = new QHBoxLayout; | ||||
this->MemoryName = new QLabel(Name); | ||||
this->AddrQHspBx = new QHexSpinBox; | ||||
this->AddrQHspBx->setValue(baseAddress); | ||||
this->MemSize=new MemSizeWdgt(size); | ||||
this->LaunchtestQPB = new QPushButton(tr("Start Test")); | ||||
this->result = new QLabel(tr("Test result: Start test")); | ||||
this->mainLayout->addWidget(this->MemoryName); | ||||
this->secondLayout->addWidget(this->AddrQHspBx); | ||||
this->secondLayout->addWidget(this->MemSize); | ||||
this->secondLayout->addWidget(this->LaunchtestQPB); | ||||
this->mainLayout->addLayout(this->secondLayout); | ||||
this->mainLayout->addWidget(this->result); | ||||
this->setLayout(this->mainLayout); | ||||
connect(this->LaunchtestQPB,SIGNAL(clicked()),this,SLOT(launchTestSlt())); | ||||
} | ||||
bool genericmemoryspacecheck::launchTest(genericmemoryspacecheck* instance,unsigned int baseAddress,unsigned int size) | ||||
{ | ||||
unsigned int* dataLocal = (unsigned int*)malloc(size); | ||||
unsigned int* dataOnBoard = (unsigned int*)malloc(size); | ||||
bool res=true; | ||||
for(int i=0;(unsigned int)i<(size>>2);i++) | ||||
{ | ||||
dataLocal[i]= (0xFFFF&rand())+(rand()<<16); | ||||
} | ||||
emit instance->WriteSig(dataLocal,size>>2,baseAddress); | ||||
emit instance->ReadSig(dataOnBoard,size>>2,baseAddress); | ||||
for(int i=0;(unsigned int)i<(size>>2);i++) | ||||
{ | ||||
if(dataLocal[i]!=dataOnBoard[i]) | ||||
res=false; | ||||
} | ||||
free(dataLocal); | ||||
free(dataOnBoard); | ||||
return res; | ||||
} | ||||
void genericmemoryspacecheck::launchTestSlt() | ||||
{ | ||||
this->result->setText(tr("Test result: Pending")); | ||||
if(this->launchTest(this,this->AddrQHspBx->value(),this->MemSize->getsize())) | ||||
this->result->setText(tr("Test result: Success")); | ||||
else | ||||
this->result->setText(tr("Test result: failed")); | ||||
} | ||||