Segger Microcontroller Systems

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Segger Microcontroller
TypeGmbH
IndustryEmbedded software
Founded1992; 29 years ago (1992)
HeadquartersMonheim am Rhein, Germany
ProductsMiddleware components, JTAG development tools
Websitewww.segger.com

Segger Microcontroller, founded in 1992, is a private company active in the industry of embedded systems. It provides products used to develop and manufacture embedded systems, in 4 categories: real-time operating systems (RTOS) and software libraries (middleware), debugging and trace probes, programming tools (integrated development environment (IDE), compiler, linker) and in-system programmers (Flasher line of products). The company is headquartered in Monheim am Rhein, Germany. Remote offices are located in Gardner, Massachusetts; Milpitas, California; and Shanghai, China.

History[edit]

Segger was founded in 1992 by Rolf Segger, in Hilden, Germany. The first product was the real time OS (RTOS) which is now named embOS; emWin followed 2 years later. Initial products focused on this RTOS and middleware product category, followed by the ISP-programming tools (Flasher), then debug probes (J-Link). In 2015, Segger introduced Embedded Studio, their cross-platform IDE, available for central processing units (CPUs) by ARM initially, and now also for RISC-V. All products are developed, maintained, and constantly improved in Germany, except for Embedded Studio, which is developed mainly by a team of developers in the United Kingdom (UK).

Product categories[edit]

Debug and trace probes (J-Link and J-Trace)[edit]

J-Trace[edit]

J-Trace PRO is an advanced debug probe that can capture complete instruction traces over long periods of time thereby enabling the recording of infrequent, hard-to-reproduce bugs. It is compatible with J-Link and has trace functions in addition. The debug functions are supported by all popular IDEs and can be used cross-platform with Windows, Linux, and macOS. The full trace functions (streaming trace with real time analysis and real time visualization) are available with the Ozone debugger and performance analyzer, which can be downloaded freely and used with J-Trace. Ozone can load any standard-compliant Executable and Linkable Format (ELF) file.

J-Link[edit]

Segger J-Link JTAG and SWD debug probes for ARM microcontrollers
PRO version interfaces to host via USB and Ethernet
EDU version interfaces to host via USB only; low price model for education and hobby uses

Segger is most noted for its Joint Test Action Group (JTAG) and SWD debug probes for ARM-based microcontrollers that have ARM7, ARM9, ARM11, Cortex M0, M0+, M1, M3, M4, M7, M23, M33, R4, R5, R8, A5, A7, A8, A9, A12, A15, A17 cores, Renesas RX, and Microchip PIC32. This device is called the J-Link.[1] It is also repackaged and sold as an OEM item[2] by Analog Devices as the mIDASLink, Atmel as the SAM-ICE, Digi International as the Digi JTAG Link, and IAR Systems as the J-Link and the J-Link KS. This is the only JTAG emulator that can add Segger's patented[dubious ] flash breakpoint software to a debugger to enable the setting of multiple breakpoints in flash while running on an ARM device which is typically hindered by the limited availability of hardware breakpoints.[3] For enhanced emulation features, Segger offers a trace emulator, J-Trace that works with the ARM ETM interface and enables engineers to trace back their code execution.

Models[4]
Model* Host
USB
Host
Ethernet
Host
Wi-Fi
Target
connector
Trace
connector
Target
voltage
Target max
interface speed
Target max
download speed
J-Trace PRO Cortex 3.0 SS 1 Gbit/s No 20-pin 0.1" 19-pin 0.05"
1.2V to 5V
50 MHz
3 MByte/s
J-Trace PRO Cortex-M 3.0 SS 1 Gbit/s No 20-pin 0.1" 19-pin 0.05"
1.2V to 5V
50 MHz
3 MByte/s
J-Link PRO 2.0 HS 100 Mbit/s No 20-pin 0.1" No
1.2V to 5V
50 MHz
3 MByte/s
J-Link ULTRA+ 2.0 HS No No 20-pin 0.1" No
1.2V to 5V
50 MHz
3 MByte/s
J-Link WiFi 2.0 HS No 802.11b/g/n 20-pin 0.1" No
1.2V to 5V
15 MHz
1 MByte/s
J-Link PLUS 2.0 HS No No 20-pin 0.1" No
1.2V to 5V
15 MHz
1 MByte/s
J-Link BASE 2.0 HS No No 20-pin 0.1" No
1.2V to 5V
15 MHz
1 MByte/s
J-Link EDU 2.0 HS No No 20-pin 0.1" No
1.2V to 5V
15 MHz
1 MByte/s
J-Link EDU Mini 2.0 FS No No 9-pin 0.05" No 3.3V 4 MHz 0.2 MByte/s
  • Note: Further models are J-Link LITE ARM, J-Link LITE CortexM, J-Link LITE RX, J-Link OB, J-Link OEM.[5]
  • Note: PLUS, BASE, EDU models are physically the same hardware. The difference is license and software options, such as GDB Server, Flash Download, Unlimited Flash Breakpoints, J-Flash, RDI, RDDI. The EDU model can't be used for commercial software development.
  • Note: Adapters and isolators are available to convert the 20-pin 0.1"/2.54mm male shrouded (box) header to another target board connector.[6]

RTOS and middleware[edit]

Segger develops and licenses a wide range of middleware. At the center of this is embOS, Segger's real time operating system (RTOS) kernel.

embOS RTOS[edit]

embOS
DeveloperSegger Microcontroller
Written inAssembly language, C
Working stateCurrent
Source modelSource-available
Initial release1992; 29 years ago (1992)
Marketing targetEmbedded systems
Available inEnglish
PlatformsARM, AVR, ColdFire, Nios II, PIC, PowerPC, RISC-V, STM832, SuperH, x86
Kernel typeReal-time
LicenseCommercial
Official websitewww.segger.com/products/rtos/embos

embOS is an RTOS for all embedded applications. It is written from scratch by the Segger Microcontroller company using ANSI C and assembly language.

Features[edit]

Features include:

  • task number limit not fixed: limited only by amount of memory available
  • preemptive scheduling with up to 232 priorities
  • round-robin scheduling with adjustable time-slices for tasks with equal priority
  • adjustable time resolution (default is 1ms)
  • software timers
  • low power and multi-core support
  • safe communication among tasks using:
    • task events with up to 32 events per task
    • event objects
    • resource and counting semaphores
    • mailboxes
    • queues
  • full interrupt support
  • API can be called from assembly, C and C++ code

In addition to embOS, embOS-MPU offers memory protection by using the hardware's memory protection unit, and other software mechanisms, to prevent one task from affecting the whole system.

embOSView[edit]

embOSView is a tool for analysis of the running target application on an embedded system using embOS. For communication, embOSView can use UART, memory read/write for Cortex-M and RX CPUs, DCC for ARM7/9 and Cortex-A CPUs as well as ethernet. Beside system variables and software tracing, embOSView also lists all tasks with following information:

  • ID: Task ID, which is the address of the task control block
  • Name: Name assigned during creation
  • Status: Current state of task (ready, executing, delayed, reason for suspension)
  • Data: Depends on status
  • Timeout: Time of next activation
  • Stack: Used stack size/max. stack size/stack location
  • CPU Load: Percentage CPU load caused by task
  • Run Count: Number of activations since reset
  • Time Slice: Round robin time slice
Field of application[edit]

embOS is used in a variety of embedded systems in the fields of application, such as:

  • Industrial Controls
  • Internet of Things
  • Networking
  • Consumer electronics
  • Safety critical devices
  • Automotive
  • Medical devices
  • Avionic

It is supported by popular SSL/TLS libraries, thus maintaining embedded security standards across industries.

Supported devices[edit]

embOS supports all cores and compilers, including:

ARM7/9/11, ARM Cortex-A/R/M, Altera NIOS2, AVR, AVR32, C16x, CR16C, ColdFire, H8, HCS12, M16C, M32C, MSP430, NIOS2, PIC18/24/32, PowerPC, R32C, R8C, 78K0, V850, RL78, RH850, RX100/200/600/700, RZ, SH2A, STM8, ST7, S08, 8051, Xtensa, ...

GCC, IAR, Keil MDK, Tasking, GreenHills, CodeWarrior, Renesas compiler CCRX, CCRL, ...

Other embedded software[edit]

Segger also provides software/middleware in the fields of connectivity, crypto & security, and the Internet of Things (IoT).

In-system programmers (Flasher product line)[edit]

Segger Flasher in-system programmers for internal and external flash memory of microcontrollers
Portable version for ARM, PowerPC (PPC), Renesas RX
ARM version
PowerPC (PPC) version

The Flasher products support in-system programming for several processor families.

Development tools (Embedded Studio & Systemview)[edit]

Embedded Studio[edit]

Embedded Studio is a C/C++ IDE for embedded systems. It is specifically designed to provide users with everything needed for professional embedded C programming and development.

Embedded Studio includes compilers Clang and GCC, plus the in-house Segger Compiler, and has support for 3rd party debug probes via GDB protocol.

It can be used cross-platform with Windows, Linux, and macOS.

SystemView[edit]

SystemView is a real-time recording and visualization tool for embedded systems that reveals the true runtime behavior of an application, going deeper than the system insights provided by debuggers. It is particularly effective when developing and working with complex embedded systems comprising multiple threads and interrupts.

SystemView can ensure a system performs as designed, can track down inefficiencies, and show unintended interactions and resource conflicts, with a focus on the details of every single system tick.

It provides continuous real-time recording of an embedded system, captures tasks, interrupts, timers, resources, API calls, and user events, and allows for live analysis and visualization of captured data.

SystemView records via J-Link and Segger RTT Technology, IP, or UART, works on any CPU, works with any RTOS and bare-metal systems, and is minimally system intrusive.

Ozone: J-Link debugger and performance analyzer[edit]

Ozone is a full-featured graphical debugger for embedded applications. With Ozone it is possible to debug any embedded application on C/C++ source and assembly level.

It can load applications built with any tool chain or IDE, or debug the target's resident application with no source code. It includes all well-known debug controls and information windows and makes use of J-Link and J-Trace debug probes.

See also[edit]

References[edit]

External links[edit]