Embedded Systems

The embedded system’s complexity is growing constantly and high-level languages such as Java take up more and more space in this area. impulse can help developers to improve the visibility of what is going on inside.

What's going on?

impulse allows developers to view signals and other information from multiple sources that are formatted in various ways — reading logic data from an analyser, parsing and visualizing log data from the serial line, showing line diagrams of analogue inputs, getting variables from the debug adapter and presenting communication protocols grabbed from the Ethernet.

Analyse log data

Logging is probably the most frequently used technique in debugging embedded systems. In most cases, log data are in form of text lines with columns of given value types and order (pattern log).

With impulse you can load any pattern log data from a file, a pipe or a serial interface and show them in line with signals of another type (analogue, digital, events,… ). See Using log files for more information. Beside simple pattern logs, Impulse also supports xml log files (log4j 1.2).

2014-02-21 15:18:08,173 FATAL [main] Main (Main.java:56) - Started X unresolved
2014-02-21 15:18:08,222 WARN  [main] Main (Main.java:52) - No more tuples
2014-02-21 15:18:08,235 INFO [main] Main (Main.java:54) - Started X2
2014-02-21 15:18:08,247 INFO [main] Main (Main.java:56) - Started X3
2014-02-21 15:18:08,296 INFO [main] Main (Main.java:52) - Started X4
2014-02-21 15:18:08,309 INFO [main] Main (Main.java:54) - Started X5
2014-02-21 15:18:08,321 INFO [main] Main (Main.java:56) - Started X6

Combine multiple sources

It's often the case that an embedded system has multiple outputs (e.g., log files, analogue data,… ). By using a Multi-Adapter Port, you can combine multiple sources into one. These sources can be streaming sources (pipes, sockets,…  ) but also file resources, so you may combine multiple files into a single view.

Attach logic analysers and analogue acquisition devices

The sigrok project provides drivers to access various acquisition device types, such as logic analysers, MSOs, oscilloscopes, multimeters, LCR meters, sound level meters, thermometers, hygrometers, anemometers, light meters, energy meters, DAQs, dataloggers, function generators, RF receivers, spectrum analysers, power supplies and GPIB interfaces.

You will also find protocol decoders, like SPI, serial, USB,...

impulse contains an adapter to access sigrok by using the sigrok command-line interface. See Using the new Sigrok Adapter for more information.

Using the Serial Wire Viewer

The Serial Wire Viewer from ARM (Cortex-M microcontroller) provides non-intrusive real-time tracing. Usually this mechanism is used for 'print' only. The impulse SWV Tracer enhances SWV use-cases as it allows you to log and trace different kinds of data (real, integer, strings, logic) to be stored, visualized and analysed with impulse.See Using the SWV Tracer for how to get started.

#define SEVERITY_ERROR 'e'
#define SEVERITY_INFO 'i'
void itm_log(unsigned char port,unsigned char severity,const char* source,const char* message);
void itm_write(unsigned char port,unsigned char b);
void itm_write(unsigned char port,signed char b);
void itm_write(unsigned char port,unsigned short b) ;
void itm_write(unsigned char port,short b) ;
void itm_write(unsigned char port,unsigned long b);
void itm_write(unsigned char port,long b);
void itm_write(unsigned char port,unsigned long long b);
void itm_write(unsigned char port,long long b);
void itm_write(unsigned char port,float f) ;
void itm_write(unsigned char port,double f);
void itm_write(unsigned char port,const char* text);
void itm_write(unsigned char port,const char* text,char e);

Using this simple API, you can write any kind of variables, logs and text, and visualize them as tables, line diagrams,...

Adopting the impulse trace format

The impulse trace format makes it simple to transfer your trace data into impulse. The format includes all required information, such as signal names, types and context, and is easily generated with the help of existing open-source multi-language trace emitters. It supports multi-core tracing (trace data from multiple cores can be merged), and can be used on any connection. See A3 Trace format to get the full information.

Implementing your own trace formats and attach to new hardware, communication interfaces or platforms

impulse uses the eclipse extension mechanism consistently. It is designed to be extensible in an easy way, and composed to be adaptable to different environments and use cases..

Implementing your own reader for a specific format is not a difficult job. What you need is some basic Java knowledge and the following articles about extending impulse.

If you need further support or development services, just contact us. We are looking forward to supporting you in all technical areas.

Contact us

Electronic circuit simulation uses mathematical models to replicate the behavior of an actual electronic device or circuit. The output of these simulations can be analyzed with impulsed in many ways. Analyze simulations of analog and digital systems: systemC (VCD, TAB, SCV); Verilog, VHDL (VCD, eVCD, LXT2, VZT, FST); Spice (HSpice, NanoSim, Spice3)

More about Simulation

Embedded Systems and IoTs
Impulse can help developers to improve visibility of what is going on inside. Trace and analyse relevant data from embedded applications, kernels and connected devices (Trace via Tcp, Serial, SWO, Logic Analyser, Oscilloscopes, CAN, communication protocols, log4c, ...)

More about Embedded / IoTs

Real-time systems / IT
Get log events and timing informations from application and servers : Use sockets and pipes, log4j, ukos, Pattern log, Wachpoint Tracer, ..

  • Plot/Diagram Types

    • Logic
    • Vector
      • Decimal,Hexadecimal,Octal
      • Binary,ASCII,Text
      • Index,Value Delta,Domain Delta
    • Line
      • Combined (multiple lines in one row)
      • Annotated,Interpolated
      • Linear/Log10,XY Cursor
    • Transaction
      • Multiple layers
    • Log
    • Event
    • Image
    • Area
      • Combined, Stacked, Transparent
      • Annotated, Interpolated
      • Linear/Log10
    • Gantt
      • Multi-color
    • Charts
      • Combined
      • Javascript charts
      • Extension: Nebula charts (xy, intensity)
      • Extension: BIRT charts (bar, line, radar, pie)
  • Formats

    Internal formats
    recMl/ recMZ VCD
    recJs (Script) recTr (Trace)
    HDL formats (Verilog, VHDL)
    VZT LXT2
    Spice formats
    HSpice tr0 NanoSim out
    Spice3 raw
    Log formats
    Log4j xml Pattern log
    CSV xml
    Other formats
    ukos kernel log Amalthea HTF
    Sigrok sr format
    More about file formats
  • Eclipse

    • eclipse 3.7+/4.2/4.3+ plugin
    • Installation / Update from within eclipse
    • Full UI integration
    • Multiple Viewers (editors)
    • Integration into content management
    • Signal structures visible in project explorer
    • Preferences Pages
    • Preference export/import (wallet)
    • Marker support
    • Team support (History)
    • Undo/Redo support
    • Diff Viewer
  • Axis & Cursors

    • Supports multiple domains
      • Time,Frequency
      • Index, Volts, Amps,...
    • Multiple axes in one view
    • Multiple cursors
    • Cursor details area shows deltas
    • Quick measurements (XY) & zoom
    • Linear/Log10 domain axis (e.g frequency)
  • Ports

    TCP Socket
    Input stream from socket connection
    Read from pipe or file input
    Parses the output of a process
    Logic Analyser, Oscilloscopes, ...
    Multi Adapter Port
    Load multiple files into one viewer
    Serial Line
    Log data from devices
    Serial Viewer Viewer
  • Extensibility

    The extension mechanism allow users and integrators to extend the functionality by developing/ installing additional plugins.

    • Uses eclipse extension mechanism
    • Serialisation extension (to support any file format) for
      • Reader,Writer
    • Port extension (e.g. to connect a data aquisition unit)
  • Search & Filters

    • Signal search/filter
      • Regular expressions
      • Signal hierarchy
      • Deep filter
    • Signal pattern search (behaves similar like the eclipse find dialog)
      • Search expression management
      • js search expression
      • Forward/ Reverse