Building Embedded Drivers for Industrial Communication using Code-generation
summary
Code generation called m-spec models wire formats, uses ANTLR4 + FreeMarker to emit parsers/serializers and models for Java, Go, C (C# branch, Python planned), and handles discriminators, implicit fields and length formulas; unit tests use XML round‑trip binary↔XML and integration tests simulate full driver I/O. Java runtimes are ~10–15 MB, Go is the practical embedded sweet spot, and 100–200 KB c drivers run on single‑threaded STM32 class hardware. Goal is 98% generated protocol code; example TPkt/COTP output and tests are working.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:35Who am I
- 1:43Agenda
- 3:12Project Statement
- 4:16Project Website
- 7:35Operations
- 9:30PLC for Go
- 15:32Challenges
- 19:01MSpec
- 21:02Example
- 22:54Simple fields
- 24:55Data structure
- 31:48Testing
- 34:53Integration Test
- 43:13Linux Foundation Projects
- 48:17Outro
related talks
47mPolyglot Apache PLC4X
39mCodegen your problems away - device-driver toolkit
06mEmbedded Executive LIVE
27mCoding Qt for greater interoperability and portability ...
01h 10mHardware DSLs
43mBeyond Static Devicetrees: Implementing Runtime Hardware Dynamism in Ze...
01h 05mAgile embedded development under regulatory constraints
32mECMA-419: The ECMAScript Embedded Systems API and J5e
