libihex
is a C++ implementation of an Intel Hex record manipulation library.
libihex
main features are:
- C++ 17 implementation
- Cross-platform support (tested on Linux via
gcc
and on Windows viamingw-w64
) - Unified clean class interface for multi level usage
HexRecord
class for the manipulation of Hex data on the Hex record levelHexSection
class for a group of Hex recordsHexGroup
class for a group of Hex sectionsHexFile
class extends the HexGroup class with stream and file manipulation functionsHexAddress
class for Hex address calculation and manipulation helper functions
- Uses
cmake
build generator for build and install - Extensive tests via
gtest
framework - High line, branch and function code coverage (tested 100% on Linux platform)
The libihex
library should be feature complete, since it handles and implements
all the official Hex record types. However, it can be extended with any custom or
additional Hex Record types as needed. Everybody is welcome to contribute to libihex
.
Please, see CONTRIBUTING
for further information.
Currently no release channels are provisioned.
Anyone wishing to compile and build libihex
should clone the git repository at:
https://github.com/blazzakrajsek/libihex
The project should be configured by the cmake
build generator where build configuration for
various compilers can be generated. With the generated build configuration it is possible
to compile, build and install libihex
.
On a Linux system, it can be build and installed using:
$ make
$ sudo make install
On a Windows system, it can be build and installed using:
$ mingw32-make.exe
$ mingw32-make.exe install
See the INSTALL
file for more information about how to configure
and install libihex
.
libihex
currently provides no official documentation besides the documentation
contained in this document and any other documents contained in the repository.
However, C++ headers of the library provide a simple yet effective documentation
about the classes, enums and functions. Tests implemented on the gtest
framework also
provide an insight on how to use the library and class implementations.
libihex
currenly provides no localization facilities.
Compiled and built library can be linked with the application or binary using the library.
Everybody is welcome to contribute to libihex
. Please, see
CONTRIBUTING
for further information.
Bug reports can be sent directly to the author(s) via email.
The author can be contacted via email at zakrajsek dot blaz at gmail com.
Copyright (c) 2021-2023 Blaž Zakrajšek
This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses/.