|
|
#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"));
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|