Posts by florentb

    Yes, it is working first time on JLink 7.68.
    It is the exact same board, with the same JTrace, and exactly the same connections (the only change is the JLink software).

    However, I am using the JTrace Pro, which I suspect not many people are using, so it may be broken since quite a long time.

    Thanks,
    Florent

    Hello,
    with the most recent versions of JLink, the connection to the STM32H730 takes many tries.
    Typically I can connect in the JLink command line, but it takes two tries (the first "connect" will not work, while the second "connect" will work).
    If I re-launch JLink command line, the same behavior happens again (the first "connect" will never work).

    It was working with older JLink versions, so there must be a regression here.



    Thanks,
    Florent

    Hello,
    we are using a JTrace PRO + Ozone 3.28, with a custom STM32H730IB board.
    We are using a the 4-pins trace interface, with a low CPU frequency so that the trace can be working without issues (TRACECLK is 30MHz or so).
    We also use the provided .pex file (ST_STM32H743_Traceconfig.pex) and load it in the Ozone project.

    The problem is that the trace is only working before hitting the first breakpoint. We have the following behavior:
    - if "Reset & Run" mode is used, the trace not working (we have the orange LED on the JTrace but the instruction trace stays empty)
    - if "'Reset & Break at symbol" (main()) is used, the trace is working only before the main() breakpoint is hit. Then, when we click Continue, the Instruction trace counter stays at the same value and we don't get any more trace after that.
    However, in both cases, the Trace packets counter is increasing in the JTrace control panel, so the trace packets are actually sent by the target and received by the JTrace adapter, but somehow not parsed / read by Ozone.

    It is not linked to a clock configuration issue on the MCU side - we ended up by removing all the clock configuration from our code and the behavior stays exactly the same.

    We can share the .elf file and Ozone project but obviously not publicly.

    Thanks,
    Florent

    No, you don't need to export the code to another IDE to reproduce the problem. I used only JLink to flash the .hex files and the issue is reproduced.

    I tried with BLE_Battery_Level example. Check the attachement. Note that if you don't switch the SWD interface into GPIO mode, the issue is not present.
    I also attached the .hex file with SWD in GPIO mode, you can also generate it with the IDE (in CortexM0\ARM_GCC_493\Debug\BLE_Battery_Level.hex).

    I use the Cypress BLE Pionneer Kit, and I use the black daughter board (PRoC / CYBL10563), but the bug has been reproduced with other boards / devices as well (CYBL10461).
    In JLink Commander : device CYBL10XXX, then I manually select SWD interface at default speed.
    You can erase / loadfile BLE_Battery_Level.hex, but once done, JLink is unable to re-connect :
    - directly on the Pionneer Kit board, it displays "WARNING: RESET (pin 15) high but should be low" and then ultimately "Can not connect to target".
    - using the daughter board directly connected to JLink with some wires, when trying "connect" it just displays "Can not connect to target". With an oscilloscope we can see that JLink switches RESET pin high / low / high / low serveral times but that doesn't help. I think you need to have the RESET pin being low for some time before the SWD interface is enabled (and obviously if at any time during connecting JLink switch the RESET to high, the SWD interface will be disabled immediately).
    - typing r0 in JLink Commander does switch RESET to low, but as soon as we try "connect", JLink switches the RESET pin back to high , which disables the SWD interface and prevents JLink from connecting.

    As JLink can't be used anymore, you need to use the Cypress SWD Programmed (integrated on the Cypress BLE Pionneer Kit main board) to flash the MCU again.

    Florent

    PSoCs have a mode where the SWD interface is enabled only in RESET mode; in order to reduce the power consumption.
    Cypress call this "SWD in GPIO mode", check in the PSoC Creator IDE under System tab.

    However it seems that JLink does not support a connect-under-RESET for PSoC devices.
    When in SWD-GPIO mode, JLink can't connect at all, actually it does not even detect the SWD interface.

    Trying to change rsettype to 3 returns an UNKNOWN type, and does not solve the problem.

    Also, programming the PSoC with Cypress SWD programmer works without problem.

    Device used : CYBL10461-56LQXI (PRoC with BLE) / can be tested with Cypress dev boards as well.
    JLink version : V510i

    Thanks,
    Florent