mcsParser: length must be in bit. Allows to store data in direct or reverse Byte order
This commit is contained in:
parent
dec69596d3
commit
64754604f6
|
|
@ -41,10 +41,10 @@ using namespace std;
|
||||||
#define TYPE_BASE 7
|
#define TYPE_BASE 7
|
||||||
#define DATA_BASE 9
|
#define DATA_BASE 9
|
||||||
|
|
||||||
McsParser::McsParser(string filename, bool verbose):
|
McsParser::McsParser(string filename, bool reverseOrder, bool verbose):
|
||||||
ConfigBitstreamParser(filename, ConfigBitstreamParser::ASCII_MODE,
|
ConfigBitstreamParser(filename, ConfigBitstreamParser::ASCII_MODE,
|
||||||
verbose),
|
verbose),
|
||||||
_base_addr(0)
|
_base_addr(0), _reverseOrder(reverseOrder)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
int McsParser::parse()
|
int McsParser::parse()
|
||||||
|
|
@ -56,7 +56,7 @@ int McsParser::parse()
|
||||||
getline(_fd, str);
|
getline(_fd, str);
|
||||||
ret = parseLine(str);
|
ret = parseLine(str);
|
||||||
} while (ret == 0);
|
} while (ret == 0);
|
||||||
return ret;
|
return (ret < 0) ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int McsParser::parseLine(string buffer)
|
int McsParser::parseLine(string buffer)
|
||||||
|
|
@ -87,10 +87,10 @@ int McsParser::parseLine(string buffer)
|
||||||
ptr = (char *)(buff + DATA_BASE);
|
ptr = (char *)(buff + DATA_BASE);
|
||||||
for (int i = 0; i < byteLen; i++, ptr += 2) {
|
for (int i = 0; i < byteLen; i++, ptr += 2) {
|
||||||
sscanf(ptr, "%2hx", &tmp);
|
sscanf(ptr, "%2hx", &tmp);
|
||||||
_bit_data[loc_addr + i] = tmp;
|
_bit_data[loc_addr + i] = (_reverseOrder)? reverseByte(tmp):tmp;
|
||||||
sum += tmp;
|
sum += tmp;
|
||||||
}
|
}
|
||||||
_bit_length +=byteLen;
|
_bit_length += (byteLen * 8);
|
||||||
} else if (type == 1) {
|
} else if (type == 1) {
|
||||||
return 1;
|
return 1;
|
||||||
} else if (type == 4) {
|
} else if (type == 4) {
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,14 @@
|
||||||
|
|
||||||
class McsParser: public ConfigBitstreamParser {
|
class McsParser: public ConfigBitstreamParser {
|
||||||
public:
|
public:
|
||||||
McsParser(std::string filename, bool verbose);
|
McsParser(std::string filename, bool reverseOrder, bool verbose);
|
||||||
int parse();
|
int parse();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int parseLine(std::string buffer);
|
int parseLine(std::string buffer);
|
||||||
|
|
||||||
int _base_addr;
|
int _base_addr;
|
||||||
|
bool _reverseOrder;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue