This repository has been archived on 2026-08-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
donglora/vendor/defmt/defmt.x.in
T
swaitsandClaude Opus 4.6 3102fc747a feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support:
- Splash screen on boot (1.5s) with project name, version, board
- Dashboard showing radio state, config, counters, RSSI/SNR
- RSSI history sparkline (64-sample ring buffer, 2px-wide bars)
- DisplayOn/DisplayOff host commands routed via dedicated channel
- Pure render functions against generic DrawTarget (no hardware coupling)
- Display on/off control bypasses radio task entirely

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:42:54 -06:00

51 lines
1.5 KiB
Plaintext

/* exhaustively search for these symbols */
EXTERN(_defmt_acquire);
EXTERN(_defmt_release);
EXTERN(__defmt_default_timestamp);
EXTERN(__DEFMT_MARKER_TIMESTAMP_WAS_DEFINED);
PROVIDE(_defmt_timestamp = __defmt_default_timestamp);
PROVIDE(_defmt_panic = __defmt_default_panic);
SECTIONS
{
/* `1` specifies the start address of this virtual (`(INFO)`) section */
/* Tag number 0 is reserved for special uses, like as a format sequence terminator. */
.defmt 1 (INFO) :
{
/* For some reason the `1` above has no effect, but this does */
. = 1;
/* Format implementations for primitives like u8 */
*(.defmt.prim.*);
/* We order the ids of the log messages by severity and put markers in between, so that we can filter logs at runtime by severity */
__DEFMT_MARKER_TRACE_START = .;
*(.defmt.trace.*);
__DEFMT_MARKER_TRACE_END = .;
__DEFMT_MARKER_DEBUG_START = .;
*(.defmt.debug.*);
__DEFMT_MARKER_DEBUG_END = .;
__DEFMT_MARKER_INFO_START = .;
*(.defmt.info.*);
__DEFMT_MARKER_INFO_END = .;
__DEFMT_MARKER_WARN_START = .;
*(.defmt.warn.*);
__DEFMT_MARKER_WARN_END = .;
__DEFMT_MARKER_ERROR_START = .;
*(.defmt.error.*);
__DEFMT_MARKER_ERROR_END = .;
/* Everything user-defined */
*(.defmt.*);
__DEFMT_MARKER_END = .;
/* Symbols that aren't referenced by the program and */
/* should be placed at the end of the section */
KEEP(*(.defmt.end .defmt.end.*));
}
}
ASSERT(__DEFMT_MARKER_END < 65534, ".defmt section cannot contain more than 65534 interned strings");