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.
This commit is contained in:
parent
d4dc836b52
commit
1751171667
6 changed files with 411 additions and 46 deletions
17
src/dict_embed.S
Normal file
17
src/dict_embed.S
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
/* 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:
|
||||
Loading…
Add table
Add a link
Reference in a new issue