mirror of
https://github.com/trabucayre/openFPGALoader.git
synced 2026-08-30 09:59:03 +02:00
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
// SPDX-License-Identifier: Apache-2.0
|
|||
/*
|
|||
* Copyright (C) 2019-2025 Gwenhael Goavec-Merou <[email protected]>
|
|||
*/
|
|||
|
|
|
||
|
|
#ifndef MCSPARSER_HPP
|
||
|
|
#define MCSPARSER_HPP
|
||
|
|
|
||
#include <string>
|
|||
#include <vector>
|
|||
|
|
#include <memory>
|
||
|
|||
#include "configBitstreamParser.hpp"
|
|||
#include "spiFlash.hpp"
|
|||
|
|||
|
|
class McsParser: public ConfigBitstreamParser {
|
||
|
|
public:
|
||
McsParser(const std::string &filename, bool reverseOrder, bool verbose);
|
|||
|
|
int parse() override;
|
||
|
|||
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; }
|
||
|
|
|
||
private:
|
|||
|
|
int _base_addr;
|
||
bool _reverseOrder;
|
|||
std::vector<FlashDataSection> _records;
|
|||
};
|
|||
|
|
|
||
|
|
#endif
|
||
|
|
|