![]() |
Kinetis Bootloader Host
2.0.0
Host Tools for Kinetis devices
|
Executable file in the Motorola S-record format. More...
#include <SRecordSourceFile.h>
Inheritance diagram for elftosb::SRecordSourceFile:
Collaboration diagram for elftosb::SRecordSourceFile:Public Member Functions | |
| SRecordSourceFile (const std::string &path) | |
| Default constructor. | |
| virtual | ~SRecordSourceFile () |
| Destructor. | |
Opening and closing | |
| virtual void | open () |
| Opens the file. | |
| virtual void | close () |
| Closes the file. | |
Format capabilities | |
| virtual bool | supportsNamedSections () const |
| virtual bool | supportsNamedSymbols () const |
Data sources | |
| virtual DataSource * | createDataSource () |
| Returns data source for the entire file. More... | |
Entry point | |
| virtual bool | hasEntryPoint () |
| Returns true if an entry point was set in the file. More... | |
| virtual uint32_t | getEntryPointAddress () |
| Returns the entry point address. More... | |
Public Member Functions inherited from elftosb::SourceFile | |
| SourceFile (const std::string &path) | |
| Default constructor. | |
| virtual | ~SourceFile () |
| Destructor. More... | |
| void | setOptions (OptionContext *context) |
| Set the option context. More... | |
| const OptionContext * | getOptions () const |
| Return the option context. | |
| const std::string & | getPath () const |
| Returns the path to the file. | |
| unsigned | getSize () |
| Get the size in bytes of the file. | |
| virtual bool | isOpen () const |
| Returns whether the file is already open. | |
| virtual DataSource * | createDataSource (StringMatcher &matcher) |
| Creates a data source out of one or more sections of the file. More... | |
| virtual DataSource * | createDataSource (const std::string §ion) |
| Creates a data source out of one section of the file. More... | |
| virtual DataTarget * | createDataTargetForSection (const std::string §ion) |
| virtual DataTarget * | createDataTargetForSymbol (const std::string &symbol) |
| virtual DataTarget * | createDataTargetForEntryPoint () |
| virtual bool | hasSymbol (const std::string &name) |
| Returns whether a symbol exists in the source file. | |
| virtual uint32_t | getSymbolValue (const std::string &name) |
| Returns the value of a symbol. | |
| virtual unsigned | getSymbolSize (const std::string &name) |
| Returns the size of a symbol. | |
Static Public Member Functions | |
| static bool | isSRecordFile (std::istream &stream) |
| Test whether the stream contains a valid S-record file. | |
Static Public Member Functions inherited from elftosb::SourceFile | |
| static SourceFile * | openFile (const std::string &path) |
Protected Member Functions | |
| void | buildMemoryImage () |
| Build memory image of the S-record file. More... | |
Protected Member Functions inherited from elftosb::SourceFile | |
| std::ifstream * | getStream () |
| Internal access to the input stream object. | |
Protected Attributes | |
| StSRecordFile * | m_file |
| S-record parser instance. | |
| StExecutableImage * | m_image |
| Memory image of the S-record file. | |
| bool | m_hasEntryRecord |
| Whether an S7,8,9 record was found. | |
| StSRecordFile::SRecord | m_entryRecord |
| Record for the entry point. | |
Protected Attributes inherited from elftosb::SourceFile | |
| std::string | m_path |
| Path to the file. | |
| smart_ptr< std::ifstream > | m_stream |
| File stream, or NULL if file is closed. | |
| smart_ptr< OptionContext > | m_options |
| Table of option values. | |
Executable file in the Motorola S-record format.
Instead of presenting each S-record in the file separately, this class builds up a memory image of all of the records. Records next to each other in memory are coalesced into a single memory region. The data source that is returned from createDataSource() exposes these regions as its segments.
Because the S-record format does not support the concepts, no support is provided for named sections or symbols.
|
protected |
Build memory image of the S-record file.
Scans the S-records of the file looking for data records. These are S3, S2, or S1 records. The contents of these records are added to an StExecutableImage object, which coalesces the individual records into contiguous regions of memory.
Also looks for S7, S8, or S9 records that contain the entry point. The first match of one of these records is saved off into the m_entryRecord member.
|
virtual |
Returns data source for the entire file.
Implements elftosb::SourceFile.
|
virtual |
Returns the entry point address.
If no entry point is available then 0 is returned instead. The method scans the records in the file looking for S7, S8, or S9 records. Thus, 16-bit, 24-bit, and 32-bit entry point records are supported.
| 0 | No entry point is available. |
Reimplemented from elftosb::SourceFile.
|
virtual |
Returns true if an entry point was set in the file.
| true | The file has an S7, S8, or S9 record. |
| false | No entry point is available. |
Implements elftosb::SourceFile.