DualCore BF607 debug behaviour

Hi !

we work on a dualcore project which is divided in network stuff on CORE0 and audio stuff on core1

the mysterious behaviour that we observed is that - if we reach a breakpoint in core1 (core0 runs in the meantime) the network connection ist lost on core0 

what could be the problem ??

kind regards christoph

  • 0
    •  Analog Employees 
    on Dec 24, 2020 8:57 AM 2 months ago

    Hi,

    Could you please confirm that if you have tried to set the break point before starting a debug session. If you set the breakpoint on source file before starting a debug session, CCES doesn't know which core to set the breakpoint on so it just sets it on the first core, core 0 only.

    Before launching a debug session, if you set a breakpoint on a source file for a core 1project, it sets the breakpoint on core 0. It should be setting the breakpoint on the correct core since the core id is stored in the project and we can use that information to set it on the right core.

    The workaround is to set the breakpoint after starting the debug session:

    1) start your debug session
    2) run core 0 to enable core 1
    3) Open source file to set breakpoint
    4) click on the core 1 call stack in the Debug view
    5) set a breakpoint on the gutter on  source file editor view.  it should now set a breakpoint on core 1,whether it shows any impact on core0

    Please refer the below CCES help path for general restrictions while applying software breakpoints.
    CrossCore® Embedded Studio 2.x.x > Integrated Development Environment > Debugging Executable Files > Working with Breakpoints, Watchpoints, and Breakpoint Actions>Setting a Software Breakpoint

    CrossCore® Embedded Studio 2.x.x > Integrated Development Environment > Debugging Executable Files > Application with crosscore debugger >Run/Debug Configurations Dialog Box - Multiprocessor Groups Tab

    CrossCore® Embedded Studio 2.x.x > Integrated Development Environment > Navigating Within the IDE > Views > Debug>Debug View

    Attached herewith is a simple code that has Tx, Rx or loopback functionalities enabled - each of these can be selected via respective macros in the main.h file. The default configuration is to transmit around 2000 packets.

    We are not clear on the test set up you have at your end. However, to observe the packets transmitted by the code, you could have a packet capture software, such as Wireshark(Wireshark · About ) on your PC.

    If you are still facing any issues,could you please share us the below details to assist you further.

    1. Could please share us your project which replicates this issue along with steps to reproduce and exact step by step procedure along with the share us the screenshot of the breakpoint that you have set.
    2. Please provide more details about the hardware and network environment setup for core0 and core1
    3. Whether your using Ez-board or custom board and share silicon revision of your board.
    4. For the network connection loss, please share us the screenshot of the error, in which you an view network loss.
    5. Please describe your test setup - connection between PC to EZ-Kit (using direct connection or router), in order to send/receive data.
    6. Do you see this only in your application, or do you see the same problem with the examples provided with the BF609 BSP?
    7. Which version of CCES you are using.
    8. Where you are placing the breakpoint? In the source file, or the Disassembly window?
    9. Are you running the two cores' code simultaneously? Or you can put a breakpoint in core0 after enable_core1() function
    10. Are the breakpoints in shared memory?  Are you using shared memory between the cores.

    Regards,
    Nishanthi.V

    Test_EMAC_Basic_Core0.zip

  • thanks for very detailed description, i'll try it !!   but the effect also happens if i dont use breakpoints, and only pause core1, then the network seems to be stopped on core0

    kind regards christoph