Timestamp Peripherals for Precise Real-Time Programming

被引:1
|
作者
Hui, John [1 ]
Edwards, Kyle J. [1 ]
Edwards, Stephen A. [1 ]
机构
[1] Columbia Univ, New York, NY 10027 USA
关键词
real time systems; concurrency control; computer languages; timing;
D O I
10.1145/3610579.3611084
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
On microcontrollers, timer devices provide high-precision timing, but that precision is lost when using high-level languages without suitable abstractions for temporal behavior. So, for timing-sensitive applications, programmers resort to low-level languages like C which lack expressiveness and safety guarantees. Other programmers use specialized precision-timing hardware which is expensive and difficult to obtain. In this work, we achieve sub-microsecond precision from a high-level real-time programming language on the RP2040, a cheap, widely available microcontroller. Our work takes advantage of the RP2040's Programmable I/O (PIO) devices, which are cycle-accurate coprocessors designed for implementing hardware protocols over the RP2040's GPIO pins. We use the PIO devices to implement timestamp peripherals, which are input capture and output compare devices. We use timestamp peripherals to mediate I/O from programs written in Sslang, a real-time programming language with deterministic concurrency. We show that timestamp peripherals help Sslang programs achieve the precise timing behavior prescribed by Sslang's Sparse Synchronous Programming model.
引用
收藏
页码:137 / 147
页数:11
相关论文
共 50 条
  • [41] REAL-TIME PROGRAMMING-LANGUAGES
    HENRY, R
    INTERNATIONAL JOURNAL OF MAN-MACHINE STUDIES, 1981, 14 (03): : 355 - 369
  • [42] Programming Paradigms for Real-Time Systems
    Landauer, Christopher
    Bellman, Kirstie L.
    2014 IEEE 17TH INTERNATIONAL SYMPOSIUM ON OBJECT/COMPONENT/SERVICE-ORIENTED REAL-TIME DISTRIBUTED COMPUTING (ISORC), 2014, : 366 - 373
  • [43] Real-Time Ticks for Synchronous Programming
    von Hanxleden, Reinhard
    Bourke, Timothy
    Girault, Alain
    2017 FORUM ON SPECIFICATION AND DESIGN LANGUAGES (FDL), 2017,
  • [44] Visual real-time programming language
    Bastiaens, K., 1600, (01):
  • [45] INTERVENTION SCHEDULES FOR REAL-TIME PROGRAMMING
    ABBOTT, C
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1984, 10 (03) : 268 - 274
  • [46] PROGRAMMING TECHNIQUES FOR REAL-TIME MONITOR
    CHUBB, BA
    SIMULATION, 1972, 19 (03) : 108 - &
  • [47] MULTILEVEL PROGRAMMING FOR A REAL-TIME SYSTEM
    SHAFRITZ, AB
    MILLER, AE
    ROSE, K
    COMMUNICATIONS OF THE ACM, 1961, 4 (11) : 479 - 479
  • [48] VISUAL METHODS IN REAL-TIME PROGRAMMING
    HINCHEY, MG
    CONTROL ENGINEERING PRACTICE, 1995, 3 (06) : 837 - 842
  • [49] Timestamp Vector based Optimistic Concurrency Control Protocol for Real-Time Databases
    Bai, Tian
    Liu, YunSheng
    Hu, Yong
    2008 4TH INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS, NETWORKING AND MOBILE COMPUTING, VOLS 1-31, 2008, : 11409 - 11412
  • [50] Precise Real-Time Positioning in WADGPS Networks
    Retscher G.
    Chao C.H.J.
    GPS Solutions, 2000, 4 (2) : 68 - 75