#include "FecContainer.h" int main( int argc, char** argv ) { FecContainer *fc = new FecContainer(10<<7); int altro1 = 2; int altro2 = 6; // board controller register fc->fillBc((uint32_t)0xdeadbeef); // altro register for(uint32_t i = 0; i < 10; i++) fc->fillAltro(altro1, (uint32_t)i); for(uint32_t i = 0; i < 10; i++) fc->fillAltro(altro2, (uint32_t)i); for(uint32_t i = 0; i < 18; i+=3){ fc->fillPedMem(altro1, 15, (uint32_t)i, (uint32_t)(i+1), (uint32_t)(i+2)); fc->fillPedMem(altro2, 15, (uint32_t)i, (uint32_t)(i+1), (uint32_t)(i+2)); } char buffer[12]; buffer[0] = 0; buffer[1] = 0; buffer[2] = 1; buffer[3] = 0; buffer[4] = 2; buffer[5] = 0; buffer[6] = 3; buffer[7] = 0; buffer[8] = 4; buffer[9] = 0; buffer[10] = 5; buffer[11] = 0; fc->fillPedMem(altro1, 15, buffer, 12); fc->fillPedMem(altro2, 15, buffer, 12); cout.setf( ios::hex, ios::basefield ); cout << "====================================" << endl; fc->finalize(); uint32_t *mem = fc->getDataBlock(); for(uint32_t i = 0; i < fc->size(); i++){ cout << i << ": 0x" << mem[i] << endl; } cout << "====================================" << endl; cout << "Total Size : " << fc->size() << endl; cout << "Size CE Block : " << fc->size()-4 << endl; cout << "====================================" << endl; uint64_t data2 = 0; int p[2] = {0x12345678, 0xdeadbeef}; data2 = p[1]; data2 = data2 << 32; data2 = data2 | p[0]; // once more fc->reset(); fc->setHardwareAddress(10<<7); // board controller register fc->fillBc((uint32_t)0x0fec); fc->fillBc(data2); cout.setf( ios::hex, ios::basefield ); cout << "====================================" << endl; fc->finalize(); mem = fc->getDataBlock(); for(uint32_t i = 0; i < fc->size(); i++){ cout << i << ": 0x" << mem[i] << endl; } cout << "====================================" << endl; cout << "Total Size : " << fc->size() << endl; cout << "Size CE Block : " << fc->size()-4 << endl; cout << "====================================" << endl; // Test STORE fc->reset(); fc->setHardwareAddress(10<<7); // altro register for(uint32_t i = 0; i < 4; i++) { fc->fillAltro(altro1, (uint32_t)i); fc->fillAltro(altro1, (uint32_t)0xbeef); } for(uint32_t i = 0; i < 4; i++) { fc->fillAltro(altro2, (uint32_t)i); fc->fillAltro(altro2, (uint32_t)0xdeaf); } cout.setf( ios::hex, ios::basefield ); cout << "====================================" << endl; fc->setAltroInstructionStore(); fc->finalize(); mem = fc->getDataBlock(); for(uint32_t i = 0; i < fc->size(); i++){ cout << i << ": 0x" << mem[i] << endl; } cout << "====================================" << endl; cout << "Total Size : " << fc->size() << endl; cout << "Size CE Block : " << fc->size()-4 << endl; cout << "====================================" << endl; delete fc; fc = 0; }