7 #if !defined(_StSRecordFile_h_) 8 #define _StSRecordFile_h_ 20 SRECORD_START_CHAR =
'S',
23 SRECORD_MIN_LENGTH = 10,
26 SRECORD_ADDRESS_START_CHAR_INDEX = 4
66 virtual void setName(
const std::string &inName) {
m_name = inName; }
67 virtual std::string getName()
const {
return m_name; }
85 inline const_iterator getEnd()
const {
return m_records.end(); }
90 inline const SRecord &operator[](
unsigned inIndex) {
return m_records[inIndex]; }
101 virtual void parseLine(std::string &inLine);
103 bool isHexDigit(
char c);
104 int hexDigitToInt(
char digit);
105 int readHexByte(std::string &inString,
int inIndex);
117 :
std::runtime_error(inMessage)
122 #endif // _StSRecordFile_h_ uint8_t m_checksum
The checksum byte present in the S-record.
Definition: apps/elftosb/common/StSRecordFile.h:51
Definition: apps/elftosb/common/StSRecordFile.h:44
virtual void parse()
Parses the entire S-record input stream.
Definition: apps/elftosb/common/StSRecordFile.cpp:54
uint32_t m_address
The address specified as part of the S-record.
Definition: apps/elftosb/common/StSRecordFile.h:48
std::istream & m_stream
The input stream for the S-record data.
Definition: apps/elftosb/common/StSRecordFile.h:94
unsigned m_dataCount
Number of bytes of data.
Definition: apps/elftosb/common/StSRecordFile.h:49
S-record parser.
Definition: apps/elftosb/common/StSRecordFile.h:38
int readHexByte(std::string &inString, int inIndex)
Definition: apps/elftosb/common/StSRecordFile.cpp:108
std::string m_name
File name. (optional)
Definition: apps/elftosb/common/StSRecordFile.h:97
Simple exception thrown to indicate an error in the input SRecord data format.
Definition: apps/elftosb/common/StSRecordFile.h:112
std::vector< SRecord >::const_iterator const_iterator
Iterator type.
Definition: apps/elftosb/common/StSRecordFile.h:55
std::vector< SRecord > m_records
Vector of S-records in the input data.
Definition: apps/elftosb/common/StSRecordFile.h:95
const_iterator getBegin() const
Definition: apps/elftosb/common/StSRecordFile.h:84
unsigned getRecordCount() const
Definition: apps/elftosb/common/StSRecordFile.h:82
unsigned m_count
Number of character pairs (bytes) from address through checksum.
Definition: apps/elftosb/common/StSRecordFile.h:47
virtual ~StSRecordFile()
Destructor.
Definition: apps/elftosb/common/StSRecordFile.cpp:18
StSRecordFile(std::istream &inStream)
Constructor.
Definition: apps/elftosb/common/StSRecordFile.cpp:12
StSRecordParseException(const std::string &inMessage)
Default constructor.
Definition: apps/elftosb/common/StSRecordFile.h:116
unsigned m_type
Record number type, such as 9 for "S9", 3 for "S3" and so on.
Definition: apps/elftosb/common/StSRecordFile.h:46
virtual void parseLine(std::string &inLine)
Parses individual S-records.
Definition: apps/elftosb/common/StSRecordFile.cpp:128
virtual bool isSRecordFile()
Determine if the file is an S-record file.
Definition: apps/elftosb/common/StSRecordFile.cpp:33
uint8_t * m_data
Pointer to data, or NULL if no data for this record type.
Definition: apps/elftosb/common/StSRecordFile.h:50