# imxrt-uart-log
[![Crates.io][crates-io-badge]][crates-io-url]
[![Build][build-badge]][build-url]
[crates-io-badge]: https://img.shields.io/crates/v/imxrt-uart-log
[crates-io-url]: https://crates.io/crates/imxrt-uart-log
[build-badge]:
https://github.com/imxrt-rs/imxrt-uart-log/workflows/All%20Checks/badge.svg
[build-url]:
https://github.com/imxrt-rs/imxrt-uart-log/actions?query=workflow%3A%22All+Checks%22
#### [API Docs](https://docs.rs/imxrt-uart-log/latest/imxrt_uart_log/)
Log data over a serial interface. There are two logging implementations for
NXP's i.MX RT processors:
- a simple, blocking logger. Useful for basic logging throughout the software
stack, including interrupt, fault, and panic handlers.
- a DMA-based, non-blocking interface. Useful for logging that needs to happen
quickly. Uses a default buffer, with an option for a user-supplied DMA buffer.
Built on the [`imxrt-hal`] hardware abstraction layer for i.MX RT processors,
version 0.4. Compatible with [`log`] version 0.4.
[`imxrt-hal`]: https://crates.io/crates/imxrt-hal
[`log`]: https://crates.io/crates/log
## i.MX RT Compatibility
This crate supports all of the same i.MX RT variants as the [`imxrt-hal`]
crate. To see the supported i.MX RT variants, check the [HAL's feature
support](https://github.com/imxrt-rs/imxrt-rs#hal) list.
> :information_source: As of this writing, the HAL only supports one i.MX RT
variant, the `"imxrt1062"`. For convenience, the `"imxrt1062"` feature is this
crate's **default** feature. This default feature may change in future releases.
## Testing
The crate's examples run on hardware. See the documentation at the top of each
example for more information.
For examples that run on a Teensy 4, you'll need the build dependencies
described in the [`teensy4-rs`
project](https://github.com/mciantyre/teensy4-rs#dependencies).
Use `make` to build an example for the Teensy 4:
```
make t4_blocking
```
When building an example for the Teensy 4, the build will print the location of
the `*.hex` file. You may download the file to a Teensy using either the
[Teensy Loader Application](https://www.pjrc.com/teensy/loader.html) or the
[`teensy_loader_cli`](https://github.com/PaulStoffregen/teensy_loader_cli)
command-line Teensy loader.
To run this crate's unit tests, and to check documentation examples, use `make
test`.
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
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.