The Embedded Experts

 Debug Probes

 Software Tools

 RTOS

 File System

 Compression

 Connectivity

 Security & IoT

 User Interface

 Production Debug Probes

J-Link SEGGER Embedded Studio

nn J-Link Debug Probes n Features

nn Supports Arm® Cortex®-M / R / A cores, including the 64-bit cores (ARMv8-A) and Arm® 7 / 9 / 11, Microchip PIC32, Renesas RX, RISC-V and Silicon Labs 8051 SEGGER J-Links are the most widely used line of also adds support for corner cases that cannot be

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

2 3 Trace Probes

J-Trace SEGGERPRO Embedded Studio

nn J-Trace PRO n Features nn Debugging with Ozone n Features

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

Timeline Ozone can display runtime information of the embedded application in the unified Timeline window. The Code Timeline shows the instruction trace data Terminal Registers as a graphical representation of the Call Stack over Ozone can capture printf-output The current CPU registers are shown time. The Data Sampling tracks symbols and arbitrary by the embedded application in Ozone's Registers Window. In C style expressions at time resolutions of down to via SEGGER's Real Time Transfer addition to the basic CPU registers, 1 microsecond and visualizes the values in the Data (RTT) technology that provides Ozone can also display memory- Timeline. Using the Power Sampling feature of J-Link, extremely fast IO coupled with low mapped peripheral registers (SFRs).. the Power Timeline captures and displays the power MCU intrusion. consumption of the target device. 4 5 Software Tools

Embedded Studio

nn Developing with SEGGER Embedded Studio n Features

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

6 7 Software Tools

EmbeddedSEGGER Studio Embedded PRO Studio

nn Start developing right away with Embedded Studio PRO

n Features n Components of Embedded Studio PRO package Embedded Studio PRO is a highly advanced platform combining SEGGER's user-friendly Embedded Studio n Component Description development environment, along with a selection of n All-in-one development solution n our key components. It is offered n Runs out-of-the-box Integrated Development Environment as a pure software package or as a bundle with the nn Includes more than 50 ready-to-run projects Powerful cross platform C/C++ IDE for Arm Cortex®-M microcontrollers, an all-in- industry-leading J-Link PLUS debug probe, plus an nn Start application development immediately Embedded Studio emPower reference board. one solution aiming at efficiency, stability and a continuous workflow nn State-of-the-art development environment Software nn Full featured J-Link PLUS Debug probe Embedded Studio PRO is the one-stop shop nn All components developed and supported by embOS Priority-controlled high-performance real time operating system with zero latency solution that includes everything needed by an SEGGER embedded engineer: a cutting-edge IDE, a robust Robust file system for embedded applications, high performance library optimized n emFile PRO software framework including an RTOS, almost all n High-performance software with very small for minimum memory consumption footprint communication and security stacks and a high quality Compression system geared towards embedded systems. Enables even nn Royalty-free emCompress graphical user interface software. compression on resource-constrained microcontroller based systems

n Proven and robust embedded software emCrypt Encryption suite graphics package emWin for high quality Embedded Studio PRO includes an industry- user interfaces provides the means to proven software package. All components are emSSL Transport layer security protocol stack for protecting communication create stunning user interfaces. optimized for low resource usage and high emSSH Secure shell enabling secure remote administration access and data transfer performance. n Free for Makers, Hobbyists The RTOS embOS is known for a tiny memory and Education emSecure Authentication software to sign and authorize software and hardware footprint and high reliability. To complete the Embedded Studio PRO as a whole is set of software for application development, part of SEGGER's initiative to educate IoT Toolkit Toolkit for communication with Cloud based services supporting REST API, JSON the robust file management system emFile is future embedded engineers. To included. For efficient use of memory, CPU-independent TCP/IP stack, high-performance library optimized for speed, provide professional tools to emNet PRO data compression with emCompress versatility and a small memory footprint the maker, educational and is part of the package as well. hobby communities, emUSB-Device PRO High performance USB device stack specifically designed for embedded systems To serve all communication SEGGER created requirements the license terms, that USB host software stack, implements full USB host functionality, including external connectivity solutions emUSB-Host PRO enable these hub support emNet and emUSB communities (device and host) and emModbus Industrial communication stack to use emModbus are also almost all Efficient, processor- and LCD controller-independent GUI for any application that part of Embedded emWin PRO SEGGER tools operates with a graphical LCD Studio PRO. To fulfill and software Hardware the security requirements for educational, of modern IoT devices, the Debug probe with USB interface, including J-Flash software and advanced features hobbyist and maker J-Link PLUS package includes emCrypt, such as unlimited flash breakpoints, SystemView analysis tool and Monitor Mode purposes for free. emSSH, emSSL and emSecure. Reference board designed to enhance software evaluation, prototyping and proof emPower Last but not least, it also contains the of concept

8 9 Software Tools

SystemViewSEGGER Embedded Studio

nn SystemView — Real-Time Analysis and Visualization n Features

nn Maximum system insight SystemView is a freely available software tool for the stop as well as task activation and API calls when nn Minimally intrusive visualization of any embedded system. Its ability to an RTOS is used. The information gathered and nn Cycle-accurate profiling provide deep visual analysis revolutionizes the way visualized can be used to analyze both bare metal nn No additional hardware required in which embedded systems are developed and and RTOS-based systems. n handled. Optimizing a system becomes easier as SystemView consists of two parts: The PC n RTOS tracing bottlenecks can easily be found. Users can identify visualization application SystemViewer, and some nn Interrupt tracing without an RTOS wrong processing orders easily with the visualization code collecting information on the target system. nn Continuous real-time recording and live provided by SystemView. Any system, with or without The combined ROM size of RTT and SystemView analysis with J-Link and SEGGER RTT RTOS, can be monitored. modules is less than 2 KByte. In a typical system, technology about 600 Bytes of RAM are sufficient for continuous nn Works on any CPU SystemView visualizes and analyzes CPU load data recording via J-Link. n it comes to real-time data collection, enabled by the n Data acquisition types: Debug interface, UART by tasks and interrupts. Test setups with LED and and TCP/IP J-Link Real-Time Transfer (RTT) technology. RTT allows oscilloscope are a thing of the past. The tool offers n Real-Time with J-Link RTT monitoring of events, interrupts etc. in real-time. The nn Available under SEGGER’s friendly licensing cycle-accurate tracing of interrupts and task start/ SystemView has outstanding capabilities when policy data transfer rate of 2MByte/s is exceeding the required bandwidth and thus clearly surpasses the bandwidth of other solutions with a similar purpose. The overhead is less than 1 µs per call (measured for a 200 MHz Cortex-M). behavior, examination of erratic behavior such as in While SystemView works without a J-Link, the debug interrupt handling, or for the analysis and improvement of probe is needed to use the RTT feature. The technology performance. has no additional hardware requirements beyond the SystemView PRO is available, providing advanced filters standard debug interface. SWO or trace pins are not and unlimited event recording. required. This allows using these extended debug and analysis capabilities on Cortex-M0 based systems as well. n Data acquisition via UART and TCP/IP n Platform-independent Any system with UART or TCP/IP connection, typically Ethernet, can be monitored and verified. SystemView On systems which are not supported by the RTT package includes the target code required for integration technology, the buffer content can be read manually when as well as example projects. the system is halted, which allows single-shot recording until the buffer is filled. Single-shot recording can be n New Features triggered by the system to be able to control when the The software also adds a variety of new features. New recording starts. performance markers are useful for performance verification SystemView records the data read out from the target and and optimization. A new Runtime window provides visualizes it in different ways. Recordings can be saved for information on the runtime distribution of tasks, interrupts later documentation and analysis. and software timers. All windows are updated in real time, with no limit on the sampling time due to streaming data n Extended Debugging and Analysis acquisition. The entire data set can be stored for later or Analyzing the runtime behavior of a system and the remote analysis as well as archival and documentation interaction among tasks and between tasks and purposes. SystemView also comes with the files required interrupts can be employed for various purposes: For the for many popular RTOS such as embOS, FreeRTOS, uC/ documentation of new systems, validation of the desired OS-II and uC/OS-III, and more.

10 11 Real-Time Operating System

embOS SEGGER Embedded Studio

nn The Real-Time Operating System embOS n Features nn More than 25 years of continuous development nn Same code base and API for all embOS editions: embOS-Safe, embOS-MPU and embOS nn Available for all popular cores, compilers and For more than 25 years in the embedded market, development tools nn Royalty-free embOS has been and still is the preferred embedded nn Deployed in several billion devices in a wide range nn Unlimited number of OS objects, such as: OS choice for engineers all over the world. It offers of application areas tasks, semaphores, mailboxes, timers incomparable ease-of-use and guarantees 100% nn Certified for functional safety according to IEC nn Unlimited number of task priorities deterministic real-time operation for any embedded 61508 SIL 3 and IEC 62304 Class C nn Profiling and trace support device. It is highly portable and fully source- nn MISRA-C:2012 compliant compatible on all platforms, making it easy to port nn Low power support including tickless mode nn Powerful and easy-to-use API applications to different cores. nn Seamless watchdog support nn Highest performance with lowest use of memory n nn Multi-core support Developing Applications with embOS nn Kernel awareness plugins available nn Cycle-precise timing routines embOS is available in source or object code form. n n Zero interrupt latency n With more than 500 board support packages, embOS n Easy to use board support packages nn Built for functional safety runs out-of-the-box on any common hardware. Each nn Free for non-commercial use board support package comes with all required initialization code and a start project for the IDE of Using an embOS profiling build, embOSView collects and n (embOSView) Power-Saving Tickless Mode displays precise timing information for all tasks. your choice. Run your first embOS application in less n Professional Solution embOS low-power support reduces the power consumption than 5 minutes! The BSPs and samples are supplied embOS is suitable for any application, from battery- n Zero-Latency Interrupts for e.g. battery powered devices. Instead of having a timer in source code form. Libraries for all memory models powered single chip products to high-end systems interrupt for each system tick, the timer is reprogrammed embOS is perfectly suited for hard real-time conditions as it and initialization of the controller in C source are demanding ultra-high performance. The RTOS with the embOS tickless mode to be able to spend as much does not block zero-latency interrupts. Instead of disabling included to tailor the system to any hardware. embOS embOS, developed by The Embedded Experts, time as possible in low-power mode. interrupts when performing atomic operations, embOS is free for any non-commercial use like education and is used in many different target markets such as sets the interrupt level of the CPU to a specific threshold. evaluation, without any limitations. industrial controls, Internet of Things, networking, n Therefore, all interrupts with interrupt priorities higher Supported processor families For commercial projects, SEGGER offers a versatile consumer electronics, safety critical devices, than this threshold - the zero-latency interrupts - can still embOS licensing policy with no royalties at a automotive to medical devices and avionics, making be processed. embOS will never add any latency to zero- All major processor fa­mi­­lies are supported! reasonable price. it the market leading RTOS in the embedded industry. latency interrupts. This makes it easy to use time critical n Technical info n Profiling using SystemView interrupt service routines with embOS. Memory Usage embOS is fully instrumented for the use with n Simulation Environment SystemView. SystemView provides a complete Kernel size (ROM) 1700 byte * A simulation environment running under MS Windows picture of all tasks and their behaviour including is available. It can be used to write and test the entire Kernel RAM usage 67 byte * the usage of all embOS objects, such as mailboxes application on your PC (all API is 100% identical to your Task RAM: Task control block 36 byte * and timers. In addition, the user gains complete embedded application). This makes debugging and insight into interrupt usage. For more information on Task RAM: Minimum stack size 88 byte * development easy and convenient and saves development SystemView please read the section "SystemView- time. The simulation is an open environment, which also Timing Real-Time Analysis and Visualization". allows adding C code to simulate the target specific .. and more Context switching time 270 Cycles (1.4 µs n Profiling using embOSView hardware. embOS Simulation comes with a ready-to-go with STM32F756 project for Microsoft Visual Studio or MinGW and Eclipse. running at 200 MHz)* embOSView gives perfect insight into embOS. This profiling tool is included with all embOS shipments. It Interrupt latency Zero communicates with embOS running on the target via * Depends on CPU, and compiler used UART, IP or debug interface and displays all available information of the tasks and major system variables.

12 13 Real-Time Operating System

Certified IEC 61508 SIL3, embOS-MPUSEGGER EmbeddedembOS-Safe Studio IEC 62304 Class C

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

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

14 15 File System

emFile

nn Data Storage with emFile n Features

nn MS DOS/MS Windows-compatible FAT12, FAT16 and FAT32 support, proprietary EFS file system emFile is a file system for embedded applications that by keeping track of the number of times a storage nn RAID-support (RAID0/RAID1/RAID5) for added performance and safety can be used with any type of storage device. It is a block as been erased and by making sure that each nn Support for long file names storage block is erased for approximately the same versatile high-performance library that was optimized nn Multiple device driver support for minimum RAM and ROM consumption and for number of times. In addition, the NAND and NOR nn Multiple media support: A device driver allows you to access different media at the same time high speed. The library is written in ANSI C and runs drivers support garbage collection that is performed on any CPU. automatically as required. The garbage collection can nn Cache support: Improves the performance of the file system by keeping the most recent used sectors in RAM emFile works with any kind of embedded system also be performed in the application to help minimize nn Works with any operating system to accomplish a thread-safe environment and storage device. Ready to use device drivers are the write latencies. nn ANSI C stdio.h-like API for user applications provided for the most popular storage devices such nn Very simple device driver structure: emFile device drivers need only basic functions for reading and writing a block as NAND and NOR flash, SD card and eMMC. n SD card and eMMC n emFile comes with device drivers for accessing SD n Optional NOR flash (EEPROM) driver: Any CFI-compliant NOR flash is supported;ear-levelling W included n NAND and NOR flash cards and eMMC devices. SD cards of any type and nn Optional device driver for NAND flash devices: Very high read/write speeds; ECC and wear-levelling included The file system comes with device drivers for NAND capacity are supported including SDSC, SDHC and nn An optional device driver for MultiMedia & SD cards using SPI mode or card mode that can be easily integrated flash that support the single-level (SLC) as well SDXC of any form factors. The same device driver nn An optional IDE driver, which is also suitable for CompactFlash, using either True IDE or Memory Mapped mode as the multi-level cell (MLC) technology. Single and works for all the device types which helps reduce nn An optional proprietary file system (EFS) with native long file name support multi bit error correction is performed either in the the ROM usage. Efficient data transfer is guaranteed n hardware using the ECC engine built into the NAND by taking advantage of SD host controllers that can n An optional journaling add-on. It protects the integrity of the file system against unexpected resets flash device or in a dedicated NAND flash controller or transfer the data via 4 and 8 data lines using DMA. nn NAND flash evaluation board available in the software with the help of SEGGER emLib-ECC. For resource-constrained systems without an SD nn MISRA C:2012 compliant source code To enable the use of large NAND flash devices, the host controller, a device driver is provided that can nn Optional support for Japanese characters in file names NAND driver allows the grouping of storage blocks exchange the data with an SD card via SPI. nn Optional BigFile add-on that provides support for files larger than 4 Gbytes. that saves RAM required for their management. NOR flash drivers are provided that can be used with any n Encryption popular serial and parallel NOR flash device. CFI The emFile Encryption add-on provides a simple way compliant as well as quad SPI NOR flash devices are to encrypt individual files or the storage device as a supported. whole. Encryption can be used with both available file systems - EFS and FAT. All storage device types such as NAND and NOR flash, SD card and eMMC cards are supported. To use encryption, only minor changes to the application program are required in caused for example by a power failure, the journaling layer order to select the encryption method and a password caches every write access to achieve an always consistent for volume or individual files. state of the file system. n Journaling n Memory requirements* Journaling is an additional component for emFile Memory requirements depend on the used CPU, compiler, SEGGER (Q)SPI Flash evaluation board which resides above the file system and makes the file memory model, as well as on various other factors such as system layer fail-safe. File systems without journaling configuration switches and selected drivers. support (for example, FAT) are not fail-safe. Journaling

The NAND and NOR drivers make use of static and means that a file system logs all changes to a journal ROM: app. 9-40 kB * Precise values depend on the functionality used. dynamic wear leveling for the purpose of increasing before committing them to the main file system. To Values are measured on a specific target system and RAM: app. 2 kB will be different on other systems. the lifetime of the storage device. This is realized prevent corruption from unexpected interruptions,

16 17 Compression

emCompress

nn Achieve more with highly efficient data compression! n Features

nn Highly efficient compression emCompress is a compression system that is able customers expect firmware updates over the lifetime nn Small ROM footprint to reduce the storage requirements of data to be of a device. It's important to be able to replace both nn No static RAM required, embedded into an application. A compressed version firmware images and FPGA configuration bitstreams configurable decompressor RAM use of the data is stored in the flash memory of the target in the field. Typically, firmware upgrades and other nn Compressor running on microcontroller based embedded system. In the target, a small, fast decompressor static content grow in size over the lifetime of a systems can decompress the data on-the-fly, whenever it is device: features are added to software, not taken nn Wide range of codecs to choose from required. The decompressor can decompress into away, it's just what happens. nn Automatic selection of best codec for each file RAM or send the output to an application defined This is where emCompress can help. emCompress function. will compress your data so that it takes much less nn Compression of files and streamed data space on the target device. The nn Simple to configure and integrate decompressors are tiny in ROM, but nn Royalty-free the benefits of compression means you reclaim more space in your device for the features you're trying to add. n Decompressing and Processing Data n Typical uses of emCompress Because emCompress decompressors emCompress-ToGo and emCompress-Flex feature two modes Compression has many fields of application. Applications can be tailored for RAM use, you can for compression and decompression. that use static data which is not frequently used and/or has decompress static content early in your The first works directly on memory. The complete data is exceptionally high compression rates are the prime target application and don't devote RAM to compressed or decompressed and stored in a user-provided applications for emCompress-Flex and emCompress-Embed. decompression buffers. memory buffer. Although the buffer can be temporary, it requires Typical examples are the configuration bitstreams to program n Compress your Data in to have enough free memory for the complete uncompressed FPGA and CPLD devices, permanent files for embedded web Real-Time on any Embedded data and the workspace. Decompression into memory can for server static content, firmware updates and the user interface System! example be useful for dynamic firmware images. messages for multiple languages. The second mode takes data from a function or sends data to With emCompress-ToGo the typical examples are extended emCompress-ToGo is a portable a function, which can easily be used for streaming. Streamed to dynamic data – files and streams – that are directed toor compression software, designed n More Storage decompression is particularly effective for programming FPGAs generated on embedded systems. This is particularly useful for primarily for but not limited to embedded systems. By compressing the data, a lot more can be stored in or serving web content. data loggers and in low bandwidth situations such as Bluetooth It can compress and decompress data with basically flash memory, SPI flash or on the external SD card. devices, avionics or space technology, or satellites. no RAM requirements. This allows a data logger to store more information, The lossless compression is fast and efficient and Edition emCompress-ToGo emCompress-Flex emCompress-Embed or to be less expensive due to the smaller, less can be easily done on the embedded system, just Description Compress files and streams on Compress files with standard Compress static data to be expensive storage medium. host and target with a small and algorithms on host and decompress linked with the application and like the decompression. In general, there are multiple fast algorithm that requires nearly on target. decompress on target. n More Bandwidth compression algorithms that allow compression no RAM. on the host and decompression on target (like On Target Decompression On applications using a low bandwidth link, from local emCompress-Embed). There are not many options, On Target Compression applications using Bluetooth, to space applications if any, to compress easily and efficiently on an Decompress Static Data such as a Lunar lander sending data to Earth, more embedded system, especially with limited RAM. Decompress Files&Streams information with compression can be transmitted, in emCompress-ToGo uses SEGGER’s SMASH (Small Available Algorithms SMASH LZMA DEFLATE, Huffman Encoding, LZW, a shorter period of time. Microcontroller Advanced Super High) compression LZSS, LZJU90, RLE-PAR Use Case Files and streams directed to or Files compressed on the host and Static data compiled into the algorithm, specifically designed for these type of n Software only Grows in One Direction created on embedded systems. transferred to the application such application such as FPGA streams. applications achieving amazing compression ratios. Data loggers, Bluetooth devices, as firmware updates. With increasing complexity of today's devices, avionics and space technology, satellites.

18 19 Connectivity

emNet

nn Get connected with emNet n Features

nn Standard sockets interface nn Tail-tagging support emNet is a TCP/IP stack that provides a small memory for all popular boards and offer an out-of-the-box nn Non-blocking socket support nn Raw socket support footprint and high performance for embedded experience. All modules can output debug messages nn High performance nn Unlimited Connections networking solutions. The stack has been optimized and warnings in debug builds. The modules to output nn Small footprint nn IP fragmentation support for use in real-time, memory-constrained embedded this information can be selected at run-time, allowing n nn Fully runtime configurable systems. It offers RFC-compliant TCP/IP and a the developer to focus on the aspect he is analyzing. n Runs "out-of-the-box" standard socket API. emNet works seamlessly with nn No configuration required nn Developed from scratch for embedded systems n the embOS operating system. A variety of common Configuration Free nn Works with any RTOS in a multitasking environment nn PPP/PPPoE available and specialized higher level protocols is available as The entire stack can be compiled into a library. Setup (embOS recommended) nn Various upper layer protocols available well. is reduced to a minimum, performed at run-time. nn Zero-copy for ultra-fast performance This, along with a number of sample programs, n Performance and Resource Usage nn Drivers for most popular microcontrollers and gets you up and running quickly. Since inter-module external MACs available The stack has been optimized for both performance dependencies are limited to the parts required for the and code size. The standard socket interface is functionality of the stack, unused parts of the code complemented by the zero-copy API, which allows are automatically excluded by the linker. reading and writing of data without additional protocol n related copy operations. emNet Software Products n Additional Products n An excerpt of the available add-ons emNet is offered in a BASE package which includes n Multi-Task Support the most important protocols related to Ethernet emWeb Web Server emNet CoAP client/server emNet allows any number of tasks to call API functions communication and the stack itself. Depending on The emWeb Web Server allows embedded systems to Client/server data collection service concurrently.The stack itself typically uses one task the engineer's needs there are several protocols present web pages with dynamically generated content. It emNet MQTT Client for housekeeping and an interrupt for reception. available as add-ons, as well as the emNet PRO has all features typically required by embedded systems: IoT Messaging Protocol multiple connections, authentication and forms. The RAM A second task can be used for reception, allowing package which includes a device driver and add-ons emNet SNTP Client minimum interrupt latency. A no task (polling) setup for extended communication via Internet. usage of the web server has been kept to a minimum by smart buffer handling. The socket interface can be used Simple Network Time Protocol is possible as well. The following protocols are, among others, part of with any TCP/IP stack. emNet SNMP Client the emNet BASE package: n emNet Structure emNet FTP server and FTP client Simple Network Management Protocol ARP (Address Resolution Protocol) emNet is organized in different layers: The emNet FTP server can use the same file system as the emNet SMTP Client IP (Internet Protocol) web server. It can be used in r/o or in r/w mode and allows Sending emails from your embedded system Application Layer DHCP, DNS, FTP, HTTP, … ICMP (Internet Control Message Protocol) reading and modifying of configuration data or web emNet Websockets Client/Server UDP (User Datagram Protocol) Transport Layer TCP, UDP 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 and memory model, as well as on various other factors. n Easy to Use DHCP client using as little as 7 kBytes of RAM. emSSL works perfectly A typical ROM size for a system using ARP, IP, ICMP, UDP, TCP with emNet. For more details about emSSL, please refer to and sockets is about 18kB (on typical 32-bit microcontroller The stack comes with a variety of confidence tests the product description in section "Safe Data Transport with with size optimization). Minimum RAM usage is about 6KB and example applications. It runs out-of-the-box. For emSSL". 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

emUSB-Host

nn Get connected with emUSB-Host n MTP n Features

nn ISO/ANSI-C source code SEGGER's emUSB-Host software stack provides n Audio nn Supports USB 1.1 / 2.0 PC-like plug and play peripheral support to embedded nn High-Speed support systems similar to desktop computers. Whether a network connection needs to be added n Additional classes nn OHCI, EHCI and proprietary drivers or audio communication is required, SEGGER's nn Extended error recovery during enumeration emUSB-Host stack enables all kinds of connections nn Multiple hub support with standard USB peripherals. FT232, CP210X, Printer, Vendor (bulk) n CCID nn Modem support (3G, 4G) n The emUSB-Host software stack supports all transfer n LAN device support modes (control, bulk, interrupt, isochronous). nn Royalty-free It complies with the USB v1.1 and USB v2.0 nn MISRA-C:2012 compliant specifications. USB pipe management and extended error recovery mechanisms that are required for n CDC n Gaining Access to the Network n Human Machine Interfaces reliable operation are implemented internally. emUSB-Host provides support for LAN via USB. It can The Human Interface Device class (HID) was defined for the emUSB-Host is a USB host stack specifically designed use either CDC-ECM or RNDIS for this purpose, making it handling of devices which are used by humans to control for embedded systems. The software is written in compatible for almost all devices that can provide their IP the operation of computer systems. The class enables the ANSI C and can run on any platform. emUSB-Host connection via a USB device interface. use of input devices such as bar code scanners, keyboards, can be used with embOS or any other supported mice, trackballs or touch-controllers. n n Storing Data RTOS. A variety of target drivers are already available. HID Support for new platforms can usually be added at no The Mass Storage Device class supports USB-sticks and n Printer extra cost. external drives, such as CD-ROM or other storage drives. A printer or plotter connected to emUSB-Host is The modular design enables applications to access As the market offers many USB-sticks that do not follow the automatically configured. The printer class forwards the the USB host programming interface directly, or to standard closely, emUSB-Host can be configured to accept output data to a connected printer. The actual output has to use APIs exposed by class drivers. such devices. be generated using printer specific codes. The stack can handle multiple devices and hubs n LAN n Exchange Media Data simultaneously and fully supports hot plugging n USB On-The-Go (OTG) of devices and hubs. The programming interface The Media Transfer Protocol (MTP) class supports object- USB On-The-Go (OTG) introduces the dual-role device, supports dynamic device enumeration and based communication with the device for all types of files. meaning a device capable of functioning as either host or identification. MTP typically is supported by , digital cameras peripheral. The On-The-Go-module of emUSB automatically or other multimedia devices for multimedia content. decides whether it has to operate the host or the device n MIDI side when a new connection is established. n Serial Interface Support n Control Light and Sound On-The-Go is typically used when only a single USB port is emUSB-Host has recently added support for the emUSB-Host offers all options for serial communication. available for host and device use. Digital cameras use the audio class, extending the supported peripherals to The offer includes serial communication via the modem port to provide their data to a host system for further editing audio input and output devices. Additionally, emUSB- class CDC-ACM, or via USB-UART converters such as or to connect to a printer. Some smartphones and tablets Host supports the MIDI class, which enables any FTDI's FT232 series of or Silicon Labs CP210x series. Such have a single port for device and host functionality as well. device running emUSB-Host to serve as a light and n MSD converters are very common to connect to legacy devices, USB OTG retains the standard USB host/peripheral model, music controller. but there are also numerous devices on the market, which in which a single host talks to USB peripherals. emUSB have a USB device interface has been implemented around OTG offers a simple interface in order to detect the role of a serial-USB-converter. the USB OTG controller.

22 23 Connectivity

emUSB-Device

nn Get connected with emUSB-Device n Features

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

24 25 IoT & Security

SEGGERSEGGER IoT & Security Embedded Studio

nn All-in-One Solution for the Internet of Things our SystemView tracing tool and industry leading Custom IoT solutions can also be developed on J-Link debug probe. All products are developed demand utilizing SEGGER's embedded engineering and created by one reliable, established vendor, know-how and expertise. Everybody talks about the Internet of Things (IoT), As the environment for the IoT device constantly SEGGER. and we provide everything to build it. Today IoT changes, it is a requirement to establish in-field- encompasses a diverse range of smart connected upgrade options. n SEGGER Offering for IoT Devices devices and capabilities. This means a broad range of embedded software requirements need to be n How does SEGGER support the satisfied when developers are choosing their IoT development of IoT devices? nn Connectivity nn Safety & Security nn Core nn Tools solution partner. With SEGGER, you can accelerate Software IP components from SEGGER such as time to market with security, connectivity, reliability emSSL, emSSH, emSecure Crypto libraries, HTTP emNet embOS-MPU embOS SystemView and tools that simply work. Web server and emNet, to name a few, can be used as foundations for your securely connected n What is an IoT device? IoT device. Our software works on any MCU. We At first there is the functional side of the IoT device. work with all major semiconductor vendors, closely This functional part is essentially an embedded monitoring the market to enable the next generation system as we have known for years. IoT devices of designs. Take embOS-MPU RTOS for example. Mobile Networks emSSH emUSB-Device Embedded Studio interact with each other, through a server or via the This super-reliable OS works effortlessly on current cloud. To achieve this, the device needs to find its Cortex-M and including the new generation Arm V8-M counterpart; this is supported by protocols such as architecture. MQTT. The connection itself is handled via IP or UDP Connected devices requiring User Interface (UI) or based 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 emSSL 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, therefore it needs secure components your custom graphical interface. such as Transport Layer Security, secure shell, digital We offer a complete end-to-end solution. In addition 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

Customer Application IoT Software Packages Cloud Services

IoT Security

emSSL emSSH

Dropbox Client emLoad emWin Flasher

IoT Connectivity

emUSB-Device

Microsoft Azure Cloud Mobile Networks Wifi Support

26 27 IoT & Security

SEGGERSEGGER IoT & Security Embedded Studio

nn Secure Data Exchange for Embedded IoT Devices using Dropbox nn Safe Data Transport with emSSL

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

emWin

nn Graphical User Interface with emWin n Features nn ISO/ANSI C source code nn Start/test applications supplied nn Low resource usage nn Royalty-free emWin is designed to provide an efficient, processor- be located on any media and loaded at run-time. It and display controller-independent graphical user supports palette conversion for palette based color nn Alpha-Blending nn Any 8/16/32/64-bit CPU; only an ANSI “C” compiler is required! interface (GUI) for any application that operates with modes as well as high color, true color or semi nn Anti-Aliased drawing nn Any (monochrome, grayscale or color) LCD a graphical display like EPDs, OLEDs and LCDs. It transparent images as PNGs. For efficiency, bitmaps nn Anti-Aliased fonts with any controller supported(if the right can be deployed in any environment, if it is a single- may also be saved without palette data and in nn Multi buffering for flicker-free animation driver is available) task / super loop architecture or any kind of operating compressed form. nn Multi-Language-Support with ASCII resource n system architecture like embOS RTOS. emWin is n May work without LCD controller on smaller files displays shipped as C source code. It may be adapted to any n AppWizard - Advanced GUI Design nn Multi-Layer-Support n physical and virtual display with any display controller A powerful new tool for creating complete, ready-to- n Any interface supported using configuration macros and CPU. run applications for the company’s popular emWin nn Memory devices for pre-rendering images embedded graphics library. AppWizard is intuitive and shapes nn Display-size configurable n Attractive and Useful Display with nn Free rotation and scaling of images nn Interface for hardware acceleration Reduced Time and Cost nn Run-time-configurable drivers One of the most challenging aspects of many development projects is designing an attractive and useful display. In addition to creating images default set of fonts includes quite small fonts up to fairly the physical size of the display. It allows switching between that look exactly how you want them to appear, the large fonts, mono spaced and proportional fonts, special different screens even on slow CPUs. implementation of window techniques, complex digit fonts and framed fonts. Additional fonts can easily n drawing routines, different fonts and flicker-free be generated from PC fonts using the Font Converter. Window Manager/Widgets updates are also expected. As part of a complex Monotype and TrueType fonts support is available. The window manager allows the creation of windows of process which can take months or even years, the arbitrary size at any point of the display. It is an optional n developer only has a short time available for the Font Converter component, which is fully integrated into the software. Child implementation of the display functionality. Font Converter is a tool that makes it easy to add new fonts windows and the exchange of messages between windows emWin, probably the most efficient and comprehensive to emWin. It can convert any installed PC font into a C file and their children/parents are supported. that can be compiled and linked with the application or the The window manager allows windows to be transparent and embedded GUI available, helps developers beat their AppWizard workbench timelines and reduces development costs. It is written binary formats ".sif" and ".xbf", which can be loaded during overlapping. Windows can freely be moved and resized. in ANSI C and supports any b/w, gray-scale or color to operate and comes with its own built-in resource runtime. Simply load a font which is installed on your system Additionally the window manager allows fading in and out. display. Drivers for all popular LCD controllers are management capabilities. It facilitates the use of all into the program, edit its appearance if necessary, and save The window manager performs any necessary clipping. If available. All types of graphical displays (STN-LCD, of emWin's core functions, such as the rendering of it. The generated file can then be used by emWin and be callback routines are used, it also manages the redrawal of TFT, CRT, OLED, Plasma, ...) are supported. animations, language management, widgets, etc. shown on the display like any other standard emWin font. invalidated areas. One of AppWizard’s notable features is the ‘What You n n n Drivers for Display Controllers See is What You Get’ (WYSIWYG) editor. Through Color Management Touch Screen Support Run-time configurable drivers can be written for all this, engineers can design application interfaces, emWin features an integrated, very efficient color emWin supports touch, gesture and multitouch events. The types of displays and display controllers, including along with their related interactions and events, then management system. This system allows conversion of window manager deals with touch messages and widgets monochrome, gray-scale, passive and active immediately see what these applications will actually logical colors (RGB format) into physical colors, which can such as button objects. It takes only one line of code to color (TFT) displays. Drivers for all popular display look like. be displayed at run time. As a result, your application does create a button or another widget, which then handles controllers already exist. The AppWizard is part of our emWin PRO package. not need to be concerned the available colors, and displays touch messages and reacts accordingly. For resistive can easily be interchanged. touch screens support is available as a driver for analog n Bitmap Converter touch panels, which handles the analog input (from an n The Bitmap Converter can convert any bitmap into n Fonts Virtual Screen Support AD-converter), debouncing and calibration of the touch standard C code or into a binary format which can A variety of fonts are shipped with the software. The The virtual screen feature supports display areas larger than screen is included.

30 31 Production

SEGGERSEGGER Flasher Embedded Studio

nn Fast and Reliable Programming with SEGGER Flasher n Features nn Stand-alone programming nn USB-powered nn Verification of data integrity nn MSD mode The Flasher production tools are a family additional variable information are supported. The n n of in-circuit-programmers with stand-alone internal memory offers more than enough memory n Remote Control n Internal FTP server programming support. Each Flasher is for programming data and configuration files. The nn High programming speed nn Internal Web server optimized for high programming speed and programmers operate at 5V via USB interface. nn Easy integration into production environments nn Serial number programming engineered for robustness. The hardware and For many years the Flasher family of stand-alone nn USB interface nn Data patching In-Circuit-Programmers has proven to be a reliable software interfaces allow an easy integration nn Ethernet interface nn Authorized Flashing programming solution. into production environments. n Multiple Images n Universal Flash Loader n Service Programmer Flasher Portable PLUS directly connected SPI Flash or EEPROM memories. Multiple firmware images and configurations can be SEGGER's flash download technology is available The Flasher Portable PLUS has an LCD to provide full stored in the internal memory of the Flasher. Which n Gang Programmer Flasher ATE for all microcontrollers. The Universal Flash Loader transparency of the programming process and a more image or configuration is programmed into the target, The Flasher ATE is a modular gang programmer specialized technology enables the adaption to any target system flexible user interface. Up to 16 configurations/images can can be selected via the remote control interface using for mass production setups. It is built from a mainboard and in the market. It is available for Flasher Portable PLUS, be stored on a Flasher Portabel PLUS to programm different UART terminal or Telnet via Ethernet. up to ten programming modules. The number of modules Flasher PRO and Flasher ATE. targets just by push button. The currently selected image determine the number of PCBs that can be programmed n Authorized Flashing is shown on the display. The high capacity rechargeable n Simply Press a Button Li-ion-battery makes the user completely independent from at the same time (gang-programming). Each PCB interface Authorized Flashing allows the customer to limit the can be configured individually. PCBs with multiple targets Using the stand-alone option, service technicians external power supplies. number of flash programming cycles and to protect on board can have their targets be programmed in parallel. can update devices in the field by simply pressing a the Flasher against non-authorized access to the n button after the device has been set up and loaded Flasher PRO customer's software, thus preventing the production n Flasher ARM with the necessary programming information. With The top model Flasher PRO has all the features required for a of unwanted quantities by third parties. Authorized Flasher ARM uses JTAG or SWD as target interface and the battery powered Flasher Portable Plus, service mass production programmer. On top of the functionality of Flashing is available for Flasher Arm, Flasher PRO supports programming of microcontrollers based on technicians do not even need to carry an external the Flasher ARM, it is capable of programming virtually any and Flasher Portable PLUS. ARM cores such as: ARM7/9, Cortex-M0/M0+/M1/M3/M4/ power supply to program their targets. target system using the Universal Flash Loader. Commonly used target systems are Renesas RL78, Microchip PIC and M7. Flasher ARM also supports programming of ARM11, The programming information is stored together with CRC data which has been generated on the host 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 internal ftp and web servers. n Proven Programming Solution Serial number programming and data patching to add

32 33 Production

Flasher SEGGERSecure Embedded Studio

Cortex-A5/7/9/12/15/17, R4/R5 based microcontrollers n Flasher Secure n Features with the help of a PC application. It supports the n internal flash memory of microcontrollers as well as nn Authenticated production nn Prevents production of counterfeit units The Flasher Secure is a mass production external flash memories. CFI-compliant parallel NOR nn Production volume control nn No overhead in programming time programming system, capable of protecting the flash memories are recognized automatically and can nn CM administration and setup portal nn List of programmed devices be programmed directly. QSPI NOR flash memory is vendor’s IP regardless of the production site. nn Ultra fast programming nn Remote maintenance also supported on many targets. It provides full control over the programming process at contract manufacturers (CM) and nn Supports Cortex-M, RX, PPC n Flasher STM8 similar environments. The Flasher STM8 connects with the target via SWIM IP is located inside the firmware. IP owners want to protect interface. The target is optically isolated from the host n Secured Production at Contract n End-to-End Security their IP. The Flasher Secure system uses authentication side. The configuration and operation can be handled Manufacturers Flasher Secure supports vendor-specific trusted firmware algorithms to make sure, that only authorized boot loaders with the Flasher software for STM8. Option byte It is common to employ a contract manufacturer (CM) features to ensure end-to-end encryption, authentication and firmware are used in the system. If one component is programming is supported. to mass-produce products. CMs have access to and confidentiality covering the whole process including not genuine, the device will stop working. Simply copying customer IP and large quantities of the components the ‘last mile’. n the firmware and/or bootloader from one device to another Flasher 5 Pro they are contracted to produce. Because of this, it’s n is not possible anymore. Flasher 5 Pro is the successor of the Flaser 5. It has essential that customers control both their IP and limit Secured Firmware 64MB of flash memory to store programming data CM production, to prevent theft and to secure revenue. Modern products carry a huge amount of intellectual and configuration and has a significantly higher To combat these threats, Flasher Secure uses mutual property (IP). From the IP owners point of view most of the performance. The programmer supports the following authentication, authorization and confidentiality to devices: Renesas /M16C/R32C/M32C. secure your IP and production run. As an IP owner, you have full end-to-end control of your production n Flasher ST7 chain. Contract Manufacturer IP Owner The Flasher ST7 supports the RS232 interface only and offers 512kB of flash memory to store programming data and configuration. Option byte programming is 1. Read UID 2. Send UID 3. Validate UID supported. 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

Who we are

We at SEGGER Microcontroller are active in the industry of Embedded Systems. SEGGER has over twenty-five years of experience in Embedded Systems, producing state-of-the-art RTOS and Software Libraries, and offering a full set of hardware tools (for development and production) and software tools. Our motto is: "It simply works". This reflects in our products which are professional and easy-to-use in a complex, highly-technical, industry. Embedded Systems are a growing part of everyday life and we at SEGGER are passionate about being a part of it.

What we offer

SEGGER provides an RTOS plus communication and security software, so developers get a head start, benefiting from SEGGER's decades of experience in the industry. SEGGER's professional software libraries and tools for Embedded System development are designed for simple usage and are optimized for the requirements imposed by resource-constrained embedded systems. The company also supports the entire development process, with affordable, high quality, flexible and easy-to-use tools. The J-Link debug probes, with Ozone the accompanying debugger and performance analyzer, and Embedded Studio the powerful cross platform C/C++ IDE, are available to support developers in creating their own embedded systems.

Why SEGGER?

In short, SEGGER has a full set of tools for embedded systems, offers support through the entire development process, and has decades of experience as the Embedded Experts. In addition, SEGGER software is not covered by an open-source or required-attribution license and can be integrated in any commercial or proprietary product, without the obligation to disclose the combined source. Finally, SEGGER offers stability in an often volatile industry making SEGGER a very reliable partner for long-term relationships.

SEGGER Microcontroller GmbH SEGGER Microcontroller Systems LLC Ecolab-Allee 5 Boston area Silicon Valley 40789 Monheim am Rhein 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-2173-99312-0 [email protected] [email protected] [email protected]