en:uhsdr_dev:profiling

Zitat von: w7dm am 15. Februar 2018, 21:27:06 But I am asking specifically about debug printouts of live datapoints while executing, without stopping the debugger, that I can log to a file and review later. Primarily of the profiling kind that announce enter/exit of sections of code. Does this capability exist using ST-Link without using the Debug Print line?

That is what semihosting is for, it allows you to write data to files on the debug host (or to a console). But it is terrible slow, at least from my experience. Especially if this is related to your interest in improving the beep generation and measuring times, it is absolutely unusable to be used directly in the interrupt code.

What we have built into UHSDR firmware is profiling support, see misc/profiling.h, it uses the MCU integrated debug clock cycle counters to measure how long certain things take. If used right, it gives you execution times for code pieces with a resolution of 168Mhz. To read the accumulated measurement data, I basically look into the data structure with the ST-Link but here you could use things like semihosting to printout the data from time to time on the host console. We used that a while ago, currently code for printing out via semihosting is disabled but you'll get the idea how to use all of that.

The working example for that stuff is btw, the infamous L ..% indicator, which tells you how much time we spend inside the audio interrupt. BTW, you turn on the display of this value by enabling the “Debug Info” in the debug and experts menu.

You could leave a comment if you were logged in.
  • en/uhsdr_dev/profiling.txt
  • Last modified: 16.02.2018 08:53
  • by df9ts