---
# System prepended metadata

title: 'Embedded for Beginners Training, 16th of April'

---

# Embedded for Beginners Training, 16th of April
# Embedded for Advanced Training, 23th of April


## Questions?

- [ ] write them here like this
- [x] Is the panic handler only for runtime errors?

This panic handler is only for runtime errors, not        for exceptions. But `#[exception]` lets you define        an exception handler and overwrite standard          behavior.
HardFault is the main exception
API docs: https://docs.rs/cortex-m-rt/0.6.13/cortex_m_rt/attr.exception.html

- [ ] Have the materials been verified with an M1 mac?
- [x] How to turn .rs files into .hex
1. you can use a system tool like (GNU) objcopy
you can Rust tooling like rust-objcopy and cargo-objcopy. those come from the cargo-binutils crate https://crates.io/crates/cargo-binutils
2. you can use the ihex library. https://crates.io/crates/ihex
example usage within the workshop material: https://github.com/ferrous-systems/embedded-trainings-2020/blob/dbb7ada3615e6e1cd03d7a5295d97d0ec285c3b9/xtask/src/tasks.rs#L81

[knurling app-template]: https://github.com/knurling-rs/app-template

https://knurling.ferrous-systems.com/sessions/

## Dates & zoom link

April 16th: [Beginner workshop](https://embedded-trainings.ferrous-systems.com/beginner-workbook.html)
April 23rd: [Advanced workshop](https://embedded-trainings.ferrous-systems.com/advanced-workbook.html)

Zoom link: https://us02web.zoom.us/j/84725077757?pwd=U0svZlZoR1ZLVmpINHdIWXdRcGVXUT09

## Time

The workshops runs from 4 PM to 7:30 PM CET (Berlin), check [https://everytimezone.com](https://everytimezone.com/s/d36e1cf1) for the start time in your local timezone

## Preparation

### Required hardware

To work through the workshop material you'll need the following hardware

- [nRF52840 Development Kit (DK)](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK)
- ~~[nRF52840 Dongle](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52840-Dongle)~~
- 2 micro-USB cables
- 2 available USB-A ports on your laptop / PC (you can use a USB hub if you don't have enough ports)

### Tooling

**Beginners**

Please complete the first 2 sections, "1. Preparation" and "2. Tooling check" of the [Workbook] **before** the start of the workshop.
These sections will guide you through installing required tools and setting up your development environment.

**Advanced**

No additional tooling nessesary

## During the workshop

Use the [Workbook] for [Troubleshooting] and tips on each course assignment.

The Workbook structure follows the workshop tasks you'll be given and contains additional hints.

## Material

- [Workbook]
- [Starter code]
- [Troubleshooting]


[Troubleshooting]: https://embedded-trainings.ferrous-systems.com/troubleshooting.html
[Workbook]: https://embedded-trainings.ferrous-systems.com/preparations.html
[Starter code]: https://github.com/ferrous-systems/embedded-trainings-2020
[USB 2.0 Specification]: https://www.usb.org/document-library/usb-20-specification

