uart8250 0.6.0

This crate provide a struct with many methods to operate uart 8250.
Documentation
# Changelog

## Unreleased

## v0.6.0

### Added

- Add basic tests
- Add `TransmitError` and check error in `write_byte`
- Implement embedded_hal serial traits

### Changed

- Use register names instead of arrays
- Derive `Copy` and `Eq` for bare enums
-

### Removed

- Remove toggle methods

### Security

- The `uart` module is private
- Mark some methods as unsafe
  - `from_base_address`
  - `set_base_address`
- Mark some methods as private
  - methods that directly access the whole register

## v0.5.0

- Add several bitflags of status registers
- Add `#[inline]` to most read/write methods
- **BREAKING CHANGE** Traits from `embedded_hal` are removed due to `is_interrupt_pending` will reset THREI

## v0.4.2

- Don't enable transmitter_holding_register_empty_interrupt in `init()`
  - It seems that 16550 used in qemu keeps triggering THREI when THR is empty

## v0.4.1

- fix: IIR[0] == 0 when interrupt is pending

## v0.4.0

- **BREAKING CHANGE** `MmioUart8250` is restructured to be more rusty
  - use `reg: &'a mut Registers` instead of `base_address: usize` to access register via `self.reg.rw[0]`
- **BREAKING CHANGE** `init()` enable transmitter_holding_register_empty_interrupt now

## v0.3.2

- Add `enable_*` `disable_*` methods to provide more specific usage
- Add `set_base_address` to change `base_address`

## v0.3.1

- Remove incorrect `write_fmt`

## v0.3.0

- **BREAKING CHANGE** `MmioUart8250` is restructured
  - From unit struct to classic C struct
  - Change associated functions to methods to allow runtime setup

## v0.2.0

- **BREAKING CHANGE** `ChipFIFOInfo` rename to `ChipFifoInfo`
- Add `embedded` and `fmt` features that impl traits

## v0.1.0

- Basic function of `MmioUart8250`