Skip to content
Snippets Groups Projects
  • Paul Fertser's avatar
    e7e13965
    contrib/itmdump: add a hack to allow direct dumping of specific SWIT, fix timestamp · e7e13965
    Paul Fertser authored
    Currently itmdump is not a production-quality code hence this hack
    seems to be appropriate.
    
    More robust handling is possible with libswo-based swodec tool that's
    available from http://git.zapb.de/ .
    
    This adds a new command line option -d N where N is a stimulus number
    you want to dump (counting from 1).
    
    The idea here is that if you're interested to live-monitor just a
    single stimulus port, you can use this utility directly. If one wants
    to demultiplex the TPIU stream, the following is proposed:
    
    1. Use https://gitorious.org/multiplex/multiplex utility that can
    accept binary data from a file/pipe/stdin and arbitrary number of TCP
    connections. It simply mirrors all the incoming data to all the
    accepted connections;
    
    2. Use socat to connect itmdump to the proxy mentioned in 1. and then
    either dump the results to separate files or share via their dedicated
    TCP ports.
    
    Example script (inspired by http://openocd.zylin.com/#/c/1662/
    
     ,
    enables and disables specific itm ports on demand):
    
    for i in `seq 0 31`; do
      while true; do
        socat -U TCP-LISTEN:$((8000+$i)),reuseaddr \
                 SYSTEM:"echo itm port $i on | nc -q0 localhost 4444 > /dev/null; nc localhost 7777 | stdbuf -oL itmdump -d$((i+1))"
        echo itm port $i off | nc -q0 localhost 4444 > /dev/null
      done < /dev/null >&0 2>&0 &
    done
    
    Change-Id: Iaeb102436eaa5b106002083f2ffe758fb7bd83e5
    Signed-off-by: default avatarPaul Fertser <fercerpav@gmail.com>
    Reviewed-on: http://openocd.zylin.com/2537
    Tested-by: jenkins
    e7e13965
    History
    contrib/itmdump: add a hack to allow direct dumping of specific SWIT, fix timestamp
    Paul Fertser authored
    Currently itmdump is not a production-quality code hence this hack
    seems to be appropriate.
    
    More robust handling is possible with libswo-based swodec tool that's
    available from http://git.zapb.de/ .
    
    This adds a new command line option -d N where N is a stimulus number
    you want to dump (counting from 1).
    
    The idea here is that if you're interested to live-monitor just a
    single stimulus port, you can use this utility directly. If one wants
    to demultiplex the TPIU stream, the following is proposed:
    
    1. Use https://gitorious.org/multiplex/multiplex utility that can
    accept binary data from a file/pipe/stdin and arbitrary number of TCP
    connections. It simply mirrors all the incoming data to all the
    accepted connections;
    
    2. Use socat to connect itmdump to the proxy mentioned in 1. and then
    either dump the results to separate files or share via their dedicated
    TCP ports.
    
    Example script (inspired by http://openocd.zylin.com/#/c/1662/
    
     ,
    enables and disables specific itm ports on demand):
    
    for i in `seq 0 31`; do
      while true; do
        socat -U TCP-LISTEN:$((8000+$i)),reuseaddr \
                 SYSTEM:"echo itm port $i on | nc -q0 localhost 4444 > /dev/null; nc localhost 7777 | stdbuf -oL itmdump -d$((i+1))"
        echo itm port $i off | nc -q0 localhost 4444 > /dev/null
      done < /dev/null >&0 2>&0 &
    done
    
    Change-Id: Iaeb102436eaa5b106002083f2ffe758fb7bd83e5
    Signed-off-by: default avatarPaul Fertser <fercerpav@gmail.com>
    Reviewed-on: http://openocd.zylin.com/2537
    Tested-by: jenkins
itmdump.c 9.08 KiB