The Embedded Experts

Software Tools

J Debug Probes

RTOS

File System

Compression

Connectivity

Security

User Interface

Production „ It simply works! Software Tools

n n Features Developing with SEGGER Embedded Studio n Windows, macOS and Linux support SEGGER Embedded Studio is a streamlined and specifically for embedded applications, you can n Powerful Project Manager powerful C/C++ IDE (Integrated Development expect the highest performance for your applications. n Advanced first-class Editor Environment) for Arm and RISC-V . It n Package-based Project Generator for all common microcontrollers is specifically designed to provide everything needed n Feature-packed Debugger n Pre-built C/C++ Compiler, GCC and LLVM included for an immediate start for professional embedded development: an all-in- SEGGER Embedded Studio integrates a feature- one solution providing continuous workflow. packed graphical Debugger with enhanced J-Link n Royality free ANSI / ISO C compliant C library for embedded systems integration for direct on your target n Feature-packed Debugger with seamless J-Link integration hardware. All of the industry leading n Cross-Platform Support J-Link features have been SEGGER Embedded Studio is available for Windows, tightly integrated into ++ macOS and Linux. Its look and feel is similar on all SEGGER Embedded Feature packed debugger platforms to provide the best experience regardless Studio. A graphical debugger with J-Link integration and First-class editor mixed-mode disassembly. The debugger has an The code editor supports the language of the source of the operating system. The debugger includes I/O Terminal for semihosting, SWO and SEGGER's file it is editing, showing code with syntax highlighting, various debugging windows, Real-Time Terminal. The Thread Window provides automatic code indention, and matching bracket n Target Support scriptable RTOS awareness, examples for embOS and highlighting. Embedded Studio provides suggestions which make it possible Amazon FreeRTOS included. for code completion based on your application, while SEGGER Embedded Studio can be used with to inspect and manipulate you type. Arm®7, Arm®9, and the complete Arm® Cortex® advanced information concerning series. the running application and its SEGGER Embedded Studio offers a reduced cost execution, including mixed-mode license for those working only with Cortex®-M, and disassembly, source code, an I/O alternatively a license which covers the full range Terminal for semihosting, SWO, C of supported Arm® microcontrollers. There also is a SEGGER's Real-Time Transfer, and a Powerful project manager Capable of managing huge and multi-project license for RISC-V microcontrollers. scriptable Threads Window to be used with any solutions easily. Provides access to (real-time) operating system. Support Packages for various Arm n Powerful Project Manager MCUs. An advanced Project Manager is included with n First-Class Editor SEGGER Embedded Studio which enables simple The first-class Source Code Editor does not only Code analysis tools management of extremely large projects and multi- support user-defined syntax highlighting, automatic Embedded Studio has numerous project solutions. code indention and matching bracket highlighting, it analysis tools to assist the developer. For example: memory usage, code SEGGER Embedded Studio's Package Manager also provides a code completion feature for symbols, outline, static code analysis, stack provides access to Support Packages for various functions and keywords of your application, as usage, symbol browser and source outline. External tools, such as Arm MCUs which can be installed on demand and well as configurable code and comment templates SystemView and MISRA-checker updated when a new version is available. The Support to easily match your coding and documentation software can be configured. Packages make starting a new project for new target standards. The Editor is highly integrated into the hardware as simple as clicking a button. Project Manager for efficient and advanced search and replace functionality in your files, projects and Compiler included Clang/LLVM and industry standard n Compiler Included solutions. The behavior of all features is fully user- GCC compiler. Prebuilt for Arm SEGGER Embedded Studio comes with an enhanced configurable. microcontrollers. Highly-optimized, royalty-free ANSI / ISO C compliant LLVM compiler and prebuilt GCC compilers. With its standard C/C++ library. highly-optimized, royalty-free, ANSI/ISO-C compliant standard C library, which has been developed

2 3 Software Tools

n Start developing right away with Embedded Studio PRO n All-in-one development solution Embedded Studio PRO is a highly advanced platform n The J-Link debug probe n Runs out-of-the-box combining SEGGER's user-friendly Embedded Studio The package also contains a J-Link PLUS debug probe, n Start application development immediately development environment, along with a selection of with J-Flash software and sophisticated features such n State-of-the-art development environment its key embedded software components, an industry- as unlimited flash breakpoints, SystemView analysis n Full featured J-Link PLUS Debug probe leading J-Link PLUS debug probe, plus an emPower tool, and Monitor Mode function. reference board. This means that the development n All components developed and supported by SEGGER process can begin immediately, independent of the n The emPower reference board n High-performance software with very small footprint nature of the project. With SEGGER's emPower reference board included, n Royalty-free development can start out of the box. The SEGGER Embedded Studio is a streamlined and developer has reference hardware, the debug probe powerful IDE for Arm-based microcontrollers. and all necessary of-the-shelf software components, n Components of Embedded Studio PRO package It is designed to provide all tools needed for all from the same provider. professional embedded development. Supporting Embedded Studio PRO is supplied with sample all major operating systems (Windows, macOS projects to ensure a quick and easy start (including Component Description and Linux), it presents a comprehensive solution one for the emPower board which contains all the for the implementation of embedded applications necessary middleware components). Integrated Development Environment (with source code editing, compiling and debug The emPower reference board uses an NXP Kinetis Streamlined and powerful C/C++ IDE for Arm Cortex®-M microcontrollers, an functionality all encompassed). K66 MCU with an Arm Cortex-M4 core and is Embedded Studio equipped with a 1.8'' LCD module. all-in-one solution aiming at stability and a continuous workflow. n SEGGER embedded software In addition to the usual Software Embedded Studio PRO includes an industry-proven ports for Ethernet and USB, software package. All components are optimized for it also adds expansion ports embOS Priority-controlled high-performance real time operating system with zero latency. low resource usage and high performance. to easily connect additional Robust file system for embedded applications, high performance library optimized The RTOS embOS is known for a tiny memory hardware via UART/SPI/I²C. emFile PRO footprint and high reliability. To complete the set of The use of Embedded for minimum memory consumption. software for application development, the robust file Studio PRO is independent CPU independent TCP/IP stack, high-performance library optimized for speed, embOS/IP PRO management system emFile is included, as well as from emPower and it versatility and a small memory footprint. the connectivity solutions embOS/IP and emUSB can be used with other (device and host) and the graphics package emWin evaluation boards or emUSB Device PRO High speed USB device stack specifically designed for embedded systems. for high quality user interfaces. custom hardware. USB host software stack, implements full USB host functionality, including external emUSB-Host PRO hub support. Efficient, processor- and LCD controller-independent GUI for any application that emWin PRO operates with a graphical LCD.

Hardware

Debug probe with USB interface, including J-Flash software and advanced features J-Link PLUS such as unlimited flash breakpoints, SystemView analysis tool and Monitor Mode. Reference board designed to enhance software evaluation, prototyping and proof emPower of concept.

4 5 Software Tools

n n Features SystemView — Real-Time Analysis and Visualization n Maximum system insight SystemView is a freely available software tool for the when an RTOS is used. The information gathered n Minimally intrusive visualization of any . Its ability to and visualized can be used to analyze both bare n Cycle-accurate profiling provide deep visual analysis revolutionizes the way metal and RTOS-based systems. n Free tool—No license costs, no hidden fees in which embedded systems are developed and SystemView consists of two parts: The PC No additional hardware required handled. Optimizing a system becomes easier as visualization application SystemViewer, and some n bottlenecks can easily be found. Users can identify code, collecting information on the target system. n RTOS tracing wrong processing orders easily with the visualization The combined ROM size of RTT and SystemView n Interrupt tracing without an RTOS provided by SystemView. modules is less than 2 KByte. In a typical system, n Continuous real-time recording and live analysis about 600 Bytes RAM are sufficient for continuous with J-Link and SEGGER RTT technology SystemView visualizes and analyzes CPU load by data recording via J-Link. n Works on any CPU task and interrupts and scheduler. Test setups with LED and oscilloscope are a thing of the past. The n Real-Time with J-Link RTT tool offers cycle accurate tracing of interrupts and SystemView has outstanding capabilities when it task start/stop as well as task activation and API calls comes to real-time data collection, enabled by the J-Link Real-Time Transfer (RTT) technology. RTT allows interaction among tasks and between tasks and monitoring of events, interrupts etc. in real-time. The interrupts can be employed for various purposes: For the data transfer rate of 2MByte/s is exceeding the required documentation of new systems, validation of the desired bandwidth and thus clearly surpasses the bandwidth behavior, examination of erratic behavior such as in of other solutions with similar purpose. The overhead is interrupt handling, or for the analysis and improvement of merely 1 µs per call (measured for a 200 MHz Cortex-M). performance. While SystemView works without a J-Link, the debug SystemView PRO is available, providing advanced filters probe is needed to use the RTT feature. The technology and unlimited event recording. has no additional hardware requirements beyond the standard debug interface. SWO or trace pins are not n J-Scope Variable Monitoring required. This allows using these extended debug and J-Scope is a specialized tool that visualizes data on a analysis capabilities on Cortex-M0 based systems as well. microcontroller in real-time, while the target is running. It n Platform-independent does not require features like SWO, RTT, or any extra pin on the target, as it only uses the existing debug port. On systems which are not supported by the RTT technology, the buffer content can be read manually when J-Scope can show the value of multiple variables in an the system is halted, which allows single-shot recording oscilloscope-like style. It reads an ELF file and allows until the buffer is filled. Single-shot recording can be selection of a number of variables to visualize. Simply triggered by the system to be able to control when the connect the target microcontroller to a J-Link, flash an recording starts. application, and start J-Scope. SystemView records the data read out from the target and A visual graph and data then becomes available for visualizes it in different ways. Recordings can be saved for analysis and manipulation, such as scrolling, zooming in later documentation and analysis. and out, or saving the data to a file for further analysis. J-Scope can be used in parallel with your debugging n Extended Debugging and Analysis environment and extends your IDE's debugging Analyzing the runtime behavior of a system and the experience.

6 7 Debug Probes J

n n Features J-Link Debug Probes n Support for Arm® Cortex®-M / R / A cores and Arm® 7 / 9 / 11, Microchip PIC32, Renesas RX and Silicon Labs 8051 SEGGER J-Links are the most widely used line Not so for J-Link: It makes use of intelligence in the n Maximum JTAG speed 15 MHz, J-Link ULTRA+ / PRO: 50 MHz of debug probes available today. They have firmware which speeds up things massively (easily n Download speed up to 1.5 MB/s (J-Link® / J-Link® PLUS), 3 MB/s (J-Link® ULTRA+ / PRO) factor 10 in most cases) and also adds support for proven their worth for more than 12 years with n Very fast flash loader corner cases that cannot be supported without such over 500,000 units sold. This popularity stems n Supported by all popular debuggers from the unparalleled performance, extensive intelligence. A sample for such a scenario is: Accessing a slowly n Support for different debug interfaces: JTAG / SWD / FINE / SPD / ICSP feature set, large number of supported CPUs, running CPU at high target interface speeds. n Serial Wire Viewer (SWV) with up to 7.5 / 25 MHz supported and compatibility with all popular development J-Links are the most robust probe in these n Host interface: USB, Ethernet environments. situations. n Power over USB n Debug Smarter and Faster with J-Link! n Software Development Kit n Support for adaptive clocking With up to 3 MByte per second download speed (SDK) n Multi-core debugging supported to RAM and record-breaking flashloaders, and with n Wide target voltage range: 1.2V - 5.0V tolerant the ability to set an unlimited number of breakpoints For customers who want to in of MCUs, J-Link debug probes build their own applications n J-Link Remote Server included, which allows using J-Link via TCP/IP networks are undoubtedly the best choice to optimize your using J-Link, and for IDE n SDK available debugging and flash programming experience. vendors who implement J-Link support for n Extensive Device & IDE Support their IDE, SEGGER J-Link debug probes support all popular offers a J-Link SDK microcontrollers, for details consult the feature list which comes with n Real Time Transfer the J-Link DLL, the or our web page. All major IDEs include support Real Time Transfer (RTT) is SEGGER's technology for functionality while being debugged. This offers the API documentation and for the J-Link. The list includes, among others, interactive user I/O in embedded applications. It combines possibility to maintain real-time, user-defined functions in implementation samples. SEGGER Embedded Studio, Keil MDK-ARM, and all the advantages of SWO and semihosting at very high selected interrupt services, such as motor control, data The SDK is available for Windows and GDB-based IDEs. performance, with data transfer speed reaching up to 2 acquisition, or any application that needs some kind of Linux. n Direct Download into Flash Memory MByte per second while retaining the real-time behaviour continuous operation. n Cross-Platform Support of the target system. J-Link can program the internal flash of almost all n Remote Server Debugging in Tunnel Mode The J-Link software package is designed to run on popular microcontrollers as well as external CFI n Unlimited Flash Breakpoints The J-Link Remote Server effortlessly debugs target all major platforms: Windows, Linux, and macOS. compliant flashes. The J-Link flash loaders enable an The Unlimited Flash Breakpoints feature allows the user to hardware and application in remote locations over TCP/ IDE to download directly into flash memory as if it was n Supports SWV/SWO set an unlimited number of breakpoints when debugging IP as if the target was on the developer's desk. Taking this RAM. This makes flash download available to any in flash memory. Without this feature, the number of concept to the next level, SEGGER offers a tunnel mode for IDE, that supports J-Link, without the IDE explicitly J-Link fully supports Arm's SWV/SWO feature which breakpoints which can be set in flash is limited to the remote debugging anywhere in the world. supporting and flash download features. is available for most devices supportting the SWD number of hardware breakpoints supported by the debug Tunnel mode initiates the connection by sending the serial n Intelligence in the Firmware interface. SWO is a single pin output from the core unit of the CPU. Unlimited Flash Breakpoints works in both number of the J-Link to the tunnel server. The J-Link DLL which can be used to transfer terminal data (printf) internal and external flash, even with memory-mapped then is capable of creating a tunnel connection via the In contrast to other debug probes, J-Link has and also real-time trace data. The latter enables flashes. server just by using the serial number of the target J-Link. intelligence for different CPU cores in its firmware. For monitoring of variable read and write accesses in Support engineers can debug unwieldy hardware at most debug probes, all debug command sequences compatible processors. n Monitor Mode Debugging the customer's site without having to travel there, just by are generated on the PC and the debug probe is Monitor Mode Debugging enables an embedded system sending a J-Link. Distributed development teams can share handled as a "dumb probe". based on a Cortex-M3, M4 or M7 core to maintain essential early prototypes even in remote locations.

8 9 Trace Probes J

n n Features n n Features J-Trace PRO Debugging with Ozone n Live code profiling n Blazing fast debug and step performance J-Trace PRO for Cortex-M and J-Trace PRO n Live code coverage Ozone, the J-Link Debugger, is a full-featured graphical n Precision stepping at source and assembly level Cortex set the standard for trace probes. Enabling n Endless streaming trace debugger for embedded applications. With Ozone it is n Thread-aware debugging (customizable) continuous streaming trace using Ethernet or USB, possible to debug any embedded application at C source n Real-time analysis n C code source level debugging the J-Trace PRO models and assembly level. Ozone can load applications built n Endless trace buffer n Assembly instruction debugging completely remove “trace with any toolchain / IDE or debug the target's resident buffer size” anxiety by n Gigabit Ethernet application without any source. Ozone includes extensive n Direct use of J-Link/J-Trace built-in features eliminating the need n SuperSpeed USB 3.0 debug information windows and makes use of the best n Extensive debug & processor state windows for fixed- size trace n Supports Cortex-A performance of J-Link debug probes. The user interface n Scriptable project files buffers in the is designed to be used intuitively and is fully configurable. n Supports Cortex-R probe. All windows can be moved, re-sized and closed to fit the n Supports Cortex-M need of any developer. n Cross-platform (Linux, Mac, Windows) Call Graph Source Code Call Graph shows static n Best trace experience with free Ozone The Source Code Viewer enables information about paths debugger navigation through the target of function calls in your application. It shows current application to analyze program execution and lets the call depth and stack developer modify the target requirements. It n Maintain Code Quality behaviour. The inline disassembly highlights recursions provides deeper insight per and the use of J-Trace PRO supports extended trace features, such source line. function pointers. Source code can be directly n Streaming Trace: Extended Debugging as code coverage and code profiling. Code coverage edited in the source code viewer. and Verification provides engineers with visibility of which parts of Instruction Trace the application code have been executed. Code The basic information J-Trace PRO captures complete traces over long provided by trace data is periods which helps capture infrequent, hard-to- or execution profiling provides visibility as to which the instruction trace. When Memory Usage instructions have been executed and how often – the target is halted, Ozone Ozone's memory usage reproduce bugs. This is particularly helpful when the shows the most recently window provides a graphical program flow ‘runs off the rails’ and stops in a fault so hotspots can be addressed and optimization executed instruction in its representation of the memory opportunities identified. Instruction Trace Window. content of the embedded state. This allows you to analyze application. It provides a quick what your system did last. overview where symbols are placed and how much space is used.

Data Graph Terminal Timeline Ozone is able to track Registers Ozone can capture The Timeline Window symbol values and The current CPU registers printf-output by the provides a graphical values of arbitrary C-style are shown in Ozone's embedded application representation of the expressions at time Registers Window. In via SEGGER's Real Call Stack over time. resolutions of down addition to the basic CPU Time Transfer (RTT) The timeline is based on to 1 microsecond and registers, Ozone can also technology that the recorded trace data, visualize the resulting display memory-mapped provides extremely mapped to the source time signals within the peripheral registers (SFRs). fast IO coupled with function information. Data Graph Window. low MCU intrusion. 10 11 Real-TimeSoftware Tools Operating System

embOS-Safe

Functional Safety RTOS IEC 61508 SIL 3 and IEC 62304

n n Features The Real Time Operating System embOS n More than 25 years of continuous development n Same code base and API for all embOS editions: For 25 years in the embedded market embOS has n Available for all popular cores, compiler, and embOS-Safe, embOS-MPU and embOS been and still is the preferred embedded OS choice development tools n Built for functional safety for engineers all over the world. It offers incomparable n Deployed in several billion devices in a wide range n Support is handled directly by the developers of application areas ease-of-use and guarantees 100% deterministic n No royalties real-time operation for any embedded device. It n Certified for functional safety according to IEC 61508 SIL 3 and IEC 62304 Class C n Unlimited number of OS objects, such as: is highly portable and fully source-compatible on tasks, semaphores, mailboxes, timers all platforms, making it easy to port applications to n MISRA-C:2012 compliant n Unlimited number of task priorities different cores. n Powerful and easy to use API n Human readable object identifier n Highest performance with lowest use of memory n Developing applications with embOS n Profiling and trace support n Kernel awareness plugins available embOS is available in source or object code form. n Tickless mode and low power support Both come with ready-to-go board support packages n Zero interrupt latency (BSP) including start projects for a large number of eval-boards. The first multi-task program will be Power-Saving Tickless Mode running within five minutes. The BSPs and samples n (embOSView) are supplied in source code form. Libraries for all with embOS running on the target via UART, IP or debug embOS low-power support reduces the power consumption memory models and initialization of the controller n Professional Solution interface and displays all available information of the tasks for e.g. battery powered devices. Instead of having a timer in C-source are included to tailor the system to any embOS is suitable for any application, from battery- and major system variables. interrupt for each system tick, the timer is reprogrammed hardware. embOS is free for any non-commercial use powered single chip products to high-end systems, A profiling build of the libraries is available. In profiling build, with the embOS tickless mode to be able to spend as much like education and evaluation, without any limitations. demanding ultra-high performance. The RTOS embOS collects precise timing information for every task, time as possible in low-power mode. SEGGER offers a versatile embOS licensing policy embOS—developed by The Embedded Experts, which enables embOSView to show the CPU load. with no royalties at a reasonable price. is used in many different target markets such as n Supported processor families industrial controls, internet of things, networking, n Zero-Latency Interrupts consumer electronics, safety critical devices, embOS is perfectly suited for hard real-time conditions as All major processor fa mi lies are supported. n Technical info automotive to medical devices, and avionic, making it does not block zero-latency interrupts. embOS does not Memory Usage it the market leading RTOS in the embedded industry. add any additional latency or jitter to zero-latency interrupts. When an RTOS modifies its data structures, it has to block Kernel size (ROM) 1700 byte * n Profiling using SystemView access to its data structures. In order to achieve that, Kernel RAM usage 67 byte * embOS is fully instrumented for the use with low-priority interrupts are blocked. Zero-latency interrupts Task RAM: Task control block 36 byte * SystemView. SystemView provides a complete picture cannot call OS functions. Task RAM: Minimum stack size 88 byte * of all tasks and their behaviour including the usage of all embOS objects, such as mailboxes and timers. In n Simulation environment addition the user gains complete insight into interrupt A simulation environment running under MS Windows Timing usage. For more information on SystemView, read is available. It can be used to write and test the entire Context switching time 296 Cycles (1.4 µs with the section "SystemView — Real-Time Analysis and application on your PC (all API is 100% identical to your STM32F756 running at Visualization" on page 6. embedded application). This makes debugging and 200 MHz)* development easy and convenient and saves development n Profiling using embOSView time. The simulation is an open environment, which also Interrupt latency Zero Where SystemView live recording is not available, the allows adding C-code to simulate the target specific * Depends on CPU, and compiler used profiling tool embOSView can be used. embOSView is hardware. embOS Simulation comes with a ready-to-go included with all embOS shipments. It communicates project for MSVC, or MinGW and Eclipse.

12 13 Real-TimeSoftware Tools Operating System

embOS-Safe

Functional Safety RTOS IEC 61508 SIL 3 and IEC 62304

n n Enhanced Safety Real Time Operating System embOS-MPU Certified Real Time Operating System embOS-Safe

embOS-MPU offers memory protection on top of TÜV Süd Germany has certified the real-time the proven real-time operating system embOS. It n Features operating system (RTOS) embOS according to IEC n Features significantly enhances both stability and safety of 61508 SIL 3 and IEC 62304 Class C. IEC 61508 is your embedded applications and thereby simplifies n Suitable for any safety-critical application the standard for functional safety and referenced in n Enhances the safety of your products! any certification process. The operating system and multiple derived standards in different areas. embOS n Available for any MCU containing a n Simplifies certification and reduces risk all tasks deemed privileged are memory protected hardware MPU or MMU certifications according to other standards, including n Certified according to IEC 61508 SIL3 and isolated from any ill affects of unprivileged ISO 26262, can easily be done. n Unlimited number of privileged und and IEC 62304 Class C by TÜV Süd, tasks. Due to a fully compatible API, existing embOS unprivileged tasks possible Germany applications may be adapted to embOS-MPU with n High quality development processes n Unprivileged tasks 100% Sandboxed n Works with a familiar API minimal effort. The certification, which was conducted in close n Simple and straightforward runtime embOS-MPU can be used in any application from configuration cooperation with our partner Embedded Office, battery-powered, single chip products to systems confirms the quality of the SEGGER development n Easy to integrate in both new and demanding ultra-fast response, flexibility and multiple processes and demonstrates that embOS-Safe existing products tasks. Typical fields include, but are not limited to is perfectly suited for being the fundamental n Safety for all product areas medical equipment, automation, avionics, and further component of safety products. Trust our professional The RTOS is the most critical component in many safety-critical applications. services and take advantage of all RTOS key features safety critical applications. embOS-Safe can be used peripheral and CPU features. Instead, these tasks like multi-tasking, comprehensive communication to isolated safety critical code, ensuring it can operate must run in unprivileged state and have restricted n What is memory protection? and synchronization services, as well as memory without interference with other tasks. This simplifies access to specific memory locations only. Memory protection is a prevalent mechanism to protection. For customers, no effort is required for the certification of your application. control memory access rights and is part of most n What is embOS-MPU RTOS certification at all. embOS-Safe comes with a embOS-Safe has been designed specifically for modern processor architectures and operating certification kit containing all necessary documents, the safety sector, including industrial, medical, embOS-MPU uses the hardware's memory protection systems. The main purpose of memory protection including the comprehensive embOS Safety manual. automotive and home appliance applications. unit as well as additional software mechanisms is to avert specific tasks from accessing memory implemented with embOS-MPU to prevent one that has not been allocated to them, thus preventing n Consistent, proven interface task from affecting the entirety of the system. This possible bugs or even malware contained in one task The Application Programming Interface (API) is guarantees that even in case a bug occurs in one from affecting the entire system. unchanged in relation to embOS. Therefore existing task, all other tasks and the operating system itself In order to achieve this, application tasks that could software parts can be (re-)used easily. This helps continue execution. possibly affect other tasks or the OS itself must be to use embOS-Safe in existing applications. There With embOS-MPU, all privileged tasks have full restricted from accessing the whole memory, special is no migration guide required, still SEGGER's access to the whole memory. An unprivileged task, function registers and the OS's control structures. knowledgeable and responsive support team is however, has specific For example, tasks that available, if need arises. access permissions to execute third-party code each distinct memory may be considered n One-Stop Solution region. In order to access unsafe and should be The certified RTOS embOS-Safe is available for peripherals, additional restricted accordingly. SEGGER's IDE Embedded Studio, offering a memory locations and Such application tasks one-stop solution. Naturally, embOS-Safe is fully OS control structures, must not run on the same suited for usage with SEGGER's extensive portfolio device drivers as well as privilege state as the of outstanding middleware, debug probes and specific embOS API may OS, which runs in fully production tools, too. be called from within an privileged mode and has unprivileged task. access to all memory,

14 15 File System

n n Features Data Storage with emFile n MS DOS/MS Windows-compatible FAT12, FAT16 and FAT32 support, proprietary EFS file system emFile is a file system for embedded applications the NAND flash driver allows block grouping to save n Support for long file names which can be used on any type of storage device. memory required for administration of the memory n Multiple device driver support emFile is a high-performance library that has been blocks. The NOR flash driver can be used with any CFI n Multiple media support: A device driver allows you to access different media at the same time optimized for minimum memory consumption in RAM compliant 16-bit chip. The Common Flash Memory n Cache support: Improves the performance of the file system by keeping the most recent used sectors in RAM and ROM, high speed and versatility. It is written in Interface (CFI) is an open specification which may be ANSI C and can be used on any CPU. implemented freely by flash memory vendors in their n Works with any operating system to accomplish a thread-safe environment devices. n ANSI C stdio.h-like API for user applications n Device Drivers n Very simple device driver structure: emFile device drivers need only basic functions for reading and writing a block emFile is designed to cooperate with any kind of n Wear-Levelling n Optional NOR flash (EEPROM) driver: Any CFI-compliant NOR flash is supported; Wear levelling included embedded system and storage device. To use a Wear-levelling is supported by the NOR/NAND driver. specific medium with emFile, a device driver for that Wear-levelling makes sure that the number of erase n Optional device driver for NAND flash devices: Very high read/write speeds; ECC and wear levelling included medium is required. The device driver consists of cycles remains approximately equal for each sector, n An optional device driver for MultiMedia & SD cards using SPI mode or card mode that can be easily integrated basic I/O functions for accessing the hardware and a thus prolonging the life span of the whole flash n An optional IDE driver, which is also suitable for CompactFlash using either True IDE or Memory Mapped mode global table, which holds pointers to these functions. memory. Maximum erase count difference is set n An optional proprietary file system (EFS) with native long file name support If you need to use a proprietary storage device, to 5. This value specifies a maximum difference of n An optional journaling add-on. It protects the integrity of the file system against unexpected resets you can write your own device driver. Currently the erase counts for different physical sectors before the following device drivers are available: wear levelling uses the sector with the lowest erase n NAND flash evaluation board available MultiMediaCard (MMC), Secure Digital (SD), RAM count. In contrast to other products on the market, disk, Compact Flash, IDE, NOR flash, and NAND SEGGER’s emFile offers both static and dynamic flash. wear-levelling. In order to keep erase cycles on the n Journaling same level for all sectors, static data is regularly Journaling is an additional component for emFile which n NOR/NAND Flashes moved around to different sectors. resides above the file system and makes the file system The Universal NAND flash driver works with all modern layer fail-safe. File systems without journaling support (for SLC and MLC NAND flashes. It can use the ECC n MMC and SD Cards example, FAT) are not fail-safe. Journaling means that a engine built into NAND flashes to correct multi-bit MMC and SD cards can be accessed through two file system logs all changes to a journal before committing different modes: either SPI MODE or MMC/SD card them to the main file system. To prevent corruption from mode. For both modes drivers are available. To use unexpected interruptions, caused for example by a power one of these drivers, you need to configure the MMC failure, the Journaling Layer caches every write access to driver and provide basic I/O functions for accessing achieve an always consistent state of the file system. your card reader hardware. n Memory requirements* n Encryption Memory requirements depend on the used CPU, compiler, The emFile Encryption add-on provides a simple way memory model, as well as on various other factors such as to encrypt individual files or the storage media as a configuration switches and selected drivers. whole. Encryption can be used with both available SEGGER NAND flash file systems - EFS and FAT. All storage types such evaluation board as NAND, NOR, SD/MMC/CompactFlash cards are errors. The driver also works with SLC flashes which supported. To use encryption, only minor changes

require 1-bit error correction and supports 's to the application program are required in order to ROM: app. 9-40 kB * Precise values depend on the functionality used. DataFlashes. select the encryption method and a password for RAM: app. 2 kB Values are measured on a specific target system and To enable the use of large NAND flash memories, volume or individual files. will be different on other systems.

16 17 Compression

n n Features Shrink data with emCompress n Highly efficient compression emCompress is a compression system that is able n Small decompressor ROM footprint to reduce the storage requirements of data to be n Fixed decompressor RAM use, chosen when compressing embedded into an application. A compressed version n Wide range of codecs to choose from of the data is stored in the flash memory of the target system. In the target, a small, fast decompressor n Automatic selection of best codec for each file can decompress the data on-the-fly, whenever it is n Works with any operating system to accomplish a thread-safe environment required. The decompressor can decompress into n Easy to understand and simple to use RAM or send the output to an application defined n Simple to configure and integrate function. n Royalty-free n Software only grows in one direction With increasing complexity of today's devices, customers expect firmware updates over the lifetime of a device. It's important to be able to replace both n Group mode offers better compression firmware images and FPGA configuration bitstreams Uncompressed Single File Mode Group Mode in the field. Typically, firmware upgrades and other emCompress can boost compression ratios using group static content grow in size over the lifetime of a mode when compressing many small files. In group mode, device: features are added to software, not taken the uncompressed source files are concatenated and away, it's just what happens. emCompress enables microcontrollers with small compressed as a whole, increasing the opportunities for the

This is where emCompress can help. emCompress internal flash memory to store FPGA image bitstreams compressor to find ways to compress the combined data. Compressed date size will compress your data so that it takes much less which otherwise would require the system designer This proves especially effective when compressing small, space on the target device. The decompressors are to use a bigger version of the microcontroller. static HTML files for embedded web servers. tiny in ROM, but the benefits of compression means you reclaim more space in your device for the features n Decompressing and Processing Data Compression Mode you're trying to add. emCompress features two decompression functions. Because emCompress decompressors can be The first one is decompression into memory. The tailored for RAM use, you can decompress static complete data is decompressed and stored in a content early in your application and not devote RAM user-provided memory buffer. Although the buffer to decompression buffers. can be temporary, this requires to have enough free n Performance and Memory Footprint yield good compression ratios, but even without temporary memory for the complete uncompressed data and RAM, good compression ratios can be achieved in many n Typical example – the workspace. Decompression into memory can for ROM use cases. No static RAM is required, stack usage is well below Configuring an FPGA example be useful for dynamic firmware images. The amount of ROM that emCompress uses for 512 bytes. For instance, configuring an FPGA is one of the first The second function is decompression in streamed decompression varies with the codec selected between 0.5 things that an application will do, decompressing a mode. emCompress will use a small temporary buffer kByte and 2.1 kByte. The total ROM requirement includes n Typical uses of emCompress bitstream and sending it to the FPGA. In this case, a whose size is set by the user when compressing. a single decoder, and all supporting functions, excluding Compression has many fields of application. Static data small decompression buffer can be held on the stack Once a fragment of data is decompressed and the integrity checks. that is not frequently used and/or has exceptionally high even though the compressed bitstream is hundreds buffer is filled, the user-provided output function is compression rates are the prime target applications. Typical of kilobytes in size: the temporary buffer is a known called and the next buffer filled again with the next RAM use examples are the configuration bitstreams to program size that is configured at compression time, and that fragment. Streamed decompression is particularly The amount of RAM that emCompress uses is under FPGA and CPLD devices, permanent files for embedded RAM is free for reuse the moment any decompression effective for programming FPGAs or serving web complete control as it is specified at compression time. web server static content, firmware updates and the user completes. content. Typically, 2 kByte of temporary RAM for decompression interface messages for multiple languages.

18 19 Connectivity

n n Features Get connected with embOS/IP n Tail-tagging support n Standard sockets interface embOS/IP is a TCP/IP stack that provides a small for all popular boards and offer an out-of-the-box n Raw socket support n High performance memory footprint, high performance solution for experience. All modules can output debug messages n Non-blocking socket functions n Small footprint embedded networking solutions. The stack has been and warnings in debug builds. The modules to output n Unlimited Connections optimized for use in real-time, memory-constrained this information can be selected at run-time, allowing n Runs "out-of-the-box" n IP fragmentation support embedded systems. It offers RFC-compliant TCP/ the developer to focus on the aspect he is analyzing. n No configuration required IP and a standard socket API. embOS/IP works n Fully runtime configurable n Configuration free n Works with any RTOS in a multitasking seamlessly with the embOS operating system. environment (embOS recommended) n Developed from ground up for embedded Several higher-level protocols are also available. The entire stack can be compiled into a library. Setup systems n Zero-copy for ultra-fast performance is reduced to a minimum, performed at run-time. n PPP/PPPoE available n Performance and Resource Usage This, along with a wealth of sample programs, gets n Drivers for most popular microcontrollers and external MACs available n Various upper layer protocols available The stack has been optimized for both, performance you up and running quickly. Since inter-module n Royalty-free and code size. The standard socket interface is dependencies are limited to the parts required for the n Easy to use! complemented by the zero-copy API, which allows functionality of the stack, unused parts of the code reading and writing of data without additional protocol are automatically excluded by the linker. related copy operations. n embOS/IP Software Products n Additional Products n An excerpt of the available add-ons n Multi-task support embOS/IP is offered in a BASE package which emWeb WEB SERVER embOS/IP CoAP client/server embOS/IP allows any number of tasks to call API includes the most important protocols related The emWeb web server allows embedded systems to Client/server data collection service functions concurrently. The stack itself uses typically to Ethernet communication and the stack itself. present web pages with dynamically generated content. It two tasks (one for housekeeping and one for packet Depending on the engineer's needs there are several embOS/IP MQTT Client has all features typically required by embedded systems: reception), but can also be used with just a single protocols available as add-ons, as well as the embOS/ IoT Messaging Protocol multiple connections, authentication, forms. The RAM or even no task (polling). The two-task model allows IP PRO package which includes a device driver, and usage of the web server has been kept to a minimum by embOS/IP SNTP Client minimum interrupt latency on systems without nested add-ons for extended communication via Internet. smart buffer handling. The sockets interface can be used Simple Network Time Protocol. interrupts. The following protocols are, among others, part of with any TCP/IP stack. embOS/IP SNMP Client the basic package: n embOS/IP structure embOS/IP FTP SERVER and FTP CLIENT Simple Network Management Protocol. ARP (Address resolution protocol) embOS/IP is organized in different layers: The embOS/IP FTP server can use the same file system embOS/IP SMTP Client IP (Internet protocol) as the web server. It can be used in r/o or in r/w mode and The client enables embedded systems to send emails Application Layer DHCP, DNS, FTP, HTTP, Telnet, … ICMP (Internet control message protocol) allows reading and modifying of configuration data or web embOS/IP Websockets Client/Server Transport Layer TCP, UDP UDP (User datagram protocol) content. With the FTP client add-on data can be exchanged Firewall friendly communication TCP (Transmission control protocol) with any FTP server Network Layer IPv6, IPv4, ICMP, ARP, … Standard Socket API emSSL Transport Layer n Memory requirements Link Layer Ethernet (IEEE 802.3), PPP, WiFi Zero-Copy API emSSL is a Transport Layer Security solution which allows Memory requirements depend on the used CPU, compiler, DNS client secure and private connections with single-chip systems memory model, as well as on various other factors. using as little as 7 kBytes of RAM. emSSL works perfectly A typical ROM size for a system using ARP, IP, ICMP, UDP, TCP n Easy to use DHCP client with embOS/IP. For more details about emSSL, please refer and sockets is about 18kB (on typical 32-bit microcontroller The stack comes with a variety of confidence tests Telnet server (sample) to the product description in section "Safe Data Transport with size optimization). Mimimum RAM usage is about 6KB and example applications. It runs out of the box. For with emSSL" on page 29. for simple applications. most microcontrollers, sample configurations are You can find the full list of additional modules at available in the evaluation packages, that are available www.segger.com

20 21 Connectivity

n n Features Get connected with emUSB-Host n ISO/ANSI-C source code n HID component SEGGER's USB host software stack implements n Supports USB 1.1 / 2.0 n MSD component User Application full USB host functionality, including external hub n High-Speed support n MTP component support, and optionally provides device class n OHCI, EHCI and proprietary drivers n Printer component drivers. It enables developers to easily add USB host n Multiple hub support n Extended error recovery during enumeration functionality to embedded systems. The emUSB-Host software stack supports all transfer n Modem support (CDC-ACM support) n No royalties modes (control, bulk, interrupt, isochronous). emUSB-Host It complies with the USB v1.1 and USB v2.0 specifications. USB pipe management and extended USB standard class error recovery mechanisms that are required for reliable operation are implemented internally. FT232 MSD CDC-ACM HID n MTP Component emUSB-Host is a USB host stack specifically designed USB class The MTP class supports object-based communication with handling of output devices, like printers and plotters. Printer MTP for embedded systems. The software is written in the device for all types of files. MTP typically is supported by A printer connected to emUSB-Host is automatically ANSI C and can run on any platform. emUSB-Host smartphones, digital cameras or other multimedia devices configured. The implementation of the printer class forwards can be used with embOS or any other supported for multimedia content. the print data to a connected printer. The actual print data RTOS. A variety of target drivers are already available. has to be generated using printer specific codes. Support for new platforms can usually be added at no n UART Interface Component (FT232) extra charge. The serial interface component supports devices that n Modem Support (CDC-ACM) Component The modular design enables applications to access provide a UART interface via USB, such as FTDI's FT232 emUSB-Host works with multi-class devices and supports the USB host programming interface directly, or emUSB-Host Core series of USB-UART converters. Such converters are very all classes required to operate USB modems, such as to use APIs exposed by class drivers. At its upper common to connect to legacy devices, but there are also CDC-ACM. The support includes modern cellular network edge a class driver typically attaches to an operating numerous devices out there, that implemented their USB modems. system module such as a file system. device interface around a serial-USB-converter. The stack can handle multiple devices and hubs n USB On-The-Go (OTG) simultaneously and fully supports hot plugging n HID Component If a device requires to operate as both host and device, USB of devices and hubs. The programming interface The Human Interface Device class (HID) is an abstract On-The-Go is an important option. USB On-The-Go (OTG) supports dynamic device enumeration and Hardware Driver class protocol defined by the USB Implementers Forum. introduces the dual-role device, meaning a device capable identification. This protocol was defined for the handling of devices which of functioning as either host or peripheral. The On-The-Go- are used by humans to control the operation of computer module of emUSB automatically decides whether it has to systems. The class enables the use of input devices such operate the host or the device side, when a new connection n MSD Component as keyboards, mice, trackballs or touch-controllers. is established. The Mass Storage Device class defined by the emUSB-Host can also talk to vendor specific HID devices. On-The-Go typically is used when only a single USB port is USB implementors forum supports USB-sticks and These are HID devices communicating with an application available for Host and Device use. Digital cameras use the external drives, such as CD-ROM or other storage program. The host loads the same driver as for any port to provide its data to a host system for further editing or drives. The emUSB-Host MSD implementation strictly User Hardware other HID and automatically enumerates the device. The directly connect to a printer. Some smartphones and tablets follows the standard of the USB Implementers Forum. application communicates with the particular device using have a single port for device and host functionality as well. As the market offers many USB sticks, that do not Components overview API functions offered by the host. USB OTG retains the standard USB host/peripheral model, follow the standard closely, emUSB-Host can be in which a single host talks to USB peripherals. emUSB configured to accept such devices as well. n Printer Component OTG offers a simple interface in order to detect the role of The USB class protocol for printers was defined for the the USB OTG controller.

22 23 Connectivity

n n Features Get connected with emUSB-Device n Supports USB 1.1 / 2.0 n CDC-ACM component emUSB-Device is a USB device stack specifically functionality as other devices on a local network. n Bulk communication component with driver n HID component package for Linux, Mac and Windows designed for embedded systems. The software A USB based web server can be created with little n MTP component n MSD component is written in ANSI C and can run on any platform. effort using the IP-over-USB component. A higher n Printer component emUSB-Device can be used with embOS, any other end device with a real Ethernet connector would n Smart MSD works without file system, works n No royalties supported RTOS, or even without OS. A multitude of use the same setup. This saves development costs cross-platform, does not require any driver n Windows driver HLK certification target drivers are already available. Support for new as there is no need to develop a host application n IP-over-USB, works cross-platform, does not platforms can usually be added at no extra charge. for every major operating system. The USB web require any driver installation n Direct support from the developers server provides a configuration and data monitoring n emUSB-Device Components interface that uses web browser as a user interface SEGGER offers a flexible USB device stack structure. on the host system. n Audio Component The typical emUSB-Device stack package consists of The Audio Component enables streaming audio data to a target driver designed for your target hardware, the n SmartMSD Component and from the USB device. With this class Audio data can be n CDC-ACM Component emUSB-Device core and the Bulk, Audio, CDC-ACM, The SmartMSD component allows to easily stream recorded or output via codecs. emUSB-Device CDC-ACM converts the target device into a CDC-ECM, RNDIS, HID, MSD, MTP or printer files to and from USB devices. Once the USB device serial communication device. The host will recognize it as a component, or any combination thereof. The different is connected to the host, files can be read or written n MSD Component virtual COM port (USB2COM). available hardware drivers, the USB class drivers and to the application without the need for dedicated emUSB-Device MSD converts your embedded target the Bulk communication component are additional storage memory. device into a USB mass storage device. Your target device n HID Component packages, which can be combined and ordered It can be used for various types of applications and can then be plugged into a USB host and be accessed as The Human Interface Device class (HID) is an abstract USB depending on project requirements. purposes, with no additional software or drivers a disk drive, without the need to develop a driver for the class protocol defined by the USB Implementers Forum. necessary on the host side. The SmartMSD software host operating system. This is possible because the mass This protocol was defined for handling devices which are n IP-over-USB Component analyzes what operation is performed by the host and storage device class is one of the standard device classes, used by humans to control the operation of computer The IP-over-USB component automatically detects passes this to the application layer of the embedded defined by the USB Implementers Forum. Every major systems. emUSB-Device also allows 'Vendor specific HIDs'. the nature of the connected host system and starts target, which then performs the appropriate action. operating system on the market supports these device These are HID devices communicating with an application the required class (RNDIS, CDC-ECM). The classes A simple drag and drop is all it takes to initialize classes out of the box. Since the host already includes program. The host OS loads the same driver as for any HID started do not require any driver to be installed on the this process, which is supported by a drivers for USB mass storage devices, the target device and automatically enumerates the device. The application host-system as they are supported natively already. An unique active file technology. will be recognized as a mass storage device and can be communicates with the particular device using API functions application example for the IP-over-USB component accessed directly. offered by the host. This allows an application program to are low-end stand-alone products that shall be n Bulk Communication communicate with the device without the need for loading converted into connected devices with the same Component n MTP Component a custom driver. The HID class is a good choice if ease of The Bulk component allows The MTP class supports object-based communication use is important and high communication speed is not a developers to quickly and with the host system for all types of files. MTP is an official requirement. painlessly develop software for an extension of the Picture Transfer Protocol designed to allow embedded device that requires fast digital cameras to exchange image files with a computer. n Printer Component communication via USB (HiSpeed up MTP extends this by adding support for all types of files. The USB class protocol for printers was defined for handling to 42 MByte/s). The communication is like MTP is an alternative to MSD, without some of the latter’s output devices like printers and plotters. The emUSB-Device a single reliable high-speed channel (very weaknesses. Object based communication gives access to printer receives data from the host and forwards the data to similar to a TCP connection). It allows the the file system from the host system (PC) and the device at a parser. The printer component provides automatic error PC to send and receive data with the embedded the same time. Using the MTP class also allows selectively handling routines, in case of events like the device running target. This permits usage of the full bandwidth of the exposing content of the file system to the host system, out of paper. The USB protocol is completely hidden from USB. typically a PC. Sudden removal of the USB cable does not the developer and he can concentrate on developing the endanger the data integrity of the device’s file system. parser.

24 25 IoT & Security

n All-in-One Solution for the Internet of Things our SystemView tracing tool and industry leading Bespoke IoT solutions can also be developed on J-Link debug probe. All products are developed and demand utilizing SEGGER's embedded engineering created by one reliable, established vendor, SEGGER know-how and expertise. Everybody talks about the Internet of Things (IoT), we As the environment for the IoT device constantly Microcontroller. provide everything to build it. Today IoT encompasses changes, it is a requirement to establish in-field- a diverse range of smart connected devices and upgrade options. n SEGGER Offering for IoT Devices capabilities. This means a broad range of embedded software requirements need to be satisfied when n How does SEGGER support the devel- developers are choosing their IoT solution partner. opment of IoT devices? n Connectivity n Safety & Security n Core n Tools With SEGGER you can accelerate time to market with Software IP components from SEGGER such as security, connectivity, reliability and tools that simply emSSL, emSSH, emSecure Crypto libraries, HTTP embOS/IP embOS-MPU embOS SystemView work. Web server, and embOS/IP to name a few, can be used as foundations for your securely, connected IoT OS n What is an IoT device device. Our software works on any MCU. We work OS At first there is the functional side of the IoT device. with all the major semiconductor vendors, keeping This functional part is essentially an embedded on the pulse to enable the next generation of designs. system as we have known for years. IoT devices Take embOS-MPU RTOS for example. This super Mobile Networks emSSH emUSB-Device Embedded Studio interact with each other, a server or the cloud. To reliable OS works effortlessly on today's Cortex-M achieve this, the device needs to find its counterparts, and is already primed to support the next generation this is supported by protocols such as MQTT. The Arm V8-M architecture. connection itself is handled via IP or UDP based Connected devices requiring User Interface (UI) or protocols. Human Machine Interface (HMI) support can take Communication increases the exposure of the IoT advantage of SEGGER's popular graphics package device, which makes it more important to keep emWin. Licensed by many of the top semiconductor MQTT emUSB-Host J-Link the different aspects of security in mind during companies, its popularity is a testament to its development. There are multiple ways to attack an robustness and flexibility, perfect for implementing IoT device, so it better uses secure components your custom graphical interface. such as Transport layer security, secure shell, digital We offer a complete end-to-end solution. In addition J signatures and certificates to block out unwanted to our software suites, system developers can also communication or snooping. take advantage of SEGGER's Embedded Studio IDE, WiFi Support emSecure emCompress J-Trace Complete Solutions for IoT Devices

Security emSecure emSSL emSSH J

Dropbox Client emLoad emWin Flasher GUI/HMI Core Connectivity

embOS-MPU emFile embOS/IP Mobile Networks

OS emWin

emLoad emCompress WiFi Support MQTT

26 27 IoT & Security

n n Secure data exchange for embedded IoT devices using Dropbox Safe Data Transport with emSSL

Dropbox Client IoT devices have different n Features emSSL is a SEGGER software library that enables n Features communication needs. The new secure connections across the Internet. emSSL Dropbox client is ideal for projects which offers both client and server capability. SSL/TLS need to manage various amounts of n Supports file upload & download is a must-have in nearly every application which is n Complete Software Solution data. This is accomplished by loading n Supports Dropbox API v1 connected to the Internet. Products for IoT, smart grid n Supports Hardware Acceleration or storing files, even large data files, in n Support for Dropbox API v2 or home automation markets benefit from securing Performance Increase by 4-32 times a secure and reliable way using the public Dropbox available upon request their communication. For more details, please go to: API. https://www.segger.com/emssl-crypto- n Simple to integrate n Suitable for Single-Chip Systems library.html n Small footprint n Typical Applications The mimized RAM usage enables operation of n High Performance Pure Software AES 2.4 MB/s Typical use cases include; firmware updates, log files, n no royalties emSSL on single-chip systems. a secure connection and for that matter, any information shared between between browser and the web server requires only 7 n Small Memory Footprint Can be scaled down to 7kB of RAM different IoT devices and/or a central server. KB of RAM. This way, even small embedded devices can establish secure connections. n Verified against FIPS specifications n Why Dropbox? issued by NIST (FIPS 186-4) Dropbox is a great platform for this style of connected n Secured Connections application, with proven reliability, unlimited capacity emSSL offers the possibility to establish a secured n Performance and the ability to store data for an unlimited time. connection to any client or server application from emSSL is built for high performance with target Large data files are easier to share, as they can be your pro duct. It can be used both target independent independent code. It is completely written in ANSI-C stored in the dropbox and wait there to be picked in native computer applications, and in embedded and can be used in any embedded application, as up by the devices having access to the particular targets. Dropbox. The devices can reduce their own online well as in PC applications. time, as they can reach the Dropbox all the time and n The emSSL Package n Configurable go online whenever it is convenient or most effective. emSSL is a complete package and comes with emSSL is created for high performance and a low everything needed to secure communication. It n Requirements memory footprint. The library can be configured to fit includes all modules to implement the required any speed or size requirements. Unused features can SEGGER's Dropbox client enables secure data functionality to use SSL. They are provided in source be excluded, additional features can easily be added. exchange, using SSL/TLS, and a standards- code to allow complete control of the code used in compliant TCP/IP stack with a socket interface. the product and create transparency to avoid worries n Supported Cipher Suites The client requires SEGGER's emSSL transport layer about possible back doors or weakness in code, emSSL includes the most commonly used cipher security (TLS) product; integration with SEGGER which cannot be checked in precompiled libraries. embOS/IP networking stack enables Dropbox use suites, which allows connection to nearly every TLS- supporting server. on small microcontrollers. n emSSL Makes it Easy A commercial license provides access to the full With emSSL the cipher suites can be added emSSL comes with a simple, yet powerful API to make source code. A PC evaluation package is available dynamically. When the required cipher suites using emSSL in your product as easy as possible. which enables evaluation of this solution in just are known it is possible to create a minimal size minutes. It also includes sample applications in binary and configuration by not linking in unused algorithms. source code, which demonstrate how and when With the included scan suites application it is possible emSSL can be used in real life scenarios. to find out the required cipher suite(s) to connect to a server.

28 29 User Interface

n n Features Graphical User Interface with emWin n ISO/ANSI C source code n Any 8/16/32-bit CPU; only an ANSI “C” compiler is required! n Low resource usage emWin is designed to provide an efficient, processor- emWin, probably the most efficient and comprehensive n Any (monochrome, grayscale or color) LCD with n Alpha-Blending and LCD controller-independent graphical user embedded GUI available, helps developers beat their any controller supported(if the right driver is interface (GUI) for any application that operates with timelines and development costs. It is written in ANSI n Anti-Aliased drawing available) a graphical LCD. It is compatible with single-task and C and supports any b/w, gray-scale or color display. n Anti-Aliased fonts n May work without LCD controller on smaller multitask environments, with a proprietary operating Drivers for all popular LCD controllers are available. n Auto double / triple buffering displays system or with any commercial RTOS. emWin is All types of graphical displays (STN-LCD, TFT, CRT, n Multi-Language-Support with ASCII resource files n Any interface supported using configuration shipped as C source code. It may be adapted to any OLED, Plasma, ...) are supported. macros n Multi-Layer-Support physical and virtual display with any LCD controller n Display-size configurable and CPU. n Drivers for Display Controllers n Memory devices for flicker-free animation n Characters and bitmaps may be written at any Run-time configurable drivers can be written for all n Free rotation and scaling point on the LCD, not just on even-numbered byte types of displays and display controllers, including n Run-time-configurable drivers addresses n Attractive and useful display with monochrome, gray-scale, passive and active reduced time and cost color (TFT) displays. Drivers for all popular display n Start/test applications supplied One of the most challenging aspects of many controllers already exist. n No royalties development projects is designing an attractive and useful display. In addition to creating images n GUIBuilder The GUIBuilder gives developers and designers a comprehensive tool to create the initial framework of the user interface. The code generated by the n Font Converter n Window Manager/Widgets GUIBuilder can be modified and read back into the Font Converter is a Windows program that makes it easy The window manager allows the creation of windows of GUIBuilder again which allows easier modifications to add new fonts to emWin. It can convert any installed arbitrary size at any point of the display. It is an optional even at a later stage of the user interface development. PC font into a C file that can be compiled and linked component, which is fully integrated into the software. Child with the application or the binary formats ".sif" and ".xbf", windows and the exchange of messages between windows n Bitmap Converter which can be loaded during runtime. Simply load a font and their children/parents are supported. The Bitmap Converter can convert any bitmap into which is installed on your system into the program, edit its The window manager allows windows to be transparent standard C code or into a binary format which can appearance if necessary, and save it. The generated file can and overlapping. Windows can freely move and resize. be located on any media and loaded at run-time. It then be used by emWin and be shown on the display like Additionally the window manager allows fading in and out. supports palette conversion for palette based color any other standard emWin font. The window manager performs any necessary clipping. If modes as well as high color, true color or semi callback routines are used, it also manages the redrawal of transparent images as PNGs. For efficiency, bitmaps n Color Management invalidated areas. may also be saved without palette data and in emWin features an integrated, very efficient color compressed form. management system. This system allows conversion of n Touch Screen Support

emWin Samples logical colors (RGB format) into physical colors, which can emWin supports touch, gesture and multitouch events. The n Fonts be displayed at run time. As a result, your application does window manager deals with touch messages and widgets that look exactly how you want them to appear, the A variety of fonts are shipped with the software. The not need to be concerned the available colors, and displays such as button objects. It takes only one line of code to implementation of windows techniques, complex default set of fonts includes quite small fonts up to can easily be interchanged. create a button or another widget, which then handles drawing routines, different fonts and flicker-free fairly large fonts, mono spaced and proportional touch messages and reacts accordingly. For resistive updates are also expected. As part of a complex fonts, special digit fonts and framed fonts. Additional n Virtual Screen Support touch screens support is available as a driver for analog process which can take months or even years, the fonts can easily be generated from PC fonts using The virtual screen feature supports display areas larger than touch panels, which handles the analog input (from an developer only has a short time available for the the Font Converter. Monotype and TrueType fonts the physical size of the display. It allows switching between AD-converter), debouncing and calibration of the touch implementation of the display functionality. support is available. different screens even on slow CPUs. screen is included.

30 31 Production

n n Features Fast and Reliable Programming with SEGGER Flasher n Stand-alone programming n USB-powered n Verification of data integrity n MSD mode The Flasher production tools are a family to add additional variable information are supported. of in-circuit-programmers with stand-alone The internal memory offers more than enough n Remote Control via RS232 n Internal Web-Server programming support. Each Flasher is memory for programming data and configuration n High programming speed n Serial number programming optimized for high programming speed and files. The programmers operate at 5V via USB n Easy integration into production environments n Patch programming engineered for robustness. The hardware and interface. The Flasher family of stand-alone In-Circuit- n USB interface n Authorized Flashing Programmers has been offered for many years now software interfaces allow an easy integration n Ethernet interface and is a proven programming solution for numerous into production environments. customers. compliant flash memories are recognized automatically n Universal Flash Loader n Multiple Images n Service Flasher Portable PLUS SEGGER's flash download technology is available The Flasher Portable PLUS has an LCD display to provide and can be programmed directly. Multiple firmware images and configurations can be for all microcontrollers. The Universal Flash Loader full transparency of the programming process and a more stored in the internal memory of the Flasher. Which n Gang Programmer Flasher ATE algorithm enables the adaption to any target system flexible user interface. Flasher Portable PLUS supports image or configuration is selected, can be selected in the market. It is available for Flasher Portable having up to eight configurations/image files stored on the The Flasher ATE is a modular gang programmer specialized via the remote control interface using UART terminal PLUS, Flasher PRO, Flasher ATE and Flasher Secure. Flasher, so one unit can be used for different targets. Proper for mass production setups. It is built from a mainboard and or Telnet via Ethernet. image selection is done by simply clicking a button. The a number of modules. The number of modules determine the number of targets that can be programmed at the same n Simply press a button n Authorized Flashing currently selected image is displayed. The high capacity Using the stand-alone option, service technicians can rechargeable LiIon-battery makes the user completely time (gang-programming). Each target interface can be Authorized Flashing allows the customer to limit the update devices in the field by simply pressing a button independent from external power supplies. configured individually. Targets with multiple controllers on number of flash programming cycles and to protect after the device has been set up and loaded with the board can have their controllers be programmed in parallel. the Flasher against non-authorized access to the necessary programming information. With the battery n Flasher PRO customers software, thus preventing the production n Flasher ARM powered Flasher Portable, service technicians do The top model Flasher PRO has all the features required of unwanted quantities by third parties. Authorized not even need to carry an external power supply to for a mass production programmer and is capable of Flasher ARM uses JTAG or SWD as target interface. Flasher Flashing is available for Arm, RX and PowerPC program their targets. programming any target system using the Universal ARM supports programming of microcontrollers based on targets. Flash Loader. It supports the internal flash memory of Arm cores such as: Arm7/9, Cortex-M0/M0+/M1/M3/M4/ The programming information is stored together with M7. CRC data which has been generated on the host microcontrollers as well as external flash memories. CFI- PC. This CRC data is used to verify the integrity of the data stored inside the Flasher and to verify the programming success. n Interfaces for every need In addition to the features like stand-alone operation and RS232 interface, current SEGGER Flasher models support the host interfaces Ethernet and USB to control the Flasher and transfer the programming data into the Flasher. The programmers can also be used in MSD mode to transfer the programming data. Additionally they have an internal web-server. n Proven programming solution Serial number programming and patch programming

32 33 Production

n n Features Flasher Secure n Authenticated production n Production volume control n Flasher STM8 The Flasher Secure is a mass production n CM administration and setup portal The Flasher STM8 connects via SWIM interface with programming system, capable of protecting the n Ultra fast programming the target. The target is optically isolated from the vendor’s IP regardless of the production site. host side. The configuration and operation can be It provides full control over the programming n Supports Cortex-M/R/A, RX, PPC handled with the Flasher software for STM8. Option process at contract manufacturers (CM) and n Prevents production of counterfeit units byte programming is supported. The Flasher STM8 similar environments. n No overhead in programming time supports the following devices: STMicroelectronics STM8. n Secured Production at Contract Manu- facturers n Flasher 5 Pro It’s common to employ a contract manufacturer (CM) n End-to-End Security IP is located inside the firmware. IP owners want to protect Flasher 5 Pro is the successor of the Flaser 5. It has to mass-produce products. CMs have access to Flasher Secure supports vendor-specific trusted firmware their IP. The Flasher Secure system uses authentication 64MB of flash memory to store programming data customer IP and large quantities of the components features to ensure end-to-end encryption, authentication algorithms to make sure, that only authorized boot loaders and configuration and has a significantly higher they are contracted to produce. Because of this, it’s and confidentiality covering the whole process including and firmware are used in the system. If one component is performance. The programmer supports the following essential that customers control both their IP and limit the ‘last mile’. not genuine, the device will stop working. Simply copying devices: Renesas /M16C/R32C/M32C. CM production to prevent theft and secure revenue. the firmware and/or bootloader from one device to another To combat these threats, Flasher Secure uses mutual n Secured Firmware is not possible anymore. n Flasher ST7 authentication, authorization, and confidentiality to Modern products carry a huge amount of intellectual The Flasher ST7 supports the RS232 interface only and secure your IP and production run. As an IP owner, property (IP). From the IP owners point of view most of the offers 512kB of flash memory to store programming you have full end-to-end control of your production data and configuration. Option byte programming is chain. supported. The programmer supports the following devices: STMicroelectronics ST7. Contract Manufacturer IP Owner

1. Read UID 2. Send UID 3. Validate UID

Flasher Secure Trusted Server

Internet THENT U IC A PUBLIC KEY SIGNATURE PRIVATE KEY C R D E AT E 6. Program 5. Send Signature 4. Create Signature Firmware incl. verification and public key and Firmware Signature

34 35 About SEGGER

SEGGER Microcontroller is a full-range supplier of hardware and software development tools as well as middleware for embedded systems – in brief: The Embedded Experts.

The company offers support throughout the whole development process with affordable, high quality, flexible and easy-to-use tools and components: Starting with its own IDE SEGGER Embedded Studio, debugging with the industry-leading J-Link, tying in Microcontroller peripherals via its Middleware, and finally implementing the software on the target through its own Flasher programmers.

SEGGER relies on closed-loop development: Its products have to prove their worth in daily use by the developers. That’s why: „ It simply works!

Software products include, among others: embOS (RTOS), emWin (GUI), emFile (File System), emUSB (USB host and device stack) and embOS/IP (TCP/IP stack). With emSSL and emSecure, a unique software to generate and verify digital signatures, SEGGER is offering solutions for secure communication as well as data and product security, meeting the needs of the rapidly evolving IoT.

The highly integrated, cost-effective tools comprise the Flasher flash programmer and the J-Link/ J-Trace debug probe.

SEGGER was founded in 1992, is privately held, and is growing steadily. Based in Hilden with distributors in all continents and a local office in Massachusetts, SEGGER offers its full product range worldwide.

SEGGER Microcontroller GmbH SEGGER Microcontroller Systems LLC In den Weiden 11 Boston area Silicon Valley 40721 Hilden 101 Suffolk Lane Milpitas, CA 95035, USA Germany Gardner, MA 01440, USA www.segger.com Tel.: +1-978-874-0299 Tel.: +1-408-767-4068 Tel: +49-2103-2878-0 [email protected] [email protected] [email protected]