You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This (main) is the development branch for V2.1.0. This includes nice things like Python support and the ninja/meson build system. Development is generally done in feature branches and folded into main as those features mature.
9
+
This (main) is the development branch for V2.2.0 but, at the moment, it doesn't contain anything juicy beyond 2.1.0. Development is generally done in feature branches and folded into main as those features mature.
10
+
11
+
Version 2.1.0 has recently been released and includes nice things like Python support, a decent quality Windows port and the ninja/meson build system. It also supports the full functionality of the ORBTrace Mini dongle.
10
12
11
13
ORBTrace, the FPGA based trace interface dongle, has now been moved into its own separate repository as it's grown considerably and really needs its own identity. History for ORBtrace until the split point is maintained here for provenance purposes, but new work is now done over in the new location.
12
14
@@ -62,7 +64,7 @@ is a very powerful code performance analysis tool.
62
64
63
65
* orblcd: LCD emulator on the host computer.
64
66
65
-
There is also embryonic Python support in the `Python` directory.
67
+
There is also Python support in the `Python` directory.
66
68
67
69
A few simple use cases are documented in the last section of this
68
70
document, as are example outputs of using orbtop to report on the
@@ -73,7 +75,10 @@ either using NRZ (UART) or RZ (Manchester) formats. The pin is a
73
75
dedicated one that would be used for TDO when the debug interface is
74
76
in JTAG mode. We've demonstrated
75
77
ITM feeds of around 4.3MBytes/sec on a STM32F427 via SWO with Manchester
76
-
encoding running at 48Mbps. SWO with UART encoding is good for 62Mbaud.
78
+
encoding running at 48Mbps. SWO with UART encoding is good for 62Mbaud. The encoding of UART
79
+
is less efficient than Manchester so those speeds come out largely the same. Users are advised
80
+
to use Manchester encoding if their probe supports it because the don't have to stress about
81
+
data speeds (it's autobauding), clock changes or start/stop bits.
77
82
78
83
The data flowing from the TRACE pins is clocked using a separate TRACECLK pin. There can
79
84
be 1-4 TRACE pins which obviously give you much higher bandwidth than the single SWO. Using ORBTrace
@@ -101,7 +106,8 @@ from the target;
101
106
* ORBTrace Mini
102
107
103
108
Note that current support for the ECPIX-5 breakout board is based on the original bob, the designs for which
104
-
are in the orbtrace_hw repository. bob2 support will be added over the next few weeks (written on 1 Nov 2022).
109
+
are in the orbtrace_hw repository. bob2 support will be added when we get around to it (probably when we decide we
110
+
need USB3 support...unlikely to be yet a while).
105
111
106
112
For 'normal' users we highly reccomend the ORBTrace mini probe for the best experience using this stuff. That's
107
113
not particularlly to make money (the designs are in the orbtrace_hw directory...feel free to build you own), but
@@ -110,7 +116,7 @@ because that hardware has been tuned for the job to be done.
110
116
gdb setup files for each device type can be found in the `Support` directory. You'll find
111
117
example get-you-going applications in the [Orbmule](https://github.com/orbcode/orbmule) repository including
112
118
`gdbinit` scripts for OpenOCD, pyOCD and Blackmagic Probe Hosted. There are walkthroughs for lots of examples
113
-
of the use of the orbuculum suite at (Orbcode)[https://orbcode.org].
119
+
of the use of the orbuculum suite at [Orbcode](https://orbcode.org).
114
120
115
121
When using SWO Orbuculum can use, or bypass, the TPIU. The TPIU adds overhead
116
122
to the datastream, but provides better synchronisation if there is corruption
@@ -140,14 +146,14 @@ you are using. ORBTrace Mini can operate with UART encoded SWO at up to 62MBits/
140
146
also supports Manchester encoded SWO at up
141
147
to 48Mbps. The advantage of Manch encoding is that there's no speed matching needed to use it, and it should
142
148
continue to work correctly even if the target clock speed changes (e.g. when it goes
143
-
into a low power mode). This is a good thing, and is the way we normally use SWO.
149
+
into a low power mode). This is a good thing, and is the way we normally use SWO for day-job.
144
150
145
151
Configuring the Target
146
152
======================
147
153
148
154
Generally speaking, you will need to configure the target device to output
149
155
SWD or parallel data. You can either do that through program code, or through magic
150
-
incantations in gdb. The gdb approach flexible but a bit clunky. @novakov has created
156
+
incantations in gdb. The gdb approach is flexible but a bit clunky. @novakov has created
151
157
the libtrace repository which includes all the code needed to configure your target
152
158
directly via progam code if you prefer to set things up that way.
153
159
@@ -296,6 +302,8 @@ Dependencies
296
302
297
303
In MSys2/MinGW-w64 run command: `pacman -S mingw-w64-x86_64-meson mingw-w64-x86_64-SDL2 ninja mingw-w64-x86_64-libusb mingw-w64-x86_64-toolchain mingw-w64-x86_64-zeromq git` to install all required dependencies.
298
304
305
+
Note that at the moment the Windows build is using a forked libusb because of constraints in the upstream build opening multiple interfaces on the same device at the same time. Hopefully that situation is only temporary.
306
+
299
307
Build
300
308
-----
301
309
@@ -313,33 +321,34 @@ In order to get single folder with Orbuculum and MinGW dependencies run:
`--prefix A:/` is required to workaround how Meson constructs install directory. Without it deeply nested path will be generated instead of clean `build/install`.
324
+
`--prefix A:/` is required to workaround how Meson constructs the install directory. Without it a deeply nested path will be generated instead of the clean `build/install`.
317
325
318
326
Orbuculum executables along with MinGW-w64 dependencies will be installed into `build/install` and can be transfered to different machine or used outside of MSys2 shell.
319
327
320
328
Using
321
329
=====
322
330
323
331
The command line options for Orbuculum are available by running
324
-
orbuculum with the -h option. Orbuculum is just the multiplexer, the
325
-
fifos are now provided by `orbfifo`. *This is a change to the previous
326
-
way the suite was configured where the fifos were integrated into `orbuculum` itself*. Note that
327
-
orbfifo isn't available on Windows (there are no fifos), so use orbzmq to get similar functionality
328
-
on that platform.
332
+
orbuculum with the -h option.
329
333
330
334
Simply start orbuculum with the correct options for your trace probe and
331
335
then you can start of stop other utilities as you wish. A typical command
332
336
to run orbuculum would be;
333
337
334
-
```$ orbuculum --monitor 100```
338
+
```$ orbuculum --monitor 1000```
335
339
336
340
In this case, because no source options were provided on the command line, input
337
341
will be taken from a Blackmagic probe USB SWO feed, or from an ORBTrace mini if it can find one.
338
-
It will start the daemon with a monitor reporting interval of 100mS. Orbuculum exposes TCP port 3443 to which
342
+
It will start the daemon with a monitor reporting interval of 100ms. Orbuculum exposes TCP port 3443 to which
339
343
network clients can connect. This port delivers raw TPIU frames to any
340
344
client that is connected (such as orbcat, orbfifo or orbtop).
341
345
The practical limit to the number of clients that can connect is set by the speed of the host machine....but there's
342
-
nothing stopping you using another one on the local network :-)
346
+
nothing stopping you using another one on the local network :-) If you've got an orbtrace mini and you want
347
+
to switch on power to your target and configure it for Manchester SWO, a suitable command would be;
...this will re-initialise the probe if it gets disconnected at any time.
343
352
344
353
Information about command line options can be found with the -h
345
354
option. Orbuculum itself is specifically designed to be 'hardy' to probe and
@@ -365,7 +374,7 @@ For `orbuculum`, the specific command line options of note are;
365
374
366
375
`-H, --hires`: Use high resolution time. This limits probe interface timeouts to 1ms, which makes host-side timing more accurate, but at the expense of _much_ higher load (literally perhaps x100). Use sparingly.
367
376
368
-
`-m, --monitor`: Monitor interval (in mS) for reporting on state of the link. If baudrate is specified (using `-a`) and is greater than 100bps then the percentage link occupancy is also reported.
377
+
`-m, --monitor`: Monitor interval (in ms) for reporting on state of the link. If baudrate is specified (using `-a`) and is greater than 100bps then the percentage link occupancy is also reported.
369
378
370
379
`-n, --serial-number`: Set a specific serial number for the ORBTrace or BMP device to connect to. Any unambigious sequence is sufficient. Ignored for other probe types.
371
380
@@ -383,7 +392,7 @@ For `orbuculum`, the specific command line options of note are;
383
392
Orbfifo
384
393
-------
385
394
386
-
**Note:**`orbfifo` is not supported on Windows.
395
+
**Note:**`orbfifo` is not supported on Windows. Use `orbzmq` instead.
387
396
388
397
The easiest way to use the output from orbuculum is with one of the utilities
389
398
such as `orbfifo`. This creates a set of fifos or permanent files in a given
@@ -590,7 +599,8 @@ options for orbcat are;
590
599
591
600
`-c, --channel [Number],[Format]`: of channel to populate (repeat per channel) using printf
592
601
formatting. Note that the `Name` component is missing in this format because
593
-
orbcat does not create fifos.
602
+
orbcat does not create fifos. **beware not to have any extraneous spaces in this option,
603
+
that generally ends up not doing what you want as its interpreted as a new option.**
594
604
595
605
`-C, --cpufreq [Frequency in KHz]`: Set (scaled) speed of the CPU to convert CPU timestamps into time timestamps. When
596
606
this option is set `-Ts` and `-Tt` will generate output in milliseconds and thousandths of a millisecond
@@ -623,6 +633,8 @@ options for orbcat are;
623
633
`-v, --verbose [x]`: Verbose mode level 0..3.
624
634
625
635
`-w, --window [string]`: Title for on-screen window.
636
+
637
+
626
638
Orbtop
627
639
------
628
640
@@ -663,7 +675,7 @@ Command line options for orbtop are;
663
675
664
676
`-h, --help`: Brief help.
665
677
666
-
`-I, --interval [Interval]`: Set integration and display interval in milliseconds (defaults to 1000 mS)
678
+
`-I, --interval [Interval]`: Set integration and display interval in milliseconds (defaults to 1000 ms)
667
679
668
680
`-j, --json-file [filename]`: Output to file in JSON format (or screen if <filename> is '-')
669
681
@@ -710,7 +722,7 @@ and what the spread is of those. Here's a typical combination output for a simpl
0 commit comments