# 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