Inline Visualization and Manipulation of Real-Time Hardware Log for Supporting Debugging of Embedded Programs

被引:0
作者
Bianchi A. [1 ,2 ]
Yap Z.L. [2 ]
Lertjaturaphat P. [3 ]
Henley A.Z. [4 ]
Moon K.J. [3 ]
Kim Y. [5 ]
机构
[1] Industrial Design & School of Computing, KAIST
[2] School of Computing, KAIST
[3] Industrial Design, KAIST
[4] College of Art & Technology, Chung-Ang University
基金
新加坡国家研究基金会;
关键词
Debugging; Embedded Systems; Expression Language; Hardware logs; Live programming; Physical computing; Visualization;
D O I
10.1145/3660250
中图分类号
学科分类号
摘要
The advent of user-friendly embedded prototyping systems, exemplified by platforms like Arduino, has significantly democratized the creation of interactive devices that combine software programs with electronic hardware. This interconnection between hardware and software, however, makes the identification of bugs very difficult, as problems could be rooted in the program, in the circuit, or at their intersection. While there are tools to assist in identifying and resolving bugs, they typically require hardware instrumentation or visualizing logs in serial monitors. Based on the findings of a formative study, we designed Inline a programming tool that simplifies debugging of embedded systems by making explicit the internal state of the hardware and the program's execution flow using visualizations of the hardware logs directly within the user's code. The system's key characteristics are 1) an inline presentation of logs within the code, 2) real-time tracking of the execution flow, and 3) an expression language to manipulate and filter the logs. The paper presents the detailed implementation of the system and a study with twelve users, which demonstrates what features were adopted and how they were leveraged to complete debugging tasks. © 2024 ACM.
引用
收藏
相关论文
共 53 条
  • [1] Bianchi A., Justin Moon K., Dementyev A., Je S., BlinkBoard: Guiding and monitoring circuit assembly for synchronous and remote physical computing education, HardwareX, (2024)
  • [2] Booth T., Stumpf S., Bird J., Jones S., Crossed Wires: Investigating the Problems of End-User Developers in a Physical Computing Task, Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems (San Jose, California, USA) (CHI '16), pp. 3485-3497, (2016)
  • [3] Brocker A., Voelker S., Zelun Zhang T., Muller M., Borchers J., Flowboard: A Visual Flow-Based Programming Environment for Embedded Coding, Extended Abstracts of the 2019 CHI Conference on Human Factors in Computing Systems (Glasgow, Scotland Uk) (CHI EA '19), pp. 1-4, (2019)
  • [4] Burg B., Bailey R., Ko A.J., Ernst M.D., Interactive Record/Replay for Web Application Debugging, Proceedings of the 26th Annual ACM Symposium on User Interface Software and Technology (St. Andrews, Scotland, United Kingdom) (UIST '13), pp. 473-484, (2013)
  • [5] Cassinelli A., Saakes D., Data Flow, Spatial Physical Computing, Proceedings of the Eleventh International Conference on Tangible, Embedded, and Embodied Interaction (Yokohama, Japan) (TEI '17), pp. 253-259, (2017)
  • [6] Chatterjee I., Pforte T., Tng A., Salemi Parizi F., Chen C., Patel S., ARDW: An Augmented Reality Workbench for Printed Circuit Board Debugging, Proceedings of the 35th Annual ACM Symposium on User Interface Software and Technology (Bend, OR, USA) (UIST '22), (2022)
  • [7] Urban Davis J., Gong J., Sun Y., Chilana P., Yang X., CircuitStyle: A System for Peripherally Reinforcing Best Practices in Hardware Computing, Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology (New Orleans, LA, USA) (UIST '19), pp. 109-120, (2019)
  • [8] Devine J., Moskal M., De Halleux P., Ball T., Hodges S., D'Amone G., Gakure D., Finney J., Underwood L., Hartley K., Kos P., Oppenheim M., Plug-and-Play Physical Computing with Jacdac, Proc. ACM Interact. Mob. Wearable Ubiquitous Technol., 6, 3, (2022)
  • [9] Drew D., Newcomb J.L., McGrath W., Maksimovic F., Mellis D., Hartmann B., The Toastboard: Ubiquitous Instrumentation and Automated Checking of Breadboarded Circuits, Proceedings of the 29th Annual Symposium on User Interface Software and Technology (UIST '16), pp. 677-686, (2016)
  • [10] Gobert C., Beaudouin-Lafon M., Lorgnette: Creating Malleable Code Projections, Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology (UIST '23), (2023)