1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-06-28 11:31:32 +02:00
Commit Graph

76 Commits

Author SHA1 Message Date
c5863f6642 Add optional extension to RTC exercise (#562)
* Add methods to mask and clear interrupts.

* Start on GICv3 driver.

* Enable and use RTC interrupt.

* WFI

* Add newtype for interrupt ID.

* Add extension to use interrupt.

* Add method to send an SGI.

* Silence warnings about unused methods in provided drivers.

* Implement Debug manually for IntId.

It's useful to say what kind of interrupt it is.

* Acknowledge and log interrupt.

We should end it as well, but doing so results in a loop unless we first
clear the match.

* cargo fmt with imports_granularity = "module"

* Use arm-gic crate rather than including driver in the example.
2023-04-17 15:38:51 +01:00
d143528e07 Minor fix-ups to the async section. (#566)
These address some comments in #496.
2023-04-16 19:20:24 -04:00
87f1976589 cargo fmt with imports_granularity = "module" (#564) 2023-04-16 20:57:59 +02:00
0d30da7f23 Add an "async" session (#496)
* beginning of an Async section

* address review comments

* Add futures page (#497)

NOTE: `mdbook test` does not allow code samples to reference other crates, so
they must be marked as `compile_fail`; see #175.

* Add Runtimes & Tasks (#522)

These concepts are closely related, and there's not much else to know
about runtimes other than "they exist".

This removes the bit about futures being "inert" because it doesn't
really lead anywhere.

* Async chapter (#524)

* Add async channels chapter

* Async control flow

* Async pitfalls

* Separate in multiple chapters + add daemon section

* Merge reentering threads in blocking-executor

* async_trait

* Async fixes (#546)

* Async: some ideas for simplifying the content (#550)

* Simplify the async-await slide
* Shorten futures and move it up
* Add a page on Tokio

* Modifications to the async section (#556)

* Modifications to the async section

* Remove the "Daemon" slide, as it largely duplicates the "Tasks" slide.
  The introduction to the "Control Flow" section mentions tasks as a
  kind of control flow.

* Reorganize the structure in SUMMARY.md to correspond to the directory
  structure.

* Simplify the "Pin" and "Blocking the Executor" slides with steps in
  the speaker notes to demonstrate / fix the issues.

* Rename "join_all" to "Join".

* Simplify some code samples to shorten them, and to print output rather
  than asserting.

* Clarify speaker notes and include more "Try.." suggestions.

* Be consistent about where `async` blocks are introduced (in the
  "Tasks" slide).

* Explain `join` and `select` in prose.

* Fix formatting of section-header slides.

* Add a note on async trait (#558)

---------

Co-authored-by: sakex <alexandre@senges.ch>
Co-authored-by: rbehjati <razieh@google.com>
2023-04-14 14:06:50 +00:00
6c97e1a7be Add a new async exercise: elevator simulation. (#557) 2023-04-13 16:26:57 +02:00
d8e442b9cb Extend bare metal afternoon exercise (#561)
* Add methods to set match register and check whether it matches.

* Add first extension to RTC exercise, using match register.

* No need for constants to be public.
2023-04-13 10:58:06 +01:00
5b316b8b5b Prevent accidental publishing the link-checker exercise 2023-04-11 10:47:18 +01:00
bf18b33e39 Use exerciser for day 4 exercises too. 2023-04-11 10:47:18 +01:00
5cdb73387f Inline format vars to make the format str simpler (#551) 2023-04-06 12:00:10 +02:00
86d8c4ae54 Rename exercise template directory and archive. 2023-04-05 16:28:07 +01:00
9375126b3c Use comment rather than inline code to find filename. 2023-04-05 16:28:07 +01:00
c17e8abbd7 Add links to exercise template archive. 2023-04-05 16:28:07 +01:00
a3eaeca212 Update scraper dependency (#547)
* Update scraper dependency to 0.15.0

No code changes required because of this.

* Update dependencies in lock file
2023-04-04 14:27:46 +02:00
4338cd5744 Bump spin from 0.9.6 to 0.9.8 in /src/exercises/bare-metal/rtc (#543)
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.6 to 0.9.8.
- [Release notes](https://github.com/mvdnes/spin-rs/releases)
- [Changelog](https://github.com/mvdnes/spin-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mvdnes/spin-rs/commits)

---
updated-dependencies:
- dependency-name: spin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-04 08:54:30 +02:00
aa1036af66 Add more hints for bare metal morning exercise. 2023-03-27 17:20:31 +01:00
956c137e51 Format hints as bullet-points. 2023-03-27 17:20:31 +01:00
d513109b92 Add Mac OS instructions for picocom too. 2023-03-27 17:20:31 +01:00
6f83b97e69 Fix Markdown formatting. 2023-03-27 17:20:31 +01:00
357f62e137 A compass doesn't tell us the temperature. 2023-03-27 17:20:31 +01:00
8ed300d620 Fix Linux build of bare metal AP code. 2023-03-27 17:20:31 +01:00
ae83778173 Show actual driver code on solution page. 2023-03-27 17:20:31 +01:00
9c166d4e97 Set publish = false in examples and exercises. 2023-03-23 15:12:23 +00:00
fa56c70dcb Get AP examples working on Mac OS too. 2023-03-23 15:06:23 +00:00
fc36e40eef Make base address constants a pointer rather than a usize. 2023-03-23 15:06:23 +00:00
fb3fd3979c Add RTC exercise. 2023-03-23 15:06:23 +00:00
259dfcb1eb Bump cortex-m-rt from 0.7.2 to 0.7.3 in /src/exercises/bare-metal/compass (#517)
Bump cortex-m-rt in /src/exercises/bare-metal/compass

Bumps [cortex-m-rt](https://github.com/rust-embedded/cortex-m) from 0.7.2 to 0.7.3.
- [Release notes](https://github.com/rust-embedded/cortex-m/releases)
- [Changelog](https://github.com/rust-embedded/cortex-m/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-embedded/cortex-m/compare/v0.7.2...v0.7.3)

---
updated-dependencies:
- dependency-name: cortex-m-rt
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-20 14:44:56 +00:00
e2d7bc56ec Add other files for compass exercise to exercise page. 2023-03-20 14:26:57 +00:00
8513adfd3c Add more hints for compass exercise. 2023-03-20 14:26:57 +00:00
a070573867 Expand IMU acronym first time. 2023-03-20 14:26:57 +00:00
52f0c9ef64 Rename Day 5A to Bare Metal Rust. 2023-03-20 14:26:57 +00:00
ecbb7e41bb Format imports with imports_granularity = "Module". 2023-03-20 14:26:57 +00:00
f40261646c Add option to display accelerometer rather than compass. 2023-03-20 14:26:57 +00:00
8f2a851e95 Display accelerometer rather than compass. 2023-03-20 14:26:57 +00:00
44a4b4b234 Display compass values on LEDs. 2023-03-20 14:26:57 +00:00
82f4dab523 Get compass solution working and add more information. 2023-03-20 14:26:57 +00:00
af0d97d1a7 Fix mdbook test. 2023-03-20 14:26:57 +00:00
354834c711 Template, hint and extension for compass exercise. 2023-03-20 14:26:57 +00:00
062129546a Temperature logger is no more. 2023-03-20 14:26:57 +00:00
deff63f9a5 cargo-embed config 2023-03-20 14:26:57 +00:00
78d1fc2836 Fill in solution for compass exercise. 2023-03-20 14:26:57 +00:00
fb2a81186b Initialise I2C bus. 2023-03-20 14:26:57 +00:00
026cdca2b7 Use micro:bit v2 for temperature logger example. 2023-03-20 14:26:57 +00:00
e21a83d5e8 Start or temperature logger exercise. 2023-03-20 14:26:57 +00:00
bfed596d28 Generalize the day-4 afternoon (#487)
* Generalize the day-4 afternoon

This is in preparation for adding more options for this portion of the
course, and reflects an existing practice of substituting other
materials for this last half-day.

* address review comments
2023-03-10 09:07:36 -05:00
c22b35e426 Remove silenced warnings in book-library exercise (#388)
* Update book-library.md

* Update book-library.rs

* Apply suggestions from code review

Expanding the variable makes it ever-so-slightly easier to read.

---------

Co-authored-by: Martin Geisler <mgeisler@google.com>
2023-02-28 17:53:02 -08:00
2436560e40 Let user know they can modify the tests, but do not need to. (#401) 2023-02-14 12:28:22 -08:00
426d7d91c2 Update points-polygons.md (#361) 2023-02-09 20:49:35 +00:00
c4bc10e31d Inline variables printed with println! and friends (#315)
The course follows the style of inlining variable names where possible
in `println!` statements.
2023-02-09 07:48:18 +01:00
b5518e9b16 Add a solution for day 1's bonus question with generics. (#338) 2023-02-03 15:29:49 +00:00
20f02db5f5 Add a cargo workspace containing both crates (#321)
* Move Cargo.toml for exercises to exercises directory.

* Create a workspace with both exercises and i18n-helpers.

* Build in CI as well as testing.

* Binaries must have a main function.

* No need for workspaces configuration for caching anymore.
2023-02-02 16:14:34 +00:00