Bakalářská práce
Získaná ocenění: Cena děkana FI za vynikající závěrečnou práci

Jaculus: Approachable Programming of Embedded Devices via Javascript

Petr Kubica, učo 514403
Anotace

Tato práce se věnuje návrhu a implementaci platformy Jaculus, která umožňuje programování mikrokontrolérů pomocí jazyků Javascript a TypeScript. Skládá se z běhového prostředí pro miktrokontrolér a aplikace pro příkazovou řádku sloužící k přístupu k zařízení. Běhové prostředí je postaveno okolo JavaScriptového interpretu QuickJS a nabízí vysokou abstrakci nad JavaSkriptovými koncepty za účelem zjednodušení …více

Abstract

This thesis presents the design and implementation of Jaculus, a platform for programming microcontrollers using JavaScript and TypeScript. The platform consists of a runtime for the microcontroller and a command-line tool for accessing the device. The runtime is built around the QuickJS JavaScript engine and provides a high-level abstraction over JavaScript concepts to make creating new native features …více

Zadání práce
Programming firmware for microcontrollers in embedded devices is often considered challenging and laborious. Most embedded applications are reactive and asynchronous systems. Asynchronicity is laborious and cumbersome to express in the low-level languages (e.g., C) that are often the manufacturers' only supported way of programming the microcontrollers. Therefore, most of the often simple application high-level logic is hidden in a boilerplate code. Using high-level languages such as C++ or Rust, on the other hand, introduce very long compilation times that unbearably prolong the code-build-deploy-test development cycle. Additionally, there is the cost of a non-trivial toolchain setup. We can tackle these difficulties by using an interpreted language instead. The goal of the thesis is to develop a solution for running Typescript programs on a reasonably-sized microcontroller such as Espressif ESP32. The student should port a suitable Javascript interpreter on the ESP32 platform and build an ecosystem around it. The ecosystem should allow for: - running Typescript and Javascript programs stored in microcontroller flash memory, - uploading these programs into the microcontroller, - capturing the user program's output, and - binding between native code (e.g., peripheral drivers) and the user program. The design of the ecosystem should be flexible enough so that the solution can be deployed to various hardware configurations. Also, the ecosystem should be supported by suitable development tooling. The student should also experimentally evaluate the performance and user-friendliness of the presented solution compared to native programs. The whole solution should be demonstrated several "getting-started" examples.
Práce zkontrolována:
21. 5. 2023 08:37, RNDr. Jan Mrázek
Jazyk práce
angličtina angličtina
Termín obhajoby
28. 6. 2023
Práce byla úspěšně obhájena

Vedoucí

RNDr. Jan Mrázek
CERIT-OS CERIT FI MU

Oponent

RNDr. Petr Ročkai, Ph.D., učo 139761
KPSK FI MU

Masarykova univerzita Fakulta informatiky
Studijní program
Plán
Informatika
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.