Firmware Notes
This page collects some notes about the host-driven RF firmware, running on the EFR32FG23 chip on the board.
- RAIL initialization fails with custom build system
- This is because a LDMA transfer is set up, but something gets wonky with the initialization and the destination address mode is set to decrement.
- Most likely caused due to an ABI mismatch between the compiled RAIL library, and our code (or some headers?) compiled for the drivers, specifically the LDMA driver; current workaround is to monkeypatch the LDMA driver to never set the direction bits (thus completely ignoring the "broken" transfer struct)
- Temperature sensor driver has cast to double
- In
TEMPDRV_GetTemp()
, the 0.5 constant needs to have af
suffix to make it float, rather than double to compile with the enhanced warnings about upcasts
- In
- Host irq system is busted
- There should be a separate “irq acknowledge” register, instead of making the interrupt levels be dependent on doing some action
- Currently there’s a possible race between an irq handler and a packet receive, which wedges irq’s
No Comments