![]() |
Kinetis Bootloader Host
2.0.0
Host Tools for Kinetis devices
|
Executable file in the Intel Hex format. More...
#include <IntelHexSourceFile.h>
Inheritance diagram for blfwk::IntelHexSourceFile:
Collaboration diagram for blfwk::IntelHexSourceFile:Public Member Functions | |
| IntelHexSourceFile (const std::string &path) | |
| Default constructor. | |
| virtual | ~IntelHexSourceFile () |
| 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 blfwk::SourceFile | |
| SourceFile (const std::string &path, source_file_t filetype) | |
| Default constructor. | |
| virtual | ~SourceFile () |
| Destructor. More... | |
| void | setOptions (OptionContext *context) |
| Set the option context. More... | |
| const OptionContext * | getOptions () const |
| Return the option context. | |
| source_file_t | getFileType () const |
| Return the file type. | |
| const std::string & | getPath () const |
| Returns the path to the file. | |
| unsigned | getSize () const |
| 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 | isIntelHexFile (std::istream &stream) |
| Test whether the stream contains a valid Intel Hex file. | |
Static Public Member Functions inherited from blfwk::SourceFile | |
| static SourceFile * | openFile (const std::string &path) |
Protected Member Functions | |
| void | buildMemoryImage () |
| Build memory image of the Intel Hex file. More... | |
Protected Member Functions inherited from blfwk::SourceFile | |
| std::ifstream * | getStream () |
| Internal access to the input stream object. | |
Protected Attributes | |
| StIntelHexFile * | m_file |
| Intel Hex parser instance. | |
| StExecutableImage * | m_image |
| Memory image of the Intel Hex file.. | |
| bool | m_hasEntryRecord |
| Whether a type 03 or 05 record was found. | |
| StIntelHexFile::IntelHex | m_entryRecord |
| Record for the entry point. | |
Protected Attributes inherited from blfwk::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. | |
| source_file_t | m_filetype |
| Image file type. | |
| unsigned | m_size |
| The size in bytes of the file. | |
Additional Inherited Members | |
Public Types inherited from blfwk::SourceFile | |
| enum | source_file_t { kBinarySourceFile, kELFSourceFile, kIntelHexSourceFile, kSBSourceFile, kSRecordSourceFile } |
| Set of supported executable image file formats. More... | |
Executable file in the Intel Hex format.
Instead of presenting each Intel Hex 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.
|
protected |
Build memory image of the Intel Hex file.
Scans the Intel Hex of the file looking for data records(00 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 03 and 05 records that contain the entry point. The first match of one of these records is saved off into the m_entryRecord member.
Also looks for 02 and 04 records that contain the extended address. The address in the StExecutableImage object is the combination of extended address and offset in data record.
If 01 record, the file end record is detected, the left records would not be handled.
|
virtual |
Returns data source for the entire file.
Implements blfwk::SourceFile.
|
virtual |
Returns the entry point address.
If no entry point is available then 0 is returned instead.
| 0 | No entry point is available. |
Reimplemented from blfwk::SourceFile.
|
virtual |
Returns true if an entry point was set in the file.
| true | The file has an 03 or 05 record. |
| false | No entry point is available. |
Implements blfwk::SourceFile.