How fagci/hawk5 works
hawk5 is embedded firmware for a handheld radio. The principal workflow is user input selecting a radio app, which configures the radio or scans channels/frequencies, then presents status or measurements on the display. The tree also shows channel/VFO management, settings, and persistent storage. The excerpts confirm app dispatch, scan-to-radio/spectrum/loot interactions, and radio chip drivers; wiring for other listed app capabilities is inferred only at subsystem level and is not expanded into unsupported call chains.
Main entry points: apps.c App manager · radio.c Radio control · scan.c Scan engine · spectrum.c Spectrum view
Components 26
Firmware runtime
- Startup
src/main.c - System runtime
src/system.c - Scheduler
src/scheduler.c - App manager
src/apps/apps.c
Radio applications
- Scan apps
src/apps/scaner.c - Band scan
src/apps/bandscan.c - Channel apps
src/apps/chlist.c - VFO control
src/apps/vfo1.c - Settings UI
src/apps/settings.c - Spectrum view
src/ui/spectrum.c
Radio domain
- Radio control
src/radio.c - Scan engine
src/helper/scan.c - Channel data
src/helper/channels.c - Band data
src/helper/bands.c - Signal log
src/helper/lootlist.c - Radio settings
src/settings.c - Measurements
src/helper/measurements.c
Device hardware
- UI graphics
src/ui/graphics.c - Status line
src/ui/statusline.c - Keyboard
src/driver/keyboard.c - LCD driver
src/driver/st7565.c - BK4819 radio
src/driver/bk4819.c - SI473x receiver
src/driver/si473x.c - EEPROM
src/driver/eeprom.c - Board drivers
src/board.c
Other components
- Radio user
Connections 32
- Startup → Board drivers: initializes
- Startup → System runtime: starts
- System runtime → Scheduler: runs
- Radio user → Keyboard: presses keys
- Keyboard → App manager: key events
- App manager → Scan apps: dispatches
- App manager → Band scan: dispatches
- App manager → Channel apps: dispatches
- App manager → VFO control: dispatches
- App manager → Settings UI: dispatches
- App manager → Status line: sets text
- App manager → UI graphics: clears screen
- Scan apps → Scan engine: uses
- Band scan → Scan engine: uses
- Scan engine → Radio control: tunes and measures
- Scan engine → Channel data: loads channels
- Scan engine → Band data: uses band limits
- Scan engine → Signal log: updates signals
- Scan engine → Spectrum view: adds points
- Spectrum view → Measurements: reads measurements
- Spectrum view → UI graphics: draws graph
- VFO control → Radio control: configures VFO
- Channel apps → Channel data: manages channels
- Settings UI → Radio settings: edits settings
- Radio control → Radio settings: reads settings
- Radio control → BK4819 radio: controls transceiver
- Radio control → SI473x receiver: controls receiver
- Radio control → Channel data: uses channel data
- Radio control → EEPROM: stores VFO data
- UI graphics → LCD driver: draws pixels
- Board drivers → Keyboard: initializes
- Board drivers → LCD driver: initializes