This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28377D-SEP: CCS v20 Second Core Reset

Part Number: F28377D-SEP

Hello - migrating from CCS 10.2 to 20.3. Trying to get the debugger to load and launch both CPU cores for the F28377D. Everything seems to be working except one thing - CPU1 is waiting for CPU2 to boot - by looking at the BOOTSTS field which is not populating. I have discovered that if I reset CPU2 and then run CPU1 is works. So this seems like I need to get CPU2 to reset after loading.

I am using a launch.json and I got CPU2 to load by adding the "program" field. If I take that line out it works but CPU2 just runs in the background without a debug interface. The idea here is to get CPU1 and CPU2 contexts both running in the debugger - and ideally as a group so they are synched.

Here is the current launch.json section (it is a CPU1 project launch):

    "configurations": [
        {
            "name": "MbcDualCoreCpu1",
            "type": "ccs-debug",
            "request": "launch",
            "projectInfo": {
                "name": "MbcDualCoreCpu1",
                "resourceId": "/MbcDualCoreCpu1"
            },
            "connections": [
                {
                    "name": "Texas Instruments XDS2xx USB Debug Probe_0",
                    "cores": [
                        {
                            "name": "C28xx_CPU1",
                            "debuggerSettings": {
                                "data": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<PropertyValues/>\n"
                            },
                            "autoConnect": true,
                        },
                        {
                            "name": "C28xx_CPU2",
                            "debuggerSettings": {
                                "data": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<PropertyValues>\n\n  <property id=\"FlashCoreSelection\">\n    <curValue>CPU1 (Master)</curValue>\n  </property>\n\n</PropertyValues>\n"
                            },
                            "autoConnect": true,
                            "program": "${workspaceFolder:MbcDualCoreCpu2}/B0x0100/MbcDualCoreCpu2.out"
                        },
                        {
                            "name": "CPU2_CLA1",
                            "debuggerSettings": {
                                "data": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<PropertyValues/>\n"
                            },
                            "autoConnect": true
                        }
                    ]
                }
            ],
            "groupInfo": [
                {
                    "name": "group_0",
                    "syncMode": false,
                    "cores": [
                        "Texas Instruments XDS2xx USB Debug Probe_0/C28xx_CPU1",
                        "Texas Instruments XDS2xx USB Debug Probe_0/C28xx_CPU2"
                    ]
                }
            ],
            "launchSettings": {
                "coresToLoadForProjectLaunch": [
                    "C28xx_CPU1"
                ]
            }
        }
    ]
 
Is this something that needs to be done with GEL file?

 

  • Hi Raymond,

    Are you starting from an existing project? It may be worthwhile to try working with CCS v20 with one of our dual-core examples (like the LED example) since it should be thoroughly tested. You can try to test how it loads onto your device to see if it matches the behavior you're expecting.

    Another approach could be to use a Project-less Debug to establish a connection with the target device. Then the cores will be held in reset and you can manually load the binary into each core before running the projects

    Regards,

    Peter

  • Yes I'm migrating an existing project from 10 to 20. It works fine doing things manually. What we are trying to do is duplicate the behavior in CCS 10 where we could have everything load connect and then hit Go and both cores would run and have their own debug contexts available. I also tried this with Projectless Debug and it behaves the same.

    I don't the value in trying it with a demo project when this one worked as expected in 10 already. I think it is an IDE problem.

  • Hi Raymond,

    I'll need to experiment with hardware to see what changes need to be made in the json, or optionally the GEL, to resolve this

    Regards,

    Peter

  • I have found the required setting - it is in the Debug Settings on the project configuration. You need to check the "Reset on Program Load or Restart" option. I did it for both cores and starts them both properly when I hit run.