zmk-javelin-steno/src/dict_embed.S
afiqzudinhadi 1751171667 Phase 3: dictionary loading pipeline + binary embedding
- engine_init.cc: loads StenoDictionaryCollection from embedded binary,
  validates JSC4 magic + timestamp, constructs dict list + full processor
  pipeline (Repeat → AllUp → JeffModifiers → Engine)
- dict_embed.S: embeds compiled dict binary via .incbin directive.
  Falls back to null placeholder if no dict available
- CMakeLists.txt: dict binary discovery (dicts/steno_dict.bin or
  JAVELIN_DICT_BIN cmake var), assembly embedding
- tools/dict_compiler/compile_dict.py: stroke parser + skeleton compiler.
  Full JSC4 binary format not yet implemented — for now, use Javelin
  web tool (lim.au) to generate dict binary
- dicts/: directory for compiled dictionary binaries

Dict compiler is the remaining gap — JSC4 format requires exact XIP
pointer layout matching Javelin's C++ struct casting.
2026-06-22 21:26:23 +08:00

17 lines
446 B
ArmAsm

/* Embed compiled steno dictionary binary into firmware.
* JAVELIN_DICT_BIN_PATH is set by CMake to the path of the compiled
* dictionary file. If not set, a 4-byte null placeholder is used.
*/
.section .rodata.steno_dict,"a",%progbits
.global _javelin_dict_start
.global _javelin_dict_end
.balign 4
_javelin_dict_start:
#ifdef JAVELIN_DICT_BIN_PATH
.incbin JAVELIN_DICT_BIN_PATH
#else
.byte 0x00, 0x00, 0x00, 0x00
#endif
_javelin_dict_end: