1. Introduction
  2. Rust Fundamentals
  3. Fizzbuzz
    1. Fizzbuzz Cheat-Sheet
  4. Fizzbuzz with match
  5. Rust Latin
  6. URLs, match, result
  7. Calculator
  8. Iterators
  9. SimpleDB
    1. Knowledge
    2. Step-by-Step Solution
  10. Green and Yellow game
  11. Applied Rust
  12. Shapes
  13. TCP Echo Server
    1. Share data between connections
  14. Connected Mailbox
  15. Multithreaded mailbox
  16. Self-check Project
  17. Self-check project
  18. Advanced Rust
  19. Async TCP Chat Server
    1. Specification and Getting started
    2. Writing an Accept Loop
    3. Receiving Messages
    4. Sending Messages
    5. A broker as a connection point
    6. Glueing all together
    7. Clean Shutdown
    8. Handling Disconnection
    9. Final Server Code
    10. Implementing a Client
  20. Verifying Data Structures with Kani
  21. Building a Linux Kernel Driver using Rust
  22. Rust for Microcontrollers
  23. Preparation
    1. Code Organization
    2. Hardware
    3. Software Tools
  24. References and Resources
    1. Tooltips
  25. Troubleshooting
    1. cargo-size is not working
    2. Rust analyzer is not working
    3. cargo build fails to link
    4. Dongle USB functionality is not working
    5. cargo run errors
    6. no probe was found error
    7. location info is incomplete error
  26. nRF52 Radio Exercise
    1. Parts of an Embedded Program
    2. Building an Embedded Program
    3. Binary Size
    4. Running the Program
    5. Panicking
    6. Using a Hardware Abstraction Layer
    7. Timers and Time
    8. nRF52840 Dongle
    9. Radio Out
      1. Radio Setup
      2. Messages
      3. Link Quality Indicator (LQI)
    10. Radio In
    11. Radio Puzzle
    12. Radio Puzzle Help
    13. Next Steps
      1. Alternative containers
      2. Collision avoidance
      3. Interrupt handling
      4. Starting a Project from Scratch
  27. nRF52 HAL Exercise
    1. Adding Buttons
  28. nRF52 USB Exercise
    1. Listing USB Devices
    2. Hello, world!
    3. Checking the API documentation
    4. RTIC hello
    5. Dealing with Registers
    6. Event Handling
    7. Task State
    8. USB Enumeration
    9. USB-1: Dealing with USB Events
    10. USB Endpoints
    11. USB Control Transfers
    12. USB-2: SETUP Stage
    13. USB Device Descriptors
    14. USB-3: DATA Stage
    15. USB Configuration Descriptors
    16. USB-4: Supporting more Standard Requests
    17. USB-5: Getting it Configured
    18. USB-5: Idle State
    19. Next Steps
    20. Extra Info
      1. The USB Specification
      2. DMA
      3. SET_CONFIGURATION (Linux & macOS)
      4. USB Interfaces
      5. USB Interface descriptor
      6. USB Endpoint descriptor
      7. Inspecting the Descriptors
      8. Stack Overflow Protection
  29. Rust for Real-Time Systems
  30. Working without std
    1. Replacing println!
  31. Bare-Metal Firmware on Cortex-R52
    1. UART Driver