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.

TMDS64EVM: How to run A53 FreeRTOS SMP example on TMDS64EVM

Part Number: TMDS64EVM
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi,

I am currently working with the AM64x Evaluation Module and attempting to run the FreeRTOS SMP examples provided in the MCU+SDK. Unfortunately,
I have not been successful in executing the following examples:

- HelloWorld FreeRTOS SMP
- SMP Task Switch

Environment Information:
- Board:                                            TMDS64EVM (AM64x)
- MCU+SDK Version:                        09.02.01.05 (mcu_plus_sdk_am64x_09_02_01_05)
- TI Code Composer Studio (CCS): 12.05

I have referred to the documentation available at the following link:
software-dl.ti.com/.../SMP_FREERTOS_GUIDE.html

Steps Taken and Current Status:
- Following the guide, I synchronized A53_0 and A53_1 into a group by selecting the "sync group core" option.
- In the Misc/Other options, I have checked "allow s/w breakpoint to be used" and "sync breakpoints and symbols as well as execution."
- I connected to the cores and successfully loaded the .out file onto "Group1," ensuring it was loaded onto both A53_0 and A53_1.
Below is the screen I see after above steps.

After performing these steps, I observe the following behavior:
- When I run the program, it continually returns to `main()` and then transitions to A53_1's `__system_start()` if I press F8 again, subsequently returning to A53_0's `main()`.
- Initially, I did not set any breakpoints, so the program should execute without break, but it consistently breaks at `main()` for A53_0 and `__system_start()` for A53_1.

I believe I may have overlooked something, but I cannot identify the issue based on the provided guide.

Can you please provide further details or guidance on running FreeRTOS SMP effectively?

Thank you. 
Chris

  • Hi Chris,

    Our subject matter expert is currently out of office for this week. Responses to this thread will be delayed. Thanks for your patience.

    Regards,

    Tushar

  • OK. Looking forward the response on next week.  Thank you.

  • Update: I was able to run SMP example by loading .out on A53_0 only and able to run the program.
                  However, it automatically stops/breaks(suspended - sw breakpoint which I didn't set) when task is switching between A53_0 and A53_1.
                  I had to keep pressing F8 every time it breaks to continue.  
                  This doesn't seem right. What am I missing here?
                  
      This is just an update from my side. I will wait till next week for the response.

  • Hi Chris,

    I have tried to run the hello_world a53 smp example and it is working fine for me. I am using CCS v12.6.

    Please refer the below video and check are you missing any steps.

    Regards,

    Tushar

  • Here is my recording: 




    Why mine gets automatic break at printf? 

  • Hi Chris,

    Please refer to my video solution.

    I can see that you have grouped the cores. After connecting to the cores and doing a CPU reset, you will need to sync the cores which is missing step in above shared video.

    Please try to follow the exact steps performed in the video shared earlier. Please refer https://e2e.ti.com/.../5611412 

    Regards,

    Tushar

  • Hi Tushar, 

    Although it doesn't show on the video,  I did the "sync group" at first place according TI's guide, so in video, it is already "sync grouped".  Once it is "sync grouped", it stays that way. 


  • Hi Chris,

    You might have synced the core before connecting to it. 

    Can you please try once sync the cores after connecting to it? Connect  to the cores and then sync it.

    Please let us know the results.

    Regards,

    Tushar

  • I did what you said. I grouped them first and connect and then sync group, but still automatic s/w break occurs during printf/debugP_log

  • any update on this? why s/w break kicks in automatically?

  • Hi Liew,

    Let me try to replicate your steps and see If I can reproduce this issue.

    Best Regards,

    Meet.

  • Hi Liew,

    I have tried this at my end again and it's working for me. There could be some problem with the appimage as well, can you please share the .out file that you are using, so that we can verify the same. 

    Best regards,

    Meet.

  • Thank you for getting back to me. Here is .out file.  
     please remove .txt extension.


    freertos_smp.out.txt



    One question that I have is that, in the video you posted, when you synchronize the core why doesn't Group shows as "Group 2 (Synchronous)"???
    I mean you obviously selected "Synchronize Groups" but no "synchronous" msg on  next to Group number.

    What CCS version should I use?  ( our CCS  is  ver: 12.5.0.00007)




  • Any updates on this?? 

    Since the SMP example works on your environment. Can you tell me the version for SDK, CCS and Sysconfig ??
                                      
    - MCU+SDK Version:                        ??
    - TI Code Composer Studio             ???
    - Sysconfig ???


  • Hi Chris,

    The MCU + SDK version I used is 10.00.00 and the CCS version is 12.8.1. You can try with a higher CCS version, the one recommended for the SDK version 09.02.01 is 12.7.0, you can try with the same.

    Best Regards,

    Meet.

  • Our SDK version is 09.02.01. I will update my CCS to 12.7.0 and see if it works. Our current CCS is 12.5

  • no difference. This is running an example. I do not understand why it is so hard. 

    on your video, after you group and connect. when you sync, how come I do not see "synchronous" next to the cores?
    Is there any other setting (example.syscfg, other config, etc) that I need to be aware of????