122 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFile_withoutModules.map");
124 std::string metaDataNameToRetrieve;
125 std::string retrievedValue;
127 metaDataNameToRetrieve =
"HW_VERSION";
128 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
129 BOOST_CHECK(retrievedValue ==
"1.6");
131 metaDataNameToRetrieve =
"FW_VERSION";
132 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
133 BOOST_CHECK(retrievedValue ==
"2.5");
138 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents;
139 RegisterInfoents.emplace_back(
"WORD_FIRMWARE", 0x00000001, 0x00000000, 0x00000004, 0x0, 32, 0,
true);
140 RegisterInfoents.emplace_back(
"WORD_COMPILATION", 0x00000001, 0x00000004, 0x00000004, 0x00000000, 32, 0,
true);
141 RegisterInfoents.emplace_back(
"WORD_STATUS", 0x00000001, 0x00000008, 0x00000004, 0x00000000, 32, 0,
true);
142 RegisterInfoents.emplace_back(
"WORD_USER1", 0x00000001, 0x0000000C, 0x00000004, 0x00000000, 32, 0,
true);
143 RegisterInfoents.emplace_back(
"WORD_USER2", 0x00000001, 0x00000010, 0x00000004, 0x00000000, 32, 0,
false);
146 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
147 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
148 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32}},
149 NumericAddressedRegisterInfo::Access::READ_WRITE, {}));
151 RegisterInfoents.emplace_back(
153 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {}));
173 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFile.map");
175 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 22);
177 std::string metaDataNameToRetrieve;
178 std::string retrievedValue;
180 metaDataNameToRetrieve =
"HW_VERSION";
181 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
182 BOOST_CHECK(retrievedValue ==
"1.6");
184 metaDataNameToRetrieve =
"FW_VERSION";
185 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
186 BOOST_CHECK(retrievedValue ==
"2.5");
188 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(22);
190 RegisterInfoents[0] =
192 RegisterInfoents[1] =
194 RegisterInfoents[2] =
196 RegisterInfoents[3] =
200 RegisterInfoents[6] =
202 RegisterInfoents[7] =
204 RegisterInfoents[8] =
206 RegisterInfoents[9] =
208 RegisterInfoents[10] =
211 "MODULE1.WORD_USER3", 0x01, 0x28, 0x04, 0x01, 18, 5,
false, NumericAddressedRegisterInfo::Access::READ_ONLY);
212 RegisterInfoents[12] =
214 RegisterInfoents[13] =
216 RegisterInfoents[14] =
219 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
221 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
222 RegisterInfoents[17] =
224 RegisterInfoents[18] =
227 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {3});
229 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {2});
231 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {6});
267 auto [regcat, mdcat] = fileparser.
parse(
"interruptMapFile.map");
269 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(13);
272 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {0});
275 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 1});
278 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {2, 2, 2});
281 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {20});
283 RegisterInfoents[4] =
285 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {21, 1});
287 RegisterInfoents[5] =
289 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {22, 3, 4});
291 RegisterInfoents[6] =
293 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {3});
295 RegisterInfoents[7] =
297 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {3});
300 0,
false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
303 true, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
305 RegisterInfoents[10] =
307 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
310 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
311 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
312 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32}},
313 NumericAddressedRegisterInfo::Access::INTERRUPT, {5});
315 RegisterInfoents[12] =
317 true, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {5});
326 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFileWithComments.map");
328 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 22);
330 std::string metaDataNameToRetrieve;
331 std::string retrievedValue;
333 metaDataNameToRetrieve =
"HW_VERSION";
334 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
335 BOOST_CHECK(retrievedValue ==
"1.6");
337 metaDataNameToRetrieve =
"FW_VERSION";
338 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
339 BOOST_CHECK(retrievedValue ==
"2.5");
341 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(22);
343 RegisterInfoents[0] =
345 RegisterInfoents[1] =
347 RegisterInfoents[2] =
349 RegisterInfoents[3] =
353 RegisterInfoents[6] =
355 RegisterInfoents[7] =
357 RegisterInfoents[8] =
359 RegisterInfoents[9] =
361 RegisterInfoents[10] =
364 "MODULE1.WORD_USER3", 0x01, 0x28, 0x04, 0x01, 18, 5,
false, NumericAddressedRegisterInfo::Access::READ_ONLY);
365 RegisterInfoents[12] =
367 RegisterInfoents[13] =
369 RegisterInfoents[14] =
372 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
374 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
375 RegisterInfoents[17] =
377 RegisterInfoents[18] =
380 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 3});
382 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 2});
384 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {5, 6});
393 auto [regcat, mdcat] = map_file_parser.
parse(
"newSequences.mapp");
395 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 18);
397 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(18);
399 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"uint32")},
400 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"uint32")},
401 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"uint32")}},
402 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
405 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
408 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
409 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
410 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")}},
411 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
414 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
417 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
418 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
419 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")}},
420 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
423 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
426 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"uint32")},
427 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"uint32")},
428 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"uint32")}},
429 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
431 RegisterInfoents[7] =
433 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
436 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"uint32")},
437 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"uint32")},
438 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"uint32")}},
439 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
441 RegisterInfoents[9] =
443 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
446 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"uint32")},
447 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"uint32")},
448 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"uint32")}},
449 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
451 RegisterInfoents[11] =
453 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
456 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
457 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
458 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
459 {48, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
460 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
461 {80, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
462 {96, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
463 {112, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
464 {128, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
465 {144, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
466 {160, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
467 {176, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
468 {192, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
469 {208, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
470 {224, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")},
471 {240, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"uint32")}},
472 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
475 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
478 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
479 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
480 {24, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"uint32")},
481 {56, NumericAddressedRegisterInfo::Type::FIXED_POINT, 64, 0,
true,
ChimeraTK::DataType(
"uint32")}},
482 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
484 RegisterInfoents[15] =
486 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
489 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
490 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
491 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 18, 0,
true,
ChimeraTK::DataType(
"uint32")},
492 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
493 {80, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"uint32")},
494 {96, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
495 {112, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
496 {128, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
497 {136, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
498 {144, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
499 {152, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
500 {160, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
501 {192, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"uint32")},
502 {224, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"uint32")},
503 {256, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"uint32")},
504 {288, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"uint32")},
505 {320, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"uint32")}},
506 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
508 RegisterInfoents[17] =
510 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});