App

From SEGGER Knowledge Base
(Redirected from app)
Jump to navigation Jump to search

App is short for Applet or Application. Apps are small programs which can extend the functionality of a device. They are well known from Smart phones and tablets and operating systems such as iOS and Android.

In the context of embedded systems, apps are dynamic pieces of software that can be linked to a device’s firmware, either statically or dynamically. Typically, they’re dynamically linked, which means they can be downloaded and then executed by a device at any time. Apps typically run in their own memory space, which is part of the RAM of the Embedded System they are designed for. They run in a so called sandbox, which means they can not do any harm to their host system. Execution is done by an executor, a software module which basically implements a virtual CPU. This executor can be quite small, starting at around 500 bytes. Memory protection of an app In large systems such as Android, apps run natively, directly on the CPU itself, but typically at a priority level below that of the kernel, the actual operating system. An MMU makes sure that the app accesses only memory which it actually "owns", so memory which it is allowed to read and most of all write to. In Embedded Systems (and with a system such as SEGGER's emApps), this protection is done in software, by the executor which implements the virtual CPU. The overhead for the memory protection is minimal, as the only thing which needs to be done is check the address of a memory access of the virtual for the upper limit (assuming that the lower limit in the virtual address space is 0).