Embedded systems

An embedded system is a piece of dedicated hardware (such as a System-on-Chip or hardware module) which is typically dedicated to performing one purpose, such as a GPS navigation unit in a car, or a Bluetooth radio in a phone. Embedded systems typically vary in terms of APIs, programming languages, CPU architecture, and memory layout. There is usually very little standardization in the realm of embedded systems programming. Embedded systems typically have access to less memory and compute resources than a standard desktop system. Many embedded systems lack access to virtual memory controllers, and I/O resources such as a BIOS that normal desktop systems have.

Embedded bytecode programming using GoatSpeak


GoatSpeak is an embedded language developed by Global Rim for the purpose of low-level programming of their GOAT hardware. GoatSpeak contains language primitives for manual memory allocation/de-allocation, communicating with GPIO and other resources on an embedded chip, and provides a managed, bytecode-supported framework for embedded systems. GoatSpeak is similar to Microsoft's .NET Microcontroller framework, but provides a lightweight alternative which requires only a small fraction of the overhead of a full .NET environment. GoatSpeak's runtime can run on embedded microcontrollers with <8KB of RAM and <128KB of flash memory. GoatSpeak is currently intendded solely for GlobalRim's proprietary GOAT devices, but support could theoretically be extended to other embedded platforms.

GlobalRim chip running BitTorrent/IDWOS for application distribution
The video shown below is a demonstration of using BitTorrent over a proprietary mesh network/operating system to distribute an application/OS update to a series of embedded devices running on watch batteries: