Assignments for Making Embedded Systems class.
- Exercise 1
- Exercise 2.1
- Exercise 2.2
- Exercise 3a
- Exercise 3b See also Class Materials, spi_flash.h
- Exercise 4
- Exercise 5
- Exercise 6
- Exercise 7
- Exercise 8
- Exercise 9
- Final Project and Final Project Report
Hardware
- STM32L4 Series
- Mouser B-L475E-IOT01A1
- Mouser SPBTLE-RF, Datasheet
- ST B-L475E-IOT01A STM32L4 Discovery kit IoT node
- Migrating from STM32L4 and STM32L4+ to STM32L5 Series microcontrollers (AN5138)
Specifications
- User Manual (57 pages) STM32L4 Discovery kit for the IoT node (B-L475E-IOT01A)
- Data brief (4 pages) ST B-L475E-IOT01A Discovery kit for IoT node, multi-channel communication with STM32L4
- STM32L475VG, STM32L475xx datasheet (204 pages)
- STM32L475xx Datasheet AN4666
Application Notes
- Using the STM32F2, STM32F4 and STM32F7 Series DMA controller AN4031
- Using the STM32F0/F1/F3/Gx/Lx Series DMA controller AN2548
- Parallel synchronous transmission using GPIO and DMA
Examples
- B-L475E-IOT01A/Examples (not many examples)
- STM32CubeL4/Projects/B-L475E-IOT01A/Examples/BSP/Src/
- Digi-Key Getting Started with STM32 - Timers and Timer Interrupts
Peripherals
GPIO
mbed
Visual GDB
- Creating Advanced STM32CubeMX-based Projects with VisualGDB
- Controlling STM32 Hardware Timers using HAL
- Using STM32 timers in PWM mode
- sysprogs github visualgdb/ARM tutorials
- sysprogs/BSPTools
RTOS
- CMSIS-RTOS2 Documentation
- GitHub CMSIS Version 5
- The FreeRTOS Reference Manual
- stackoverflow: What are valid values of
HAL_NVIC_SetPriority()
when using STM32 and FreeRTOS? - FreeRTOS Memory Management
- STM32CubeL4 FreeRTOS xPortGetFreeHeapSize
Debuggers
- ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32
- Segger J-Link / J-Trace User Guide
- Converting ST-LINK On-Board Into a J-Link
Sample Code
- ST community: delay in a microsecond(us)
- a-podshivalov/RIOT sample code
- bogde/HX711
- ArduinoCore-samd/cores/arduino/wiring_private.h
- ArduinoCore-avr/cores/arduino/wiring_shift.c - original code for shiftIn()
- logicalelegance/midifun/Core/Console/console.c
- stackoverflow: STM32 HAL timer interrupt isn't triggered
- stackoverflow: STM32F3 Discovery - Implement GPIO-Interrupt
- STM32-libraries/Drivers/LCD/Adafruit_GFX.h
IoT Management Tools
- What Is IoT Device Management and Why Do You Need It?
- Memfault - Cloud Debugging and Observability for Your IoT Devices; Monitoring Fleet Health with Heartbeat Metrics; Defensive Programming
- Tyler Hoffman on embedded.fm to discuss the issues associated with embedded devices at consumer scale.
- Monitor your entire Azure IoT environment with Datadog
- ThingsBoard Open-source IoT Platform
- Azure IoT
- AWS IoT Device Management
Hard Faulkts
Other Stuff
- wikipedia .bss block starting symbol
- pinout
- cmocka unit testing framework for C with support for mock objects
- asciiflow.com
- app.diagrams.net
- lucidChart Block diagram maker
- drawio-desktop
- Everything You Never Wanted To Know About Linker Script
- Basic Concepts in Interrupts from EE 310/310L: Microprocessors and System Design - Introducing ARM
- STM32Cube initialization code generator, specifically STM32 configuration and initialization C code generation
- hackaday stm32cubemx makes makefiles
- godbolt.org