element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Technical Library
  • Products
  • Dev Tools
  • Technical Library
  • More
  • Cancel
Technical Library
Documents Segger: Middleware and Stacks Overview
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Technical Library to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: Yiying
  • Date Created: 27 Mar 2013 8:46 AM Date Created
  • Last Updated Last Updated: 24 Jun 2014 10:56 PM
  • Views 1921 views
  • Likes 0 likes
  • Comments 0 comments
Related
Recommended

Segger: Middleware and Stacks Overview

Ordering InformationKey FeaturesSupported DevicesVideoTechnical Documents

Overview


Following strict, yet efficient coding and documentation standards, Segger created and developed a feature-rich, high-performance family of middleware with a very small footprint and outstanding documentation. The software is very easy to use and works out of the box. BSPs and projects for popular eval boards and tool chains are available.

image
embOS/IP - TCP/IP Stack

embOS/IP is a CPU independent TCP/IP stack. It is a high-performance library that has been optimized for speed, versatility and memory footprint. It is written in ANSI C and can be used on virtually any CPU. This TCP/IP stack is RFC compliant and extends a standard socket API to the embedded application. embOS/IP is fully optimized for use with embOS. The embOS/IP is a fully featured TCP/IP which can be supplemented application layer protocols like HTTP or FTP. The application layer protocols are optional extensions to embOS/IP. They can be used with embOS/IP OR with any OTHER TCP/IP stack.

 

embOS/IP has been designed to cooperate with any kind of hardware. To use embOS/IP, a network interface driver matching the target hardware is required. The code size of a network interface driver depends on the hardware and is typically between 1 and 3 Kbytes. The driver handles both the MAC (media access control) unit as well as the PHY (Physical interface). The driver interface has been designed to allow support of internal and external Ethernet controllers (EMACs). It also allows to take full advantage of hardware features such as MAC address filtering and checksum computation in hardware.


image
emUSB Device - USB Device Stack

emUSB Device is a high speed USB device stack specifically designed for embedded systems. The software is written in ANSI "C" and can run on any platform. emUSB can be used with embOS or any other supported RTOS. A variety of target drivers are already available. Support for new platforms can usually be added for no extra charge.

 

emUSB consists of three layers: A driver for hardware access, the emUSB core and at least an USB class driver or the bulk communication component. The different available hardware drivers, the USB class drivers and the bulk communication component are additional packages, which can be combined and ordered as it fits to the requirements of the project. Normally, emUSB consists of a driver that fits to the used hardware, the emUSB core and at least one of the USB class drivers MSD, CDC, HID or the unclassified bulk component.

image
emUSB Host - USB Host Stack

emUSB Host stack implements full USB host functionality, including external hub support, and optionally provides device class drivers. It enables developers to easily add USB host functionality to embedded systems. The software stack complies with the USB v1.1 and USB v2.0 specifications. It supports all transfer modes (control, bulk, interrupt) at low, full and high speed. USB pipe management and extended error recovery mechanisms that are required for reliable operation are implemented internally. The modular design enables applications to access the USB host programming interface directly, or to use APIs exposed by class drivers. At its upper edge a class driver typically attaches to an operating system module such as a file system.

 

The stack can handle multiple devices and hubs simultaneously and fully supports hot plugging of devices and hubs. The programming interface supports dynamic device enumeration and identification.

image
emFile - Embedded File System

emFile is a file system for embedded applications which can be used on any media, for which you can provide basic hardware access functions. emFile is a high performance library that has been optimized for minimum memory consumption in RAM and ROM, high speed and versatility. It is written in ANSI C and can be used on any CPU. emFile has been designed to cooperate with any kind of embedded system and storage device. To use a specific medium with emFile, a device driver for that medium is required. Device drivers are available for most common mediums.

 

Two versions of this embedded file system are available. Depending on the application needs; a Microsoft WindowsRegistered compatible version which extends a FAT12, FAT16 and FAT32 file system to the embedded application is available, as well as a proprietary file system designed specifically for embedded devices. Both implementations of emFile make use of the same upper layer API which is similar to the standard "C" I/O API (stdio.h). 

image
emWin - Graphic Software and GUI

emWin is designed to provide an efficient, processor- and LCD controller-independent graphical user interface (GUI) for any application that operates with a graphical LCD. One of the most challenging aspects of many development projects is designing an attractive and useful display. Besides creating images that look exactly how the application is required to appear, the implementation of windows techniques, complex drawing routines, different fonts and flicker-free updates are also expected. The developer has to implement this complex functionality in short time periods, which can take up to months or even years of development time. emWin, probably the most efficient and comprehensive embedded GUI packages available, helps developers beat their timelines and cut their development costs.

 

emWin is compatible with single-task and multitask environments, with a proprietary operating system or with any commercial RTOS. emWin is shipped as "C" source code and supports any black and white, grayscale or color display. Drivers for most common LCD controllers are available. All types of graphical displays (STN-LCD, TFT, CRT, OLED, Plasma, ...) are supported.


More Development Kits and Tools
imageSegger embOS RTOSimageSegger Development Tools
imageOperating Systems and Stacksimageelement14 Knode

 

Back to top

 

Key Features


Main Features:

  • Optimized for resource usage
  • Optimized for high performance
  • Platform-independent
  • Reliable due to proven code
  • ANSI C source code
  • Easy to implement and maintain due to global coding standards for all Segger software
  • Royalty free

 


embOS/IPemUSB
emUSB HostemFileemWin
RTOS RequiredembOSCan be used with or without an RTOSembOS or othersembOS or othersembOS or others
Specification ComplianceTCP/IPUSB 1.1. and USB 2.0USB 1.1. and USB 2.0FAT12, FAT16 and FAT32--
Other Features
  • Standard socket interface
  • Runs "out-of-the-box"
  • Very simple network interface driver structure
  • Zero data copy for ultra fast performance
  • Non-blocking versions of all functions
  • Connections limited only by memory availability
  • Delayed ACKs
  • Handling gratuitous ARP packets
  • Support for VLAN
  • BSD style keep-aliveoption
  • Support for messages and warnings in debug build
  • Drivers for most common Ethernet controllers available
  • Support for driver side (hardware) checksum computation
  • Easy to use
  • Easy to port
  • No custom USB host driver necessary
  • Start / test application supplied
  • Highly efficient, portable, and commented ANSI C source code
  • Hardware abstraction layer allows rapid addition of support for new devices
  • No configuration required
  • Runs "out-of-the-box"
  • Control, bulk and interrupt transfers
  • Very simple host controller driver structure
  • USB Mass Storage Device Class available
  • Works seamlessly with embOS and emFile (for MSD)
  • Support for class drivers
  • Support for external USB hub devices
  • Support for devices with alternate settings
  • Support for multi-interface devices
  • Support for multi-configuration devices
  • An optional module that handles long file names of FAT media
  • Multiple device driver support
  • MultiMedia support
  • ANSI C stdio.h-like API for user applications
  • Very simple device driver structure
  • An optional device driver for NAND flash devices
  • An optional device driver for MultiMedia & SD cards
  • An optional IDE driver for CompactFlash using either .True
  • IDE. or .Memory Mapped mode
  • An optional NOR flash (EEPROM) driver
  • An optional proprietary file system (EFS) with native long file name support
  • Any 8/16/32-bit CPU; only an ANSI "C" compiler is required
  • Any (monochrome, grayscale or color) LCD with any controller supported (if the right driver is available)
  • May work without LCD controller on smaller displays
  • Any interface supported using configuration macros
  • Display-size configurable
  • Characters and bitmaps may be written at any point on the LCD
  • Routines are optimized for both size and speed
  • Compile time switches allow for different optimizations
  • LCD can be cached in memory for slower LCD controllers
  • Clear structure
  • Virtual display support

 

Back to top

 

Supported Devices


ManufacturerembOS/IPemUSBemUSB HostemFileemWin
AlteraNIOS 2----A device driver for specific hardware is required to use emfile, including RAM disk driver, NAND flash driver, NOR flash driver, MMC/SD driver, and CF card and IDE driver. The driver can be used with every target which supports basic hardware access.Any 8/16/32/64-bit CPU with enough ROM and RAM, depending on the applications.
AtmelAT91CAP9, AT91RM9200, AT91SAM7x, AT91SAM9260, AT91SAM9263, AT91SAM9G20, AT91SAM9G45, AT91SAM9XE, ATSAM3X, AVR32UCAT91CAP9, AT91RM9200, AT91SAM3S, AT91SAM3U, AT91SAM4S, AT91SAM7A3, AT91SAM7S, AT91SAM7SE, AT91SAM7X, AT91SAM9260, AT91SAM9261, AT91SAM9263, AT91SAM9G20, AT91SAM9G45, AT91SAM9Rx64, AT91SAM9XE, AVR32UCAT32UC3A,  AT91SAM9260, AT91SAM9261,  AT91SAM9263,  AT91SAM92G10,  AT91SAM92G20,  AT91SAM9XE,  AT91SAM92G45/M10
Freescalei.MX25x, Kinetis K60/K70, MCF5223x, MCF5329Kinetis K40, Kinetis K60 Fullspeed, Kinetis K70 Fullspeed, Kinetis K60/K70 Highpseed, iMX25x, iMX28x, MCF227x, MCF225x, MCF51JMxKinetis K20, Kinetis K40, Kinetis K60, Kinetis K70, Kinetis KL20, Kinetis KW22
Fujitsu--MB9BF50x--
InfineonXMC45xx----
MicrochipENC424J600, ENC624J600----
NXPLPC17xx, LPC18xx, LPC23xx, LPC24xx, LPC32xx, LPC40xx, LPC43xxLPC13xx, LPC17xx, LPC18xx, LPC214x, LPC23xx, LPC24xx, LPC288x, LPC318x, LPC313x, LPC3250, LPC43xxLPC1754FBD80,551LPC1754FBD80,551, LPC1756, LPC1758, LPC1759, LPC1765, LPC1766, LPC1768, LPC1776, LPC1777, LPC1778, LPC1785, LPC1786, LPC1787, LPC1788, LPC2387, LPC2388, LPC2420, LPC2458, LPC2460, LPC2468, LPC2470, LPC2478, LPC3180, LPC3220, LPC3230, LPC3240, LPC3250, LH7A400, LH7A404
RenesasH8S2472, RX, SH7670, V850_D70351x, V850JGH3H8S2472, H8SX1668R, K78F102x, RX62N, RX621, RX63N, RX631, SH7203, SH7216, SH7268/9, SH7286, uPD720150, V850ES/JG3-E/U/H, V850ES/JH3-E/U/HNEC V850ES Jx(G/H)3-U, RX621, RX62N, RX631, RX63N
STMicroelectronicsSTM32F107, STM32F207, STM32F407, STR912STM32F101/103, STM32F105/107, STM32F2xx, STM32F4xx, STM32L15x, STR71x, STR750, STR91xSTM32F105, STM32F107, STM32F205, STM32F207, STM32F215, STM32F217, STM32F405, STM32F407, STM32F415, STM32F417
Texas InstrumentsLM3S6965-IQC50-A2.LM3S6965-IQC50-A2., LM3S9B90LM3S9B9x, MSP430--
ToshibaTMPM369TMPA900, TMPA910, TMPM369--

 

Back to top

 

Video


image

 

 

 

 

Back to top

 

Technical Documents


Learning Center
TypeDescription
User GuideSegger: User Guide for embOS/IP TCP/IP stack for Embedded Applications
User GuideSegger: User Guide for emUSB USB Device Stack for Embedded Applications
User GuideSegger: User Guide for emUSB-Host USB Host Stack for Embedded Applications
User GuideSegger: User Guide for emWin Graphic Library with Graphical User Interface
User GuideSegger: User Guide for emFile File System for Embedded Applications

 

Back to top

 

Ordering Information


Licensing Option

 

Single Developer Object Code License (SOL) - The machine-readable, linkable and complied version limited to a specific CPU and complier. An SSL entitles one and only one person working on a project in a company to work with the software on one and only one personal computer at a time.


Single Developer Source Code License (SSL) - The human-readable vesion that can be complied into object code limited to a specific CPU and complier. An SOL entitles one and only one person working on a project in a company to work with the software on one and only one personal computer at a time.


Additional Developer License (ADL) - Developer Object Code or Developer  Source Code can be used in multiple users.

 

Middleware/StacksEurope StoresAmericas StoresAsia Pacific Stores
embOS/IP
SSLSSL
ADLADL
SSLSSL
ADLADL
SSLSSL
ADLADL
emUSB
SSLSSL
ADLADL
SSLSSL
ADLADL
SSLSSL
ADLADL
emUSB Host
SSLSSL
ADLADL
SSLSSL
ADLADL
SSLSSLADLADL
emFile
SSLSSL
ADLADL
SSLSSL
ADLADL
SSLSSL
ADLADL
emWin
SSLSSL
ADLADL
SSLSSL
ADLADL
SSLSSL
ADLADL

 

 

Back to top


 

  • emfile
  • embos/ip
  • emwin
  • emusb
  • emusb_host
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube