openFPGALoader/src/mcsParser.hpp

36 lines
1.1 KiB
C++
Raw Normal View History

2021-06-26 15:24:07 +02:00
// SPDX-License-Identifier: Apache-2.0
2019-10-05 19:00:32 +02:00
/*
* Copyright (C) 2019-2025 Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
2019-10-05 19:00:32 +02:00
*/
#ifndef MCSPARSER_HPP
#define MCSPARSER_HPP
#include <string>
#include <vector>
#include <memory>
2019-10-05 19:00:32 +02:00
#include "configBitstreamParser.hpp"
#include "spiFlash.hpp"
2019-10-05 19:00:32 +02:00
class McsParser: public ConfigBitstreamParser {
public:
2020-08-19 16:53:49 +02:00
McsParser(const std::string &filename, bool reverseOrder, bool verbose);
int parse() override;
2019-10-05 19:00:32 +02:00
size_t getRecordCount() const noexcept { return _records.size(); }
const FlashDataSection &getRecord(size_t record_id) const { return _records.at(record_id); }
const std::vector<uint8_t> &getRecordData(size_t record_id) const { return _records.at(record_id).getRecord(); }
uint32_t getRecordBaseAddr(size_t record_id) const { return _records.at(record_id).getStartAddr(); }
size_t getRecordLength(size_t record_id) const { return _records.at(record_id).getLength(); }
const std::vector<FlashDataSection> &getRecords() const noexcept { return _records; }
2019-10-05 19:00:32 +02:00
private:
int _base_addr;
bool _reverseOrder;
std::vector<FlashDataSection> _records;
2019-10-05 19:00:32 +02:00
};
#endif