Skip to content

Bringing support for the EOS-S3 in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Josfemova/eos-s3-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eos-s3-rs

WIP

Bringing support for the EOS-S3 in Rust.

Embedded-hal traits implemented:

  • ADC traits
  • digital IO (but must decide what to do with #3)
  • delay/timer
  • serial UART
  • I2C
  • SPI
  • watchdog

Traits like CAN and PWN cannot be implemented for the M4 subsystem which is the app we can modify from Rust, but it would be nice to have examples in which such things are implemented on the eFPGA.

About other features

  • Implementing the FPGA loading sequence is already possible. Qorc implementation can be used as a guide.
  • Sensors in the devboards don't seem to have Rust drivers as of now, so that's also on the backlog
  • I2S & PDM is somewhat low priority, hal traits are the first stuff that I'll be working on.
  • Contributions are welcome.

Additional notes

  • Higher integration with the symbiflow workflow is desirable. Perhaps if this can be achieved with a cargo subcommand ergonomics for hybrid (hdl + rust) workflows, it would make of Rust a comfy language for this kind of thing, which could also lead to it being the de-facto "thing".
  • This should help in the clock implementation: https://qorc-sdk.readthedocs.io/en/latest/guides/clock-power/clock-power.html
  • The SVD is ready, but it would be nice to have QuickLogic check everything is in order.
  • The SVD does not contain the core CM4F peripherals, as those don't seem to be required for pac generation. If you are an user of the SVD but not the rust libraries, feel free to contribute the transcription of the core peripherals in the yaml files already in the repo
  • I cannot overstate how useful it is to have the tools/libraries mantained by the Rust Embedded Working Group. The ecosystem is amazing, if you are somewhat new to embedded rust and somehow got to this place before any of the other projects, please check this repo - it has a list of all the nice things Embedded Rust has to offer.

Credit

The work on this repository is based on the information found on the EOS-S3 and qork-sdk repositories. Both of these projects are licensed under the Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0). QuickLogic does not provide an SVD file for the EOS-S3, but it does provide an excel file with the specification of the memory map.

License

The code in this repository is 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.

About

Bringing support for the EOS-S3 in Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages