Commit Graph

120 Commits

Author SHA1 Message Date
Jesse Braham
2417cd0b33 Update the prelude, adding a public module for the embedded-hal alpha traits 2022-06-14 17:28:03 +02:00
Jesse Braham
e764194f2f Implement non-blocking SPI traits from embedded-hal alpha 2022-06-14 17:28:03 +02:00
Jesse Braham
8663153e12 Implement the embedded-hal alpha traits for the GPIO and I2C drivers 2022-06-14 17:28:03 +02:00
Jesse Braham
9b033d44db Implement the embedded-hal alpha traits for the Delay and Serial drivers 2022-06-14 17:28:03 +02:00
bjoernQ
9c244ba16c Make sure that HAL users don't need to depend on esp-hal-common 2022-06-13 16:38:58 +02:00
bjoernQ
918f7a7c8e Electrical state of open drain output can be read 2022-06-13 16:38:58 +02:00
bjoernQ
86f4d02782 Fix wrong SCL for ESP32,ESP32S2 2022-06-10 19:02:12 +02:00
Björn Quentin
1752e17531
Merge pull request #78 from bjoernQ/refactor_gpio
Simplify GPIO Macros
2022-06-10 17:03:18 +02:00
Scott Mabin
4acdf2516c
[esp32c3] SYSTIMER peripheral (#76)
* initial systimer impl
* Add systimer example
* Make Alarms real singletons
  * Remove runtime Option, turn into compile error
  * Make Systimer::now() not take self
* refactor shared alarm methods
* Implement esp32c3 delay with monotonic SystemTimer::now()
* Add extend systimer support to esp32s3 and add example
* systimer: esp32s2 support
2022-06-10 07:53:45 -07:00
bjoernQ
0dd0238ce7 Simplify GPIO Macros 2022-06-10 15:04:23 +02:00
Jesse Braham
0c61e7eeef Fix build errors introduced by updating the esp-pacs dependency 2022-06-09 10:35:18 -07:00
Björn Quentin
3fd4b03144
Add boot-default ClockConfig (#77) 2022-06-09 13:51:17 +01:00
Jesse Braham
422cd5036d Use the PTR constant instead of the ptr() function for peripherals 2022-06-07 10:08:52 -07:00
Juraj Sadel
e9d25153c6 Change frequency for all Xtensa chips 2022-06-03 19:56:21 +02:00
Juraj Sadel
b382a019d4
Feature/time types (#64)
* Use fugit time types for SPI peripheral, update examples

* initial WIP

* fix CI build errors

* Use extension trait in examples

Co-authored-by: Jesse Braham <jesse@beta7.io>
2022-05-31 11:39:44 +01:00
Robert Wiewel
a55c9d77ec Add RMT output channel support for all current ESP32 variants
- Add RMT output channel support for ESP32, ESP32-S2, ESP32-S3, ESP32-C3
- Add add RMT adapter for `smart-leds` crate
- Add example `hello_rgb` for ESP32-S2, ESP32-S3 and ESP32-C3 that either
  drives one LED at the pin where a LED is located on the official devkits
- Add example `hello_rgb` for ESP32 that is driving a 12-element RGB ring.
2022-05-17 15:56:25 +02:00
Jesse Braham
67bd5837cd Make cargo manifests consistent and bump dependencies 2022-05-05 11:56:43 +02:00
Jesse Braham
e745e84869 Fix a whole bunch of clippy warnings 2022-05-05 11:51:12 +02:00
Jesse Braham
ec6a82b3f4 Clean up imports and format all packages 2022-05-05 11:16:05 +02:00
bjoernQ
23b6e17e52 Pass the right TrapFrame to the exception handler 2022-05-05 11:13:27 +02:00
bjoernQ
67f21460f8 Implement workaround for ESP32 errata 3.6 2022-05-03 10:08:24 +02:00
Jesse Braham
c0a584ecfa
Add a minimal driver for the USB_SERIAL_JTAG peripheral (#56)
* Add a minimal driver  for the USB_SERIAL_JTAG peripheral implementing core::fmt::Write
2022-05-02 03:55:36 -07:00
Björn Quentin
eb47b0fe21
Bump riscv version (#51)
* Bump riscv version

* Bump riscv version in esp-hal-common
2022-04-22 08:00:17 -07:00
bjoernQ
0f58f84873 Bump version of xtensa-lx, use correct features 2022-04-20 08:32:45 -07:00
bjoernQ
43c8f34e5f Update xtensa-lx-rt, fix interrupt related examples 2022-04-04 08:52:27 -07:00
bjoernQ
e83fd25e49 Optionally pass interrupt context to handlers for Xtensa 2022-03-29 09:31:09 -07:00
Douman
afc150165e Adds Rng::random() -> u32 2022-03-24 08:44:04 -07:00
Douman
9a3b0a530f Introduce optional ufmt support 2022-03-21 16:31:20 +09:00
Jesse Braham
4e47fc69f4 Add features for architecture, clean up common HAL manifest 2022-03-14 18:17:24 -07:00
bjoernQ
651d27430a Replace the precompiled asm.S with global-asm 2022-03-14 09:33:05 -07:00
bjoernQ
15c34c23e4 Merge branch 'main' into feature/spi 2022-03-10 17:51:18 +01:00
Jesse Braham
590df9bc21 Document the RNG's pre-conditions, add a free function 2022-03-10 08:23:26 -08:00
Jesse Braham
bad8020abe Implement the embedded-hal Read trait for the RNG peripheral 2022-03-10 08:14:39 -08:00
bjoernQ
3f7a675b1e Implement SPI 2022-03-10 11:03:20 +01:00
bjoernQ
e7eea75ef8 Add timer interrupt support and examples 2022-03-04 09:54:28 -08:00
bjoernQ
a6dc853a82 I2C peripheral name got changed for ESP32C3 2022-03-02 10:18:58 +01:00
bjoernQ
e34319b763 Apply more suggestions from code review 2022-03-02 09:38:06 +01:00
Björn Quentin
573d94bfdb
Apply suggestions from code review
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2022-03-02 08:45:08 +01:00
bjoernQ
72913a6e50 Reformat code 2022-03-01 14:38:34 +01:00
bjoernQ
af9fecb8af Address FIXME comments from #22 2022-03-01 14:25:36 +01:00
bjoernQ
9bfe643f33 Implement I2C 2022-03-01 14:16:57 +01:00
Robert Wiewel
21b64f5c28 WIP: Prototype of shared I2C implementation
- Add example for I2C display example for ESP32-C3 and ESP32
- Example works for ESP32-C3, but not yet for ESP32
- Dependent on patched and forked `esp-pacs` version (referenced
  relatively for now, please check out and place accordingly)
2022-03-01 14:16:57 +01:00
bjoernQ
4cc78c4b6b Move GPIO type definitions to esp-hal-common 2022-03-01 14:16:57 +01:00
Robert Wiewel
fd7999052c Add temporary #cfg conditionals for WDT handling to allow for build on S3 2022-02-26 11:22:15 +01:00
Robert Wiewel
f2884bd3b8 Add RWDT disable in RTC_CNTL for ESP32/S2/S3 2022-02-25 23:41:05 +01:00
bjoernQ
83f961431c Support atomic emulation for ESP32C3 if needed 2022-02-24 15:40:41 +00:00
bjoernQ
181892d02a Fix Xtensa interrupts 2022-02-22 15:33:15 +00:00
bjoernQ
7b59c9e76d Move linker scripts to sub-folders 2022-02-18 12:00:05 +01:00
bjoernQ
545f997b07 Support ESP32S3 2022-02-16 15:44:06 +00:00
bjoernQ
0039996e8e Remove obsolete FIXME comment, check ESP32S2 in CI builds 2022-02-14 18:04:48 +00:00
bjoernQ
9c5468e814 Support ESP32S2 2022-02-14 18:04:48 +00:00
bjoernQ
52f388e9a1 Use esp-rs/esp-pacs 2022-02-10 10:03:37 +01:00
bjoernQ
cac30b7544 Add basic interrupt support for ESP32C3 and ESP32 2022-01-31 16:34:45 +00:00
Jesse Braham
ef5d1ac7f4
Refactor GPIO module to make traits accessible in esp-hal-common crate (#9)
* Extract all of the enums/structs/traits that we easily can from gpio!

* Pull the remaining traits (which we're able to) out of gpio!
2022-01-24 08:34:45 -08:00
Björn Quentin
70109ffe36
Initial implementation of ram proc macro (#6)
* Add .iram section for ESP32C3, make it possible to use direct-boot or normal-boot

* Add ram proc-macro
2022-01-18 10:02:40 -08:00
Jesse Braham
c3d83db6ca Update any references from my personal account to the organization 2022-01-12 13:52:47 -08:00
Jesse Braham
fda410633b Various updates all READMEs 2022-01-12 13:52:01 -08:00
Jesse Braham
6ab5634c54 Various small improvements, formatting, making things more consistent 2022-01-11 13:27:57 -08:00
Jesse Braham
10931726eb Begin adding some doc comments, update rustfmt config 2022-01-10 15:23:01 -08:00
Jesse Braham
9a030cbf78 Implement DelayMs and DelayUs traits from embedded-hal 2022-01-10 13:52:46 -08:00
Jesse Braham
b953041da0 Format GPIO-related macros and their invocations to improve readability 2022-01-06 09:34:32 -08:00
Jesse Braham
34ca298698 Update each package's Cargo manifest 2022-01-06 08:19:28 -08:00
Jesse Braham
ed2214a9fc Update each package's README 2022-01-06 08:08:32 -08:00
Jesse Braham
2bf61d9b53 Flatten the gpio module in the esp-hal-common package 2022-01-06 08:08:11 -08:00
Björn Quentin
6d94b61268
Shared GPIO Implementation (#3)
* make esp32c3 examples run from flash / flashable
* use gpio3 for blinky
* direct boot in Cargo.toml
* have a shared gpio impl
* use PACs from their original locations again
2022-01-06 07:57:55 -08:00
Jesse Braham
4e9ad72839 Assorted updates to make most things build properly... still some errors 2021-11-23 20:12:34 -08:00
Jesse Braham
22df2dbb99 Miscellaneous cleanup 2021-10-29 11:00:31 -07:00
Jesse Braham
2b27d10aa4 Convert to workspace, shortened chip selection feature names 2021-10-29 10:24:24 -07:00
Jesse Braham
579c5ba71b Extract UART peripheral implementation, prelude into esp-hal-common 2021-10-22 11:24:18 -07:00
Jesse Braham
dfab5d6c1b Add the esp-hal-common crate and make ESP32/ESP32-C3 use its Timer 2021-10-21 17:28:11 -07:00