Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UART v2 #443

Merged
merged 54 commits into from
Jul 31, 2021
Merged

UART v2 #443

merged 54 commits into from
Jul 31, 2021

Commits on Jun 21, 2021

  1. Configuration menu
    Copy the full SHA
    c314c3d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5091949 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    367ffab View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    82bcd3c View commit details
    Browse the repository at this point in the history
  5. Begin thumbv7em support

    jbeaurivage committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    6c15a81 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7b610f8 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d0c93cb View commit details
    Browse the repository at this point in the history
  8. Internal clock mode bugfix, add IrDA support

    Bugfix: enable USART internal clock mode on init.
    jbeaurivage committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    499d2a6 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    512e269 View commit details
    Browse the repository at this point in the history
  10. DMA transfers; Change way of splitting Uart rx and tx.

    * Added DMA support
    * Uart tx and rx fields are now public instead of split()/join() methods.
    jbeaurivage committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    3173f11 View commit details
    Browse the repository at this point in the history
  11. Kitchen sink of jelly-bean changes:

    * Doc fixes in v2::{uart, spi}
    * Remove dead code warning in dmac::channel::reg.rs
    * BEAT -> BURST DMAC trigger (thumbv7em)
    * Add deprecation warnings for v1::{uart, spi} (thumbv6m and
      thumbv7em)
    jbeaurivage committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    f2424c1 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    a7a8bf6 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    1df5109 View commit details
    Browse the repository at this point in the history
  14. Remove the sercom::v2::Pad type

    The `sercom::v2::Pad` type was a simple wrapper around a `gpio::v2::Pin`
    type. Its purpose was to ensure that each `Pin` was properly configured
    to act as the corresponding SERCOM `Pad`. However, one of my goals in
    designing the `v2::spi` API was to avoid the need for users to manually
    convert `Pin` types to `Pad` types. As that module progressed, it became
    clear that the `v2::Pad` type served no real purpose. All the same
    constraints could be imposed using a slightly different approach to
    type-level programming.
    
    Remove the `v2::Pad` type and modify the `sercom::v2::pad` module
    accordingly. Update the `v1::Pad` type as well. Rename some of the
    type-level items in the `v2::pad` module and improve the documentation.
    Update the `sercom::v1` peripheral APIs to accept both `v1::Pad` types
    and the equivalent of a `v2::Pad`, which is simply a properly configured
    `v2::Pin`.
    bradleyharden authored and jbeaurivage committed Jun 21, 2021
    Configuration menu
    Copy the full SHA
    cc58bed View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    1add44a View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    b490c75 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    1f9fa33 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    9b43f65 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    37fbc1a View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    1b22ec6 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    500b94e View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    017fba6 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    cc23fd6 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2021

  1. Complete refactor of handling split Tx/Rx.

    * Change UartRx/UartTx to a unified Uart struct (with
      capability-dictating type parameter)
    * Add Capability, Transmit, Receive, Simplex traits
    * Implement AsMut<Reconfig> for (&mut Uart<C, RxDuplex>, &mut Uart<C,
      TxDuplex>) to allow reconfiguring without needing to move Rx/Tx halves
      into a Uart<C, Duplex>
    * Split some code into submodules
    * Add RegisterInterface trait to help with some register accesses
    * Update docs
    jbeaurivage committed Jun 25, 2021
    Configuration menu
    Copy the full SHA
    fc04ba8 View commit details
    Browse the repository at this point in the history
  2. Remove the sercom::v2::Pad type (atsamd-rs#451)

    The `sercom::v2::Pad` type was a simple wrapper around a `gpio::v2::Pin`
    type. Its purpose was to ensure that each `Pin` was properly configured
    to act as the corresponding SERCOM `Pad`. However, one of my goals in
    designing the `v2::spi` API was to avoid the need for users to manually
    convert `Pin` types to `Pad` types. As that module progressed, it became
    clear that the `v2::Pad` type served no real purpose. All the same
    constraints could be imposed using a slightly different approach to
    type-level programming.
    
    Remove the `v2::Pad` type and modify the `sercom::v2::pad` module
    accordingly. Update the `v1::Pad` type as well. Rename some of the
    type-level items in the `v2::pad` module and improve the documentation.
    Update the `sercom::v1` peripheral APIs to accept both `v1::Pad` types
    and the equivalent of a `v2::Pad`, which is simply a properly configured
    `v2::Pin`.
    
    Finally, redefine the type parameters of `v2::spi::Pads` to be
    `OptionalPad`s rather than `OptionalPinId`s, and provide a new
    `PadsFromIds` to make up for it. This change increases consistency in
    the definition of the `spi::Pads` type, and it allows me to remove a
    significant amount of trait boilerplate needed to make it all work.
    bradleyharden authored and jbeaurivage committed Jun 25, 2021
    Configuration menu
    Copy the full SHA
    ac03bd3 View commit details
    Browse the repository at this point in the history
  3. Add pub use nb; to HAL prelude

    ianrrees authored and jbeaurivage committed Jun 25, 2021
    Configuration menu
    Copy the full SHA
    8673208 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a144482 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9bf98ac View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2021

  1. Configuration menu
    Copy the full SHA
    1120fd4 View commit details
    Browse the repository at this point in the history
  2. Merge thumbv6m and thumbv7em implementations

    Merge UART implementations into single top-level sercom module
    Change RegisterInterface trait to Registers struct
    jbeaurivage committed Jun 28, 2021
    Configuration menu
    Copy the full SHA
    fde8dac View commit details
    Browse the repository at this point in the history
  3. Fix spi::Length issue in sercom::dma.rs

    For thumbv7em targets: it was possible to have [u8; length] as a valid
    DMA beat. Adds the AtomicLength, which restricts DMA transactions to
    single u8, u16 or u32 words.
    jbeaurivage committed Jun 28, 2021
    Configuration menu
    Copy the full SHA
    82b959d View commit details
    Browse the repository at this point in the history
  4. Add examples and update BSP

    Updated feather_m0 and feather_m4 BSPs and added uart examples
    jbeaurivage committed Jun 28, 2021
    Configuration menu
    Copy the full SHA
    e5ada81 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2021

  1. Configuration menu
    Copy the full SHA
    112894e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dd53693 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3822686 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2021

  1. Configuration menu
    Copy the full SHA
    ed81ff6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bc3fca2 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2021

  1. Add DynCharSize

    jbeaurivage committed Jul 2, 2021
    Configuration menu
    Copy the full SHA
    856117f View commit details
    Browse the repository at this point in the history
  2. Add ReadConfig trait

    jbeaurivage committed Jul 2, 2021
    Configuration menu
    Copy the full SHA
    145b8f1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9f43201 View commit details
    Browse the repository at this point in the history
  4. Add setter methods

    Remove Reconfig struct and ReadConfig trait
    jbeaurivage committed Jul 2, 2021
    Configuration menu
    Copy the full SHA
    ccd4e5d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    827dfe5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    71ced79 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2021

  1. Configuration menu
    Copy the full SHA
    a456ed3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b0baf11 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4b45804 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    13bf4cf View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2021

  1. Configuration menu
    Copy the full SHA
    332b9b8 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2021

  1. Configuration menu
    Copy the full SHA
    f695821 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2021

  1. Configuration menu
    Copy the full SHA
    a0c747e View commit details
    Browse the repository at this point in the history
  2. Minor refactoring

    Improve CharSize API
    Registers methods take Flags and Status structs instead of raw bits
    Remove From implementations for StopBits, BitOrder, Baud, etc.
    jbeaurivage committed Jul 28, 2021
    Configuration menu
    Copy the full SHA
    368044c View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2021

  1. Only enable CTRLA.{RXEN|TXEN} if necessary

    RXEN/TXEN will only be enabled if the underlying Pads have RX/TX
    capability.
    jbeaurivage committed Jul 29, 2021
    Configuration menu
    Copy the full SHA
    5b03193 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f9654ec View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2021

  1. Move BITS constant from CharSize to FixedCharSize

    Move BITS constant from CharSize to FixedCharSize trait and rename to
    SIZE
    jbeaurivage committed Jul 30, 2021
    Configuration menu
    Copy the full SHA
    0eac8bb View commit details
    Browse the repository at this point in the history