User Tools

Site Tools


dev:nab:v2:mtl

This is an old revision of the document!


# Metal source compilation

## Overview

The Nabaztag:tag uses a virtual machine to run “bytecodes”, quite like Java does. It makes it easier for the developpers to “update” the code at runtime (and I guess it also sandboxes the “user” code, allowing for better ressources management and maybe some security…). The bytecodes are written in a subset/version of a language called “Metal”, written by Sylvain Huet.

The Nabaztag:tag uses two bytecodes, that I will describe as:

- The BOOT bytecode, which is embedded in the firmware and runs at boot time. It manages the configuration page and also the boot process of the Nabaztag (Wifi auth , DHCP, Firmware updates, …) - The NOMINAL bytecode, which is downloaded when the Nabaztag boots. It will be the main runtime bytecode.

The BOOT bytecode can only be updated through a firmware update, while the NOMINAL bytecode can be customized for every Nabaztag. But I'm no expert for this stuff; Pixel did a great job exploring and tweaking the bytecode to add functions, even before we had the sources, see the [OpenJabNab wiki](http://wiki.openjabnab.fr/) (French) for more informations.

Well, now that we have the sources, the remaining question is: How to compile from a Metal source to an executable bytecode ?

## Get the source

Git repo: `redox/mtl_linux.git`

## Compilation

## Conversion for embedding into the firmware

## Links

/home/share/www/redox.ws/wiki/data/attic/dev/nab/v2/mtl.1484516897.txt.gz · Last modified: 2023/11/24 21:55 (external edit)