[SOLVED] Feature wishlist and possible improvements 2

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Feature wishlist and possible improvements 2

    Since I recently bought a J-Link Edu I tried Ozone again. So I'm continuing my thread from here:

    7. power sampling with J-Link Edu
    (Everything was tested while connected to a STM32L011F4P6 with 4MHz SWD, 5V pin of debugger was loaded with a potentiometer.)
    • First I calibrated with J-Link commander and no load:
      • On the J-Link Web control panel it seems ok: it shows 0mA (5.45mA peak)
      • Ozone on the other hand only outputs the values 5.000mA or 4294959.000mA

    • with load
      • I get some reasonable values on the J-Link Web control panel (not great, but better than guessing)
      • with ozone, well is hard to test because of the following points, but for low values there seem to be only 5mA, 18mA and 31mA, nothing in between.

    • the power sampling list is broken, i.e. scrolling is not possible
    • the plot is not working, i.e. there no visible data
    • the operation is very unstable. J-Link will freeze, or not, I don’t see any correlation with something. I then cannot stop the debug session, halt at a break point or do anything. Only unplugging the J-Link helps. After that, it says: “The connected emulator does not support POWERTRACE”
    Everything seems fine with a J-Link Ultra+, so are there problems with the J-Link Edu or is this just not a feature and it's only "working" accidentally?


    8. wrong expressions in data sampling get removed. e.g. I want to plot a register value by entering ‘*(uint*)(0x40001024)/100’ but instead of just ‘enter’ I accidentally hit the ‘+’ and ’enter’ key. Now the expression is wrong and will be removed. I could copy it from the console where an error message appears, but this is annoying.


    9. some expressions are evaluated as wrong when reloading the elf-File. again ‘*(uint*)(0x40001024)/100’, after a reload it is suddenly wrong and will be removed. very annoying if you have serveral of these expressions


    10. auto reload sometimes doesn't work and I keep loading old code without realizing it or I accidentally click on 'no'. Please just add a reload button.
  • Hi Fraengers,


    7. J-Link EDU does not support the power profiling. This is the feature a J-Link needs to possess in order to work with Ozone's power sampling window. For that a J-Link ultra plus or better is required. I assume that this leads to your power sampling window not being populated with power measurements. If the list is empty the window does not offer scrolling. This would also explain why you do not see the power plot in the Timeline window: No data - nothing to graph.


    8. This is intended behavior. Please refer to section 4.6.5 of the Ozone user's manual. In case you need to maintain a list of expressions which includes potentially illegal expressions, please try adding the respective statements 'Window.Add ("Data Sampling", "<expression>");' to your OnProjectLoad() function.


    9. Could you explain in detail how to reproduce that? A quick test on my side did not show that behavior.


    10. Could you explain the conditions for "sometimes" more detailed? If your ELF file changed Ozone should notice that once you return the focus to Ozone, and display a dialog offering to reload the ELF file. If you need to reload your project you may also use File->Recent Projects. We do not see an added value in providing a reload button.
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • 1. (from here) another vote for the Start/Stop button, so I can start/stop both data and power sampling (also tracing? no experience with that) at the same time without having to change (and remember the current setting) of two frequency settings.


    7. Seggers information is really unclear on this. Power profiling is specifically advertised with 200kSa/s for high end models (Pro, Ultra+). But it is also advertised for J-Link Plus as a feature of Ozone (with 1kHz rate limit I would assume). Since Edu, Base and Plus are probably the same device, and the Edu comes with an Ozone license, I assumed I should be able to use the power profiling (with 1kHz and probably not as much resolution as the Pro or Ultra+). And it does actually work. This can be observed in the Web control panel and, kind of broken, in Ozone. So either your advertisement is misleading or there is a bug in Ozone.

    Furthermore, I obviously do see values in the Ozone power samples list, otherwise I wouldn't know what they are. Also the samples counter is counting (at least until J-Link freezes). So: yes data – list and graph not working, and J-Link freezing.


    8. The intended behavior is to punish the user by deleting the whole list entry if there is a typo (or what is happing in 9.) instead of just marking it red and ignoring it for sampling? weird philosophy.


    9. Reload the ELF file while the debug session is running. It doesn't have to be a new file. Sampling can be off and execution halted, doesn't matter.


    10. It’s hard to reproduce, so I can’t tell you more. Using ‘File->Recent Projects’ or ‘Recent Programs’ does what I want. Let’s call it a workaround.
  • 2. (from here) additional points:

    • after zooming in the timeline with 'ctrl + mouse wheel' the zoom works as intended, but when you move the mouse afterwards, the timescale moves, so the waveforms jump right or left
    • there should be some kind of indication what sampling rate is possible with the current settings (SWD frequency, number of variables to sample etc.) and debug probe.
  • 1. We do not see added value in such a start/stop button. Therefore the feature will not be implemented.

    7. The web site for the J-Link Plus (segger.com/products/debug-probes/j-link/models/j-link-plus/) contains a section that advertises that Ozone can be used with that device. This section also contains a small excerpt of Ozone's overall functionality, which includes power graph and instruction trace. Ozone does support all those features, but only with the J-Links that do support them as well. We will consider changing the web page in that respect.

    I reproduced the improper handling of power trace data with J-Link EDU. We will provide a fix in a subsequent Ozone release. I was not able to reproduce a freeze in J-Link or Ozone, though.

    9. We are able to reproduce that. This will be fixed in a subsequent Ozone release.

    11. Timescale moves after zooming via [ctrl]+[mouse wheel]: In my quick check this worked fine: After zooming I was able to move the mouse w/o the time line window content changing at all. Could you please provide details on how to reproduce that?
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • 2. (from here) and another additional point for the a-great-idea-but-annoying-to-use feature (data sampling):
    • checkboxes in the data sampling setup panel, where I can select the expressions I want to sample without having to remove the ones I don't want to sample.


    7. But please fix it as in: make it work and not as in: remove it. Even if the sampling rate and resolution is not as good as with the intended probes and with that useless for in-depth profiling, it is still a nice feature to see low speed changes and also a good way to demonstrate the general capability of Ozone/J-Link.


    11. At first I couldn't reproduce it myself.

    Then I found this way:

    Open Ozone, start debugging, sample some data, stop sampling. Now it works ok, with only occasional minimal movement (few pixels) of the time axis. Now change the width of the timeline (doesn't matter if it's docked or floating). Now it's happening with varying intensity.

    But after trying this way for several times (without changing anything else), it is now happening every time again. So I don't know. Maybe try with different sizes of the timeline window.

    The post was edited 2 times, last by fraengers ().

  • 2. I've added that idea to our internal wish list for future improvements.

    11. I was still not able to reproduce the issue. I could not find any graph jumping when moving the mouse after zooming via the mouse wheel. It appears to be the case that even in your environment this is not always reproducible. Once you are able to provide a stable reproducer please share that with us.
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • 10. the auto reload of ELF will not work if the "Target Connection Lost" error window (maybe also other message windows) is present.
    Common scenario for me: Debugger is running to examine errors if needed, I'm testing my setup, an error occurs, I turn off the power supply (=>debugger connection lost) to restart everything, I turn the power on again, I do more tests (debugger not needed at this point), I go the my IDE, make some changes, compile, do other stuff to prepare the next test run, then I come back to Ozone, notice the Connection Lost error message, I click Yes to abort the session, I start a new session but now the auto reload window doesn't appear and I'll debug with the old code, if I don't pay attention.
    Maybe always check for a new ELF when starting a new session?

    The post was edited 1 time, last by fraengers ().

  • Hi Frank,
    10. This is already known and will be fixed in a future release.
    Best regards
    -- AlexD
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • 11. I cannot reproduce it consistently, it is happening pretty much all the time (but sometimes it's working correctly or it's less noticeable). I also tested it on a new installation and empty project. It is happinging without data too. It doesn't matter if the time scale is set to continuous or e.g. ms/div. Changing the window size seems to influence this behaviour.
    I made a short clip, so you can see what I mean. Observe the time origin line jumping when I move the cursor after zooming. Really annoying when you want to zoom in on a detail and the waveforms are jumping around.



    12. Improve data throughput while sampling (with SWD)
    Example:
    Variables in memory

    Source Code

    1. 0x20000020 uint8_t data0
    2. 0x20000021 uint8_t data1
    3. 0x20000022 uint8_t data2
    4. 0x20000023 uint8_t data3
    5. 0x20000024 uint8_t data4
    6. 0x20000025 uint8_t data5
    7. 0x20000026 uint8_t data6
    8. 0x20000027 uint8_t data7
    If I sample only data0 or data0-3, it’ll take 12 write/read-operations:
    - 9 ops for overhead
    - 3 ops for read of 0x20000020

    If I sample all variables, it’ll take 13 write/read-operations:
    - 9 ops for overhead
    - 4 ops for read of 0x20000020 and 0x20000024

    If I sample data0 and data3 it takes 15 operations: (it could be done in 12)
    - 9 ops for overhead
    - 3 ops for read of 0x20000020
    - 3 ops for read of 0x20000023 (this will return the same 32bits we already read from 0x20000020)

    If I sample data0, data2 and data3 it takes 16 operations: (it could be done in 12)
    - 9 ops for overhead
    - 3 ops for read of 0x20000020
    - 1 op for overhead
    - 3 ops for read of 0x20000022 (this will return the same 32bits we already read from 0x20000020)

    If I sample data0, data2, data3, data4, data6, data7 it takes 24 operations: (it could be done in 13)
    - 9 ops for overhead
    - 3 ops for read of 0x20000020
    - 1 op for overhead
    - 3 ops for read of 0x20000022 (this will return the same 32bits we already read from 0x20000020)
    - 1 op for overhead
    - 3 ops for read of 0x20000024
    - 1 op for overhead
    - 3 ops for read of 0x20000026 (this will return the same 32bits we already read from 0x20000024)

    So reading 6 variables takes almost twice as long as reading all 8 variables.

    The post was edited 3 times, last by fraengers ().

  • 13. Expressions are broken (or working as intended? I'm not sure anymore...)
    • In Watched Data any expression, that is not just a variable, will only be evaluated when halted, auto referesh does not work.
    • in Data Sampling something like "(var1 - var2)" works, but "(var1 - var2)*1" will result in values like -2.07691874e+34.
  • Hi Fraengers

    11: We are not able to reproduce the issue locally. I believe you that what you describe happens in your environment, but since we are not able to reproduce the issue locally there is not much we can do about it.

    13: I tried expressions of the form "(<var1> + <var2>) * <number>" locally and they worked like a charm. if you are able to provide a reproducer on an eval board, please open a ticket in our support ticket system. The link can be found in the footer of this message.

    Best regards
    -- AlexD
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • 11. I experience it one three different machines (all Win10 and Ozone 3.28c)

    13. It seems to be a problem with floats, ints work.

    Test code for XMC4500 Relax V1:

    C Source Code

    1. #include "xmc_common.h"
    2. float f1 = 0;
    3. float f2 = 0;
    4. int i1 = 0;
    5. int i2 = 0;
    6. int main(void) {
    7. while(1U) {
    8. f1 += 1.1231423f;
    9. f2 += 0.9813213f;
    10. i1 += 1;
    11. i2 += 2;
    12. for (int i = 0; i < 1000; i++)
    13. asm ("nop");
    14. }
    15. }
    Display All
    In this test it evaluates to 0. Better, because the timeline graph is still usable, but still wrong.
  • Hi Fraengers,

    since you opened a ticket in the ticket system your request will be handled there. This thread here will be closed now.

    Best regards
    -- AlexD
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.