#micro-controller #hex #intel #parser #memory #data #rom

ihex

A Rust library for parsing and generating Intel HEX (or IHEX) objects. This format is commonly used for representing compiled program code and data to be loaded into a microcontroller, flash memory or ROM.

11 releases (7 stable)

3.0.0 Jun 15, 2020
2.0.0 Jun 15, 2020
1.1.2 Aug 22, 2018
1.0.1 Jan 13, 2018
0.1.3 Jun 10, 2016

#141 in Embedded development

Download history 5118/week @ 2024-10-17 4146/week @ 2024-10-24 4014/week @ 2024-10-31 3827/week @ 2024-11-07 3389/week @ 2024-11-14 4055/week @ 2024-11-21 3792/week @ 2024-11-28 4307/week @ 2024-12-05 5022/week @ 2024-12-12 3383/week @ 2024-12-19 2566/week @ 2024-12-26 3340/week @ 2025-01-02 4405/week @ 2025-01-09 4190/week @ 2025-01-16 5317/week @ 2025-01-23 5156/week @ 2025-01-30

19,816 downloads per month
Used in 37 crates (14 directly)

MIT/Apache

30KB
463 lines

Intel HEX (IHEX) Library

A Rust library for parsing and generating Intel HEX (or IHEX) objects. This format is commonly used for representing compiled program code and data to be loaded into a microcontroller, flash memory or ROM.

Build Status Coverage Status

Usage

Add the following to your Cargo.toml:

[dependencies]
ihex = "3.0"

In addition, for Rust 2015 edition projects, and this to your crate root:

extern crate ihex;

Here is an example which builds an IHEX object file with test data and prints it:

use ihex::Record;

fn main() {
    let records = &[
        Record::Data { offset: 0x0010, value: vec![0x48,0x65,0x6C,0x6C,0x6F] },
        Record::EndOfFile
    ];

    if let Ok(object) = ihex::create_object_file_representation(records) {
        println!("{}", object);
    }
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps