Part Number: TMDSEVM6678
Tool/software: Code Composer Studio
Hi,
I am using CCS 5.4 with MCSDK 2.1.2.6, my target board is C6678 EVM. I find an issue with software breakpoint, and I can reproduce this problem with 'Image Processing Demonstration' project with IPC method, and this issue also happens on CC7.0.
The problem is that, I add two more arguments of the function 'process_rgb()' as below. This function runs on eight cores, and I use CCS to setup a breakpoint (i.e. SWBP) at the line in the core1's view, (core1 is the second core, and it executes a slave thread), after I select an image let them to process the picture via the web UI, then all slave threads (i.e. core1 ~ core7) halt at the break point, I think it is correct because the instruction has been replaced by SWBP instruction, I can see this with other cores' view in memory browser or disassembly window, but the problem is that only core1 can executes the code correctly, other cores go wrong, they can't pass arguments correctly.
It seems like CCS can recovery SWBP instruction in the core which setup the breakpoint, but CCS does not recover other cores' SWBP when they all execute the same code, am I correct?
----------------
[ The code I modified in mcip_core.c ]
void process_rgb (int coreid, int* test, processing_info_t * p_info)
{
...
uint8_t i;
Log_write1(UIABenchmark_start, (xdc_IArg)"Process_RGB");
for(i=0; i<16; i++)
{
test[i] = i*2;
test[i] |= coreid << 8;
}
...
...
[ The code I modified in mcip_core_task.c ]
void slave_main(void)
{
...
int test[16];
uint8_t i;
...
process_rgb(DNUM, test, &(p_msg->info));
for(i=0; i<16; i++)
{
printf ("test[i]=%X\n", test[i]);
}
...
----------------
sincerely,
Snaku