Skip to main content
  • Products
  • Software evaluation
  • Downloads
  • Free utilities
  • Purchase
  • Silicon Vendors
  • Support
  • About us
  • Blog
  • Forum
  • Search
  • Jobs
  • Newsletter
  • Blog
  • Contact
  • Shop
  • emApps

    emApps

    Apps for embedded systems.

    Contact us
    Downloads
    Documentation
    1. 1.Overview
    2. 2.Key features
      1. 2.1.Small firmware size
      2. 2.2.Small app size
      3. 2.3.High performance
      4. 2.4.Sandboxing
      5. 2.5.Easy integration
      6. 2.6.Trial version
    3. 3.Use cases
      1. 3.1.Flasher and production systems
      2. 3.2.Third-party app development
      3. 3.3.Safety-critical environments
      4. 3.4.Dynamic product customization
    4. 4.How emApps works
    5. 5.Additional features
      1. 5.1.Resource usage
      2. 5.2.Performance and code density
      3. 5.3.Execution model
    6. 6.Licensing
    7. 7.FAQ

    Overview

    emApps is a revolutionary software package that brings the familiar flexibility of the smartphone to the world of embedded systems. As an alternative to fixed firmware, emApps introduces an application layer that allows new functionality to be added at any time without touching the validated core system.

    To accomplish this, emApps can create apps, which are small programs that can be dynamically loaded and executed in a protected environment known as a sandbox. Each app operates in its own memory space, the sandbox, isolated from the firmware and other apps.

    These apps enable the user to add new capabilities, features, or enhancements to embedded devices while keeping firmware small and maintaining system stability and security. They also make it possible for the manufacturer to run tests on such embedded systems using apps.

    Since the apps can be dynamically loaded, they do not increase the size of the firmware. Thus, any number of tests can be written and performed, including functionality and performance tests on the embedded system.

    App capabilities are defined by an API table in the firmware, giving a firmware developer full control over the exact functionalities available to them. It is even possible to grant different rights (API tables) to different apps running in a system.


    Key features

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Small firmware size

    emApps requires only a tiny executor and loader inside the firmware, with a footprint of around 2.5 KB in flash memory,
    with no static data required.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Small app size

    The apps, which are held and executed in RAM, are very small, starting at less than 100 bytes. There is no upper limit on the complexity these apps can have, hence the maximum program size. This means emApps is suitable even for compact MCUs with just 64 KB of flash memory. The framework integrates smoothly into any existing firmware and supports any RTOS.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    High performance

    Apps are executed on a virtual CPU specifically designed by SEGGER for this purpose. They are executed by a call to the emApps executor, which implements the instruction set. High code density (often more compact than ARM Thumb-2 or RISC-V code) and efficient instruction scheduling deliver high performance.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Sandboxing

    Apps operate in their own memory space, fully sandboxed and isolated from the host program and other apps. Any illegal operations (such as access outside of app memory space) are detected, returning control to the caller. The only connection to the host is via the host provided API.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Easy integration

    Integrating emApps into existing firmware is simple and easy. The entire host code (which is integrated in the firmware), consisting of the executor, loader and API service functions, is written in C. The software also comes with an assembly optimized executor for Arm cores.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Trial version

    A PC trial version is available for download. The trial version comes with a variety of pre-built apps and their source code.
    All apps can be run on the PC as well as on the flasher for a test in a real embedded system.

    Use cases

    Apps can be used to dynamically extend a host’s capabilities or to enable customization by manufacturers, OEMs, and end customers. Use cases include test apps, communication (web server, customization), automation, and many more.

    Flasher and production systems

    Apps can implement flash programming routines, custom test logic, or communication protocols without modifying the device firmware.

    An illustrated conveyor belt features two containers with digital screens above displaying various icons. On the right, a machine with a monitor connects to the conveyor, suggesting a technological process or automation system. The image conveys themes of industry and innovation.
    An illustration depicting two simplified figures representing people, alongside a geometric shape symbolizing data or information. Small squares surrounding the central shape suggest digital interaction or processing, conveying themes of collaboration and technology.

    Third-party app development

    A development kit can be provided to external partners. Apps can be created independently and deployed securely thanks to sandboxing.

    Safety-critical environments

    Non-essential features — such as GUI control or display logic — can be isolated as apps and excluded from certification scope.

    An abstract graphic depicting a central white cube surrounded by a glowing circular outline. Four smaller blue squares are positioned around it, connected by dotted lines. The background is a gradient of dark gray, enhancing the focus on the central cube and its surrounding elements.
    A blue, square device sits at the center, displaying a light blue square on top. Above it are three illuminated icons representing communication, settings, and Wi-Fi connectivity, all connected by dotted lines, illustrating interaction and functionality. The background is dark.

    Dynamic product customization

    Apps allow feature expansions in the field, supporting new languages, new algorithms, or additional connectivity standards.


    How emApps works

    emApps consists of a PC development environment with a compiler for creating apps, as well as source code for host integration. Also included is a PC-based executor for running, testing, tracing, and even profiling apps on a desktop.

    emApps adds a minimal runtime engine — the executor — into the firmware. This tiny component (~1 KB) acts as a virtual CPU that executes applications and manages their interaction with the embedded system. Apps are statically or dynamically linked and can be downloaded at any point in the device lifecycle.

    Each application runs inside a dedicated memory space. The firmware assigns memory to the app only for the duration of execution. Any attempt to access memory outside this space is intercepted by the executor, which immediately returns control to the firmware. System stability and safety remain intact at all times.

    The executor and its API together form a complete architecture for application management. Instead of assembling low-level components or configuring memory protection manually, the framework delivers a finished and scalable structure — a ready-to-use engine, instead of a box of parts. While similar goals can be attempted using standard RTOS mechanisms or an MPU, such solutions remain complex to configure and maintain. They provide isolation but not modularity, and they do not enable dynamic loading or field-based updates. emApps solves all of that in one integrated model.

    Additional features

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Resource usage

    The resource usage is approximately 2.5 KB in flash memory, and no static data is required. API implementation depends on functionality provided. Fits on small MCUs — no large memory overhead.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Performance and code density

    The virtual instruction set is highly efficient. Fewer instructions are required, and execution remains close to native speed — even for compute-intensive tasks.

    A dark background filled with cascading vertical lines of binary code (0s and 1s) creates a digital, futuristic atmosphere. The pattern gives a sense of depth, resembling a virtual tunnel or data stream, enhancing themes of technology and information.

    Execution model

    Multiple apps can run under RTOS control, even in parallel. Apps can be statically or dynamically linked and downloaded at any time.


    Licensing

    emApps is available within the SEGGER licensing ecosystem, which includes commercial-use options. Licenses cover development, integration, and deployment on target devices. Support and updates are included and provided by SEGGER’s Embedded Experts.

    Contact us


    FAQ

    What is the main benefit of emApps?

    emApps transforms static firmware into a dynamic, extensible application platform.

    Does it require specific hardware?

    No. emApps runs on small and resource-limited microcontrollers — starting at 64 KB of flash memory.

    How are apps added?

    Apps can be downloaded and executed without modifying the existing firmware.

    Can multiple apps run simultaneously?

    Yes. Multiple apps can be executed simultaneously in a system that has multiple CPU cores or is RTOS based, and they can have multiple entry points and serve as libraries, similar to DLLs.  Multiple apps operate in parallel and remain isolated.

    How is the emApps architecture fundamentally different from a container, and what makes it viable on a microcontroller where a technology like Docker could never run?

    It’s fundamentally about efficiency. A container like Docker requires a full operating system and massive resources. emApps is built for resource-constrained microcontrollers. Our executor engine is incredibly small—around 1 KB. It provides the modularity and virtualization of a container, but in a footprint that can actually run on the smallest of devices.

    For a hard real-time system controlling a motor, how can you guarantee deterministic performance?

    We would recommend keeping your hard real-time loops, like a motor controller, in your core, native firmware. emApps is ideal for separating your non-critical tasks or an analytics app — from that core logic.

    Does emApps have a proven track record?

    Absolutely! SEGGER has been using them in our J-Link and Flasher product lines for years.

    Can emApps be used for applications other than embedded systems?

    Sure. Host systems can range from small, microcontroller-based embedded systems to full desktop applications. 

    Can my customers write their own apps for my product?

    Yes, if you want to open up the system for your customers.

    Can I make sure only authentic apps can execute in my product?

    Yes, if that is what you want, you can do it. All it takes is a signature check.

    Get in touch with us

    Have questions or need assistance? Our Embedded Experts are here to help!

    Reach out to us for:

    • Licensing quotes
    • Technical inquiries
    • Project support

     

    Contact us

    • User manual
    • Update notification
    • Support
    • Silicon vendor resources

    Headquarters

    SEGGER Microcontroller GmbH

    Ecolab-Allee 5
    40789 Monheim am Rhein, Germany
    info@segger.com
    Tel.: +49-2173-99312-0
    Fax: +49-2173-99312-28

    Locations

    USA: SEGGER Microcontroller Systems LLC

    Boston area
    101 Suffolk Lane
    Gardner, MA 01440, USA
    us-east@segger.com
    Tel.: +1-978-874-0299
    Fax: +1-978-874-0599

    Silicon Valley
    Milpitas, CA 95035, USA
    us-west@segger.com
    Tel.: +1-408-767-4068

    China: SEGGER Microcontroller China Co., Ltd.

    Room 218, Block A, Dahongqiaoguoji
    No. 133 Xiulian Road
    Minhang District, Shanghai 201199, China
    china@segger.com
    Tel.: +86-133-619-907-60

    ISO 9001 certified

    ISO 9001

    30+ years of experience

    First-class embedded software tools since 1992
    • Imprint
    • Disclaimer
    • Code of Conduct
    • Privacy Policy
    © 2025 SEGGER - All rights reserved.