目录

Splice - a DSL for Software-Defined Satellite Applications

Current (OPS-SAT version of Splice) minimal language specifications

variables/constants:

  • variable or constant names: alphanumeric, starts with letter a-zA-Z[0-9a-zA-Z]*
  • only simple, non-compound typed variables are possible i.e
    • var variable1:i32 or var variable2:f32 are acceptable declarations, anything else isn’t

numeric literals:

  • positive and negative 32-bit integers, i.e -1, 0, 40001
  • single-precision floating points, just like in C, i.e. 1E-15, or -9.0E4;

types:

  • two types supported explicitely: i32 (signed integers) and f32 (single precision floating point)
  • boolean type supported implicitely for “prerequisites” section (preq)

expressions and statements:

  • basic arithmetic, transcendental and trigonometric operations and assignment operator supported
  • Refer to Splice whitepaper for full list of operations supported by VM assembly
  • only boolean expressions allowed in preq section
  • only assignment/math expressions allowed in exec section

keywords (task list file only):

  • group, task, data, freq, preq, exec, var, f32, i32, const, return

keywords (instrument definition file only):

  • inst, queue, size, type, accs, shed, var, prop

program structure (as described in whitepaper):

  • multiple groups and tasks (up to 16 groups with up to 16 taks in each group)
  • group can included multiple tasks
  • each group and each task has a name
  • tasks in the same group have read-only visibility of each other data
  • task structure:
    • data section
    • frequency section (how often to repeat the task: “once”, at fixed interval or “always” - as fast as scheduler allows)
    • prerequisites section (what has to be true for task to run)
    • executive section (the actual task code)

OPS-SAT instrument specifications

  • Camera, GPS and ADCS instruments are available at the moment - instrument definition file TBD

Compilation process imagined:

  • Instrument definition files (.spli extension) are provided from the satellite operations team
  • Group/task list in a source file (.spl extension) are provided from software developers
  • Each task is compiled into a single assembly file (.splc)
  • Linker can produce a semi-binary executable file compatible with VM OPS-SAT from one or many assembly files (.splx)
  • Source: (.spl+.spli) -> assembly representation (.splc) -> executable format (.splx)
  • For future satellite missions both assembly and executable formats can and should change, but high-level syntax should’t
  • Each satellite may have its own instrument definition file (.spli), slightly or significantly different from each other
关于

AeroRust 社区的软件定义卫星(SDS)应用专用 DSL,Rust 实现,用于描述与生成星载软件定义无线电/载荷应用。镜像收录自 https://github.com/AeroRust/splice,License:GPL-3.0

479.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号