121 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFile_withoutModules.map");
123 std::string metaDataNameToRetrieve;
124 std::string retrievedValue;
126 metaDataNameToRetrieve =
"HW_VERSION";
127 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
128 BOOST_CHECK(retrievedValue ==
"1.6");
130 metaDataNameToRetrieve =
"FW_VERSION";
131 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
132 BOOST_CHECK(retrievedValue ==
"2.5");
137 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents;
138 RegisterInfoents.emplace_back(
"WORD_FIRMWARE", 0x00000001, 0x00000000, 0x00000004, 0x0, 32, 0,
true);
139 RegisterInfoents.emplace_back(
"WORD_COMPILATION", 0x00000001, 0x00000004, 0x00000004, 0x00000000, 32, 0,
true);
140 RegisterInfoents.emplace_back(
"WORD_STATUS", 0x00000001, 0x00000008, 0x00000004, 0x00000000, 32, 0,
true);
141 RegisterInfoents.emplace_back(
"WORD_USER1", 0x00000001, 0x0000000C, 0x00000004, 0x00000000, 32, 0,
true);
142 RegisterInfoents.emplace_back(
"WORD_USER2", 0x00000001, 0x00000010, 0x00000004, 0x00000000, 32, 0,
false);
145 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
146 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
147 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32}},
148 NumericAddressedRegisterInfo::Access::READ_WRITE, {}));
150 RegisterInfoents.emplace_back(
152 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {}));
172 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFile.map");
174 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 22);
176 std::string metaDataNameToRetrieve;
177 std::string retrievedValue;
179 metaDataNameToRetrieve =
"HW_VERSION";
180 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
181 BOOST_CHECK(retrievedValue ==
"1.6");
183 metaDataNameToRetrieve =
"FW_VERSION";
184 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
185 BOOST_CHECK(retrievedValue ==
"2.5");
187 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(22);
189 RegisterInfoents[0] =
191 RegisterInfoents[1] =
193 RegisterInfoents[2] =
195 RegisterInfoents[3] =
199 RegisterInfoents[6] =
201 RegisterInfoents[7] =
203 RegisterInfoents[8] =
205 RegisterInfoents[9] =
207 RegisterInfoents[10] =
210 "MODULE1.WORD_USER3", 0x01, 0x28, 0x04, 0x01, 18, 5,
false, NumericAddressedRegisterInfo::Access::READ_ONLY);
211 RegisterInfoents[12] =
213 RegisterInfoents[13] =
215 RegisterInfoents[14] =
218 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
220 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
221 RegisterInfoents[17] =
223 RegisterInfoents[18] =
226 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {3});
228 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {2});
230 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {6});
266 auto [regcat, mdcat] = fileparser.
parse(
"interruptMapFile.map");
268 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(13);
271 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {0});
274 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 1});
277 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {2, 2, 2});
280 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {20});
282 RegisterInfoents[4] =
284 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {21, 1});
286 RegisterInfoents[5] =
288 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {22, 3, 4});
290 RegisterInfoents[6] =
292 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {3});
294 RegisterInfoents[7] =
296 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {3});
299 0,
false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
302 true, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
304 RegisterInfoents[10] =
306 NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {4});
309 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
310 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32},
311 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
false,
DataType::int32}},
312 NumericAddressedRegisterInfo::Access::INTERRUPT, {5});
314 RegisterInfoents[12] =
316 true, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {5});
325 auto [regcat, mdcat] = map_file_parser.
parse(
"goodMapFileWithComments.map");
327 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 22);
329 std::string metaDataNameToRetrieve;
330 std::string retrievedValue;
332 metaDataNameToRetrieve =
"HW_VERSION";
333 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
334 BOOST_CHECK(retrievedValue ==
"1.6");
336 metaDataNameToRetrieve =
"FW_VERSION";
337 retrievedValue = mdcat.getMetadata(metaDataNameToRetrieve);
338 BOOST_CHECK(retrievedValue ==
"2.5");
340 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(22);
342 RegisterInfoents[0] =
344 RegisterInfoents[1] =
346 RegisterInfoents[2] =
348 RegisterInfoents[3] =
352 RegisterInfoents[6] =
354 RegisterInfoents[7] =
356 RegisterInfoents[8] =
358 RegisterInfoents[9] =
360 RegisterInfoents[10] =
363 "MODULE1.WORD_USER3", 0x01, 0x28, 0x04, 0x01, 18, 5,
false, NumericAddressedRegisterInfo::Access::READ_ONLY);
364 RegisterInfoents[12] =
366 RegisterInfoents[13] =
368 RegisterInfoents[14] =
371 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
373 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::IEEE754);
374 RegisterInfoents[17] =
376 RegisterInfoents[18] =
379 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 3});
381 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::VOID, {1, 2});
383 false, NumericAddressedRegisterInfo::Access::INTERRUPT, NumericAddressedRegisterInfo::Type::FIXED_POINT, {5, 6});
392 auto [regcat, mdcat] = map_file_parser.
parse(
"newSequences.mapp");
394 BOOST_CHECK_EQUAL(regcat.getNumberOfRegisters(), 18);
396 std::vector<ChimeraTK::NumericAddressedRegisterInfo> RegisterInfoents(18);
398 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"int32")},
399 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"int32")},
400 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"int32")}},
401 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
404 true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
407 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
408 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
409 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")}},
410 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
413 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
416 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
417 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
418 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")}},
419 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
422 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
425 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"int32")},
426 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"int32")},
427 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"int32")}},
428 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
430 RegisterInfoents[7] =
432 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
435 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"int8")},
436 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"int8")},
437 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"int8")}},
438 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
440 RegisterInfoents[9] =
442 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
445 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 1,
true,
ChimeraTK::DataType(
"int16")},
446 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 2,
true,
ChimeraTK::DataType(
"int16")},
447 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 3,
true,
ChimeraTK::DataType(
"int16")}},
448 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
450 RegisterInfoents[11] =
452 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
455 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
456 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
457 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
458 {48, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
459 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
460 {80, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
461 {96, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
462 {112, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
463 {128, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
464 {144, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
465 {160, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
466 {176, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
467 {192, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
468 {208, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
469 {224, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")},
470 {240, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, -2,
true,
ChimeraTK::DataType(
"int16")}},
471 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
474 0,
true, NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
477 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
478 {8, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
479 {24, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"int32")},
480 {56, NumericAddressedRegisterInfo::Type::FIXED_POINT, 64, 0,
true,
ChimeraTK::DataType(
"int64")}},
481 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
483 RegisterInfoents[15] =
485 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});
488 {{0, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
489 {16, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
490 {32, NumericAddressedRegisterInfo::Type::FIXED_POINT, 18, 0,
true,
ChimeraTK::DataType(
"int32")},
491 {64, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
492 {80, NumericAddressedRegisterInfo::Type::FIXED_POINT, 16, 0,
true,
ChimeraTK::DataType(
"int16")},
493 {96, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int16")},
494 {112, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int16")},
495 {128, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
496 {136, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
497 {144, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
498 {152, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int8")},
499 {160, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int32")},
500 {192, NumericAddressedRegisterInfo::Type::FIXED_POINT, 8, 0,
true,
ChimeraTK::DataType(
"int32")},
501 {224, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
true,
ChimeraTK::DataType(
"int32")},
502 {256, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"int32")},
503 {288, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"int32")},
504 {320, NumericAddressedRegisterInfo::Type::FIXED_POINT, 32, 0,
false,
ChimeraTK::DataType(
"int32")}},
505 NumericAddressedRegisterInfo::Access::READ_WRITE, {});
507 RegisterInfoents[17] =
509 NumericAddressedRegisterInfo::Access::READ_WRITE, NumericAddressedRegisterInfo::Type::FIXED_POINT, {});