How parezj/embo works
EMBO is a PC-controlled embedded measurement system: a user selects a device and connects the desktop application to STM32 firmware, which acquires or generates signals and returns measurement data. The README identifies oscilloscope, logic analyzer, voltmeter, counter, PWM, and signal generator capabilities; it also documents scope analysis, export, and measurement controls. The sampled firmware shows board startup entering the shared FreeRTOS application, whose tasks perform trigger handling and communication. Some UI and device modules are represented by their exact enclosing directories because their implementation excerpts were not supplied; links to unsampled subsystems are omitted or marked unverified.
Main entry points: windows Device selection · app.c Firmware tasks · window_scope.cpp Oscilloscope · board Board startup
Components 18
PC application
- Desktop app
src/software/EMBO/src/main.cpp - Device selection
src/software/EMBO/src/windows
Measurement devices
- Oscilloscope
src/software/EMBO/src/windows/window_scope.cpp - Logic analyzer
src/software/EMBO/src/windows - Voltmeter
src/software/EMBO/src/windows - Counter
src/software/EMBO/src/windows - PWM generator
src/software/EMBO/src/windows/window_pwm.cpp - Signal generator
src/software/EMBO/src/windows - Scope analysis
src/software/EMBO/src/windows/window_scope.cpp - Data export
src/software/EMBO/src/windows
Firmware runtime
- Firmware tasks
src/firmware/src/app/app.c - DAQ trigger
src/firmware/src/app - Firmware communication
src/firmware/src/app - FreeRTOS kernel
src/firmware/src/os/tasks.c
Board support
- Board startup
src/firmware/board - USB device
src/firmware/board/STM32F103C8/USB_DEVICE/App
Other components
- Operator
- STM32 device
Connections 18
- Operator → Desktop app: starts
src/software/EMBO/src/main.cpp - Desktop app → Device selection: opens
src/software/EMBO/src/main.cpp - Device selection → Oscilloscope: selects
src/software/EMBO/src/windows/window_scope.cpp - Device selection → Logic analyzer: selects
- Device selection → Voltmeter: selects
- Device selection → Counter: selects
- Device selection → PWM generator: selects
- Device selection → Signal generator: selects
- Oscilloscope → Scope analysis: analyzes
src/software/EMBO/src/windows/window_scope.cpp - Oscilloscope → Data export: exports
src/software/EMBO/src/windows/window_scope.cpp - Board startup → Firmware tasks: starts
src/firmware/board/STM32F103C8/Core/Src/main.c - Board startup → USB device: initializes
src/firmware/board/STM32F103C8/Core/Src/main.c - Firmware tasks → FreeRTOS kernel: starts scheduler
src/firmware/src/app/app.c - Firmware tasks → DAQ trigger: checks trigger
src/firmware/src/app/app.c - Firmware tasks → Firmware communication: processes messages
src/firmware/src/app/app.c - STM32 device → Board startup: runs firmware
- Device selection → STM32 device: connects
- STM32 device → Device selection: returns measurements