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.
Hi All,
I am using TMS320F28388 controller for my project. With CPU1 I am able execute/debug my code.
Now I am planning to use CPU1 and CPU2.
1. What are the project configuration changes required to use both the cores?
2. How to debug both the cores.
Thanks in advance
Regards
Dipin
Hi Dipin,
Please take a look at the C2000Ware DriverLib example for dual core at:
C/ti/c2000/C2000Ware_4_01_00_00/driverlib/f2838x/examples/c28x_dual/led
Basically, You can start with empty_project with dual_core, and it will set up the project include path and linker path for your.
Here is the link which walks through 'debugging multicore with CCS':
https://software-dl.ti.com/ccs/esd/documents/ccs_multi-core-debug.html
Thanks & Regards,
Santosh
Hello,
Thanks for the reply.
We took the example code ipc_ex1_basic_c28x1 & ipc_ex1_basic_c28x2.
In this example code we are sending commands from CPU1 to CPU2 and data is received at the ISR of CPU2.
But when we tried the same logic to send command from CPU2 to CPU1 we are not able to receive data at ISR of CPU1.
Could you suggest and example code for IPC communication from CPU2 to CPU1.
Thanks in advance
Navya,
The data flow for IPC is same way in both directions. I am not sure what is not working. Is it data not available from CPU2 to CPU1, or it does not interrupt CPU1.
There are multiple examples that can be referred. You can start with IPC training:
https://dev.ti.com/tirex/explore/node?node=AYlvYCIFS3m3S0PporZnCQ__jEBbtmC__LATEST
In C2000 Academy, it walks through how to develop the code from scratch and build up the code which sends data bidirectionally.
The solution of the lab exercise is located at:
C:/ti/c2000/C2000Ware_4_01_00_00/training/device/f2837xd/module11_inter_processor_communications
Hello Santosh,
While running example code ipc_ex1_basic_c28x1 & ipc_ex1_basic_c28x2 the sequence flow is getting stuck at IPC_waitForAck(IPC_CPU1_L_CPU2_R, IPC_FLAG0); and also flow is not going to __interrupt void IPC_ISR0() of CPU2. What could be the reason behind this. I have not made any changes in the example code.
Regards
Navya Anna Prince
Navya,
I just tested the example and it works as expected. I am not sure if you are building and loading CPU2 and running it. If it gets stuck in ACK in cpu1, it means that CPU2 is not running.
Here is the sequence you need to follow:
ipc_ex1_basic_c28x2.out'. After loading it will halt in CPU2 main(). Press F8 to run the core.
I will recommend one more time to go through IPC module of the C2000 Academy. I provided the link earlier. It will be useful to understand the whole flow and hand-shake mechanism used for two cores.
Hi,
Last year, TI released Academy style online training on C2000 devices. The objective of the training is to provide step-by-step guidance to get started with C2000 family of real-time MCU. We know you have looked at C2000 Academy for some modules. We want to reach out to you if you can share your experience with Academy. Do you have any feedback/suggestion to improve it? We are contently looking for ways to improve the content so that it is more useful to the customer, so any feedback/suggestion will be really helpful.
Thank you so much for taking the time to provide your feedback.
Thanks & Regards,
Santosh Jha