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

Merge the next branch (finally!) #190

Merged
merged 104 commits into from
Jul 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
dec0172
README: Add a warning about the ongoing refactoring
Rahix Feb 7, 2021
530d1e5
generic: Add `Sealed` trait
Rahix Feb 6, 2021
9046c06
generic: port: Add new port implementation
Rahix Feb 6, 2021
3882a31
generic: usart: Make impl_usart_traditional!() work with new pins
Rahix Feb 13, 2021
0b93a5e
Add basic atmega-hal crate
Rahix Feb 7, 2021
6cf6d4c
Add basic arduino-hal crate
Rahix Feb 7, 2021
c50dded
Add examples crate for Arduino Uno
Rahix Feb 7, 2021
356090d
atmega-hal: Add support for ATmega32U4
Rahix Feb 13, 2021
5304fd0
arduino-hal: Add support for Arduino Leonardo
Rahix Feb 13, 2021
8f6928c
Add example crate for Arduino Leonardo
Rahix Feb 13, 2021
4691d8f
ci: Adjust for new crate structure
Rahix Feb 7, 2021
8cffcc8
atmega-hal: Add support for ATmega2560
explicite Feb 15, 2021
9e41a1e
arduino-hal: Add support for Arduino Mega 2560
explicite Feb 17, 2021
8da215a
arduino-hal: Guard prelude with board-selected as well
Rahix Feb 17, 2021
5ed1dff
Add examples for Arduino Mega 2560
explicite Feb 24, 2021
55f046f
atmega-hal: Add support for ATmega1280
explicite Feb 24, 2021
ca1bbb9
ci: Add second job matrix for MCUs without a board
Rahix Feb 24, 2021
bcd1263
atmega-hal: Add support for ATmega168
explicite Feb 27, 2021
a5138fa
atmega-hal: Add support for ATmega328PB
explicite Mar 1, 2021
eae1587
atmega-hal: Add support for ATmega48P
explicite Mar 2, 2021
f3b794c
atmega-hal: Drop custom `Peripherals` struct
Rahix Mar 2, 2021
ffba68a
arduino-hal: Drop custom `Peripherals` struct
Rahix Mar 2, 2021
5dfb734
examples: Update blink examples
Rahix Mar 2, 2021
9c33514
generic: usart: Introduce a type-parameter for orphan circumvention
Rahix Mar 3, 2021
e46120c
generic: usart: Drop .0 field accessor
Rahix Mar 3, 2021
73f4c61
atmega-hal: usart: Update to new HAL design
Rahix Mar 3, 2021
5b7921e
examples: Update USART examples
Rahix Mar 3, 2021
44221f7
ci: Use a single job-matrix
Rahix Mar 3, 2021
f2d60d9
generic: port: Reflect new HAL pins design in documentation
Rahix Mar 3, 2021
f5032de
generic: port: Add "input mode forgetting"
Rahix Mar 3, 2021
3416c37
generic: usart: "Forget" input mode of RX pin
Rahix Mar 3, 2021
68c153f
atmega-hal: usart: Remove IMODE from type aliases
Rahix Mar 3, 2021
4d5a3ed
arduino-hal: Add a default_serial!() macro
Rahix Mar 3, 2021
522f4f4
examples: Use the default_serial!() macro
Rahix Mar 3, 2021
f01cfa5
generic: port: Fix incorrect pull-up behavior
Rahix Mar 3, 2021
f0bb4de
generic: i2c: Reimplement with new HAL API design
Rahix Mar 3, 2021
e375d56
atmega-hal: Add I2C support
Rahix Mar 3, 2021
25fecf4
arduino-hal: Re-expose I2C module
Rahix Mar 3, 2021
22ce19a
examples: Add i2cdetect examples for all supported boards
Rahix Mar 3, 2021
9ad0bd1
Introduce the "ravedude"
Rahix Mar 6, 2021
135eef3
ravedude: Add support for Arduino Leonardo
Rahix Mar 6, 2021
5e22b2b
examples: Use 'ravedude' as the cargo runner
Rahix Mar 6, 2021
b6331b5
README: Update quickstart instructions
Rahix Mar 6, 2021
b3cbd88
ravedude: Fill remaining Cargo metadata
Rahix Mar 6, 2021
98d4a3a
ci: Add job to check ravedude
Rahix Mar 6, 2021
114d940
Add crate for ATtiny MCUs with ATtiny85
explicite Mar 8, 2021
d3a5f3a
attiny-hal: Add support for ATtiny88
explicite Mar 8, 2021
60f66a1
generic: adc: Refactor ADC HAL
Rahix Mar 13, 2021
aa754e2
generic: port: Implement ADC pins
Rahix Mar 13, 2021
e638e68
atmega-hal: Add ADC support
Rahix Mar 13, 2021
631f2d4
arduino-hal: Reexport ADC types and module
Rahix Mar 13, 2021
749dcc5
adc: Add "dynamic" Channel type
Rahix Mar 13, 2021
af926bd
examples: Add ADC examples
Rahix Mar 13, 2021
a57dcf7
ravedude: Update README and repository URL
Rahix Mar 13, 2021
288c723
Prepare ravedude 0.1.1
Rahix Mar 13, 2021
5340d16
examples: mega2560: Improve blink example
Rahix Mar 13, 2021
cfb5d99
ravedude: Update README
Rahix Mar 18, 2021
70c038f
ravedude: Replace --no-program with just making <binary> optional
Rahix Mar 18, 2021
f13d571
ravedude: Refactor CLI output code
Rahix Mar 18, 2021
6195b88
ravedude: Fix Arduino Nano support
Rahix Mar 18, 2021
828ea4c
ravedude: Better error if no port is found
Rahix Mar 18, 2021
4eefe12
ravedude: Add a changelog
Rahix Mar 18, 2021
8b11214
ravedude: Display git version
Rahix Mar 18, 2021
e17dca8
ravedude: Track Cargo.lock
Rahix Mar 18, 2021
b7bfcc4
ravedude: Warn if neither flashing nor console is selected
Rahix Mar 18, 2021
d402684
Remove legacy directories
Rahix Mar 21, 2021
2e1efac
ci: Update package cache before installing libudev
Rahix Mar 21, 2021
3a472c7
Prepare ravedude 0.1.2
Rahix Mar 21, 2021
5c26a0f
ravedude: Make avrdude -e optional
Rahix Mar 21, 2021
dca7cea
ravedude: Add support for Arduino Mega 2560
Rahix Mar 21, 2021
faf02eb
examples: mega2560: Use ravedude as the runner
Rahix Mar 21, 2021
25e7eed
ravedude: Update CHANGELOG
Rahix Mar 21, 2021
12c28ae
Remove legacy mkhex.sh script
Rahix Mar 21, 2021
4b7262c
generic: port: Implement initial state for output pins
Javier-varez Mar 23, 2021
9e3848f
Add explicit support for arduino-nano
drmorr0 Mar 25, 2021
03da962
Reimplement SPI support
drmorr0 Apr 16, 2021
c299f65
Add refactored support for Arduino Diecimila
explicite Apr 24, 2021
222597a
generic: spi: Small code improvement
drmorr0 May 1, 2021
8c1b351
Add refactored support for Sparkfun Pro Micro
explicite May 1, 2021
e401223
ravedude: Better reset instructions
Rahix May 1, 2021
5a7136f
promicro: Fix pin names
Rahix May 1, 2021
f9bbb70
ravedude: Add support for Arduino Micro
jnnks Jun 20, 2021
28f7cb2
Add rust-toolchain.toml
Jul 2, 2021
8f0e000
arduino-hal: Use runtime directly from avr-device
Rahix Jul 8, 2021
9eaa39c
ci: Prepare `master` -> `main` transition
Rahix Jul 8, 2021
2f85892
Update README
Rahix Jul 8, 2021
5c666ba
arduino-hal: Fix a build triggering the avr-device error
Rahix Jul 9, 2021
e1dc4e7
arduino-hal: Document the #[entry] macro
Rahix Jul 9, 2021
b055cac
arduino-hal: Document more items
Rahix Jul 9, 2021
11e8f66
avr-hal-generic: Improve `port` module documentation
Rahix Jul 9, 2021
22f7d20
README: Update documentation links
Rahix Jul 9, 2021
be73519
ci: Update documentation workflow for new crates
Rahix Jul 9, 2021
431666d
arduino-hal: Add more crate-level docs
Rahix Jul 9, 2021
d67a27e
examples: Add a README
Rahix Jul 9, 2021
b181c96
README: Fix typo
Rahix Jul 9, 2021
ae1a0f9
mcu/*: Add crate-level documentation
Rahix Jul 9, 2021
9ae3917
ravedude: add support for trinket-pro (+change Board to support devic…
gauteh Jul 8, 2021
85ee7b8
trinket-pro: add arduino-hal + blink example
gauteh Jul 9, 2021
05af0f7
ci: add trinket-pro as test target
gauteh Jul 9, 2021
577a5d4
ravedude: Override toolchain to `stable`
Rahix Jul 10, 2021
173a393
ravedude: trinket-pro needs reset
gauteh Jul 11, 2021
dd23a24
examples: uno: Forward port the millis() example
Rahix Jul 11, 2021
3e70468
examples: uno: Forward port the HC-SR04 example
Rahix Jul 11, 2021
e5ebfd2
examples: uno: Forward port the uno-panic example
Rahix Jul 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 66 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,54 @@ name: Continuous Integration
on:
push:
branches:
- master
- main
- next
- wip
pull_request:

jobs:
board-ci:
name: "Board: ${{ matrix.board }}"
ci:
name: "${{ matrix.m.type }}: ${{ matrix.m.name }}"
strategy:
fail-fast: true
matrix:
board:
- arduino-uno
- arduino-leonardo

- arduino-mega2560
- bigavr6
- trinket
- sparkfun-pro-micro
m:
- type: board
name: arduino-uno
- type: board
name: arduino-diecimila
- type: board
name: arduino-leonardo
- type: board
name: arduino-mega2560
- type: board
name: sparkfun-promicro
- type: board
name: trinket-pro
- type: mcu
name: atmega1280
spec: atmega1280
crate: atmega-hal
- type: mcu
name: atmega168
spec: atmega168
crate: atmega-hal
- type: mcu
name: atmega328pb
spec: atmega328p
crate: atmega-hal
- type: mcu
name: atmega48p
spec: atmega48p
crate: atmega-hal
- type: mcu
name: attiny85
spec: attiny85
crate: attiny-hal
- type: mcu
name: attiny88
spec: attiny88
crate: attiny-hal
runs-on: ubuntu-latest
steps:
- name: Checkout code
Expand All @@ -35,4 +65,28 @@ jobs:
- name: Install avr-gcc, binutils, and libc
run: sudo apt-get install -y avr-libc binutils-avr gcc-avr
- name: Compile board crate and examples
run: cd "boards/${{ matrix.board }}" && cargo build --examples
if: "${{ matrix.m.type == 'board' }}"
run: cd "examples/${{ matrix.m.name }}" && cargo build --bins
- name: Test-compile HAL crate for an MCU
if: "${{ matrix.m.type == 'mcu' }}"
run: cd "mcu/${{ matrix.m.crate }}" && cargo build --features "${{ matrix.m.name }}" -Z build-std=core --target "../../avr-specs/avr-${{ matrix.m.spec }}.json"

ravedude:
name: "ravedude"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install libudev
run: sudo apt-get update && sudo apt-get install -y libudev-dev
- name: Check ravedude
uses: actions-rs/cargo@v1
with:
command: check
args: --manifest-path ravedude/Cargo.toml
10 changes: 7 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Documentation
on:
push:
branches:
- master
- main

jobs:
docs:
Expand All @@ -19,8 +19,12 @@ jobs:
toolchain: nightly-2021-01-07
override: true
components: rust-src
- name: Build documentation
run: cargo doc --all
- name: Build documentation (arduino-hal)
run: cd arduino-hal/ && cargo doc --features arduino-uno
- name: Build documentation (atmega-hal)
run: cd mcu/atmega-hal/ && cargo doc --features atmega328p
- name: Build documentation (attiny-hal)
run: cd mcu/attiny-hal/ && cargo doc --features attiny85
- name: Deploy to GH-Pages
uses: peaceiris/actions-gh-pages@v3
with:
Expand Down
35 changes: 18 additions & 17 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,25 @@ members = [
# The generic hal definitions
"avr-hal-generic",

# The chip definitions
"chips/atmega1280-hal",
"chips/atmega168-hal",
"chips/atmega2560-hal",
"chips/atmega328p-hal",
"chips/atmega32u4-hal",
"chips/atmega48p-hal",
"chips/attiny85-hal",
"chips/attiny88-hal",
# MCU HAL crates
"mcu/atmega-hal",
"mcu/attiny-hal",

# The board crates
"boards/arduino-diecimila",
"boards/arduino-leonardo",
"boards/arduino-uno",
"boards/arduino-mega2560",
"boards/bigavr6",
"boards/sparkfun-pro-micro",
"boards/trinket",
# Higher level crates
"arduino-hal",

# Examples
"examples/arduino-diecimila",
"examples/arduino-leonardo",
"examples/arduino-mega2560",
"examples/arduino-nano",
"examples/arduino-uno",
"examples/sparkfun-promicro",
"examples/trinket-pro",
]
exclude = [
# The RAVEDUDE! Yeah!
"ravedude",
]

[patch.crates-io]
Expand Down
Loading