Hi,
I'm working with OMAP L138 EVM.
My application is running under SYS BIOS 6.30.xx.xx in C6748 part of OMAP L138.
The application contains multiple threads (tasks) and one of the thread has,
myfunc()
{
/*
** p1, p2 and p3 are global structures.
*/
mychildfunc(&p1,&p2, &p3);
..............................
}
mychildfunc(struct1 *p1, struct2 *p2, struct *p3)
{
struct p;
........
p = *p1;
if(p->data < 0) {
/* p->data is a int32 value */
p->data = - p->data.
}
}
I saw in the watch window that the value (p->data > 0) is positive and I also confirmed this with the memory window.
But, still the piece of code within the condition is getting executed. But, interestingly, the value remains the same(i.e.it's still positive value).
I did confirmed the execution by putting break point in the dis assembly view.
If I introduce a print statement in the function the function works fine.
I also allocated enough amount of stack for the task and using ROV tool I verified that stack never overflown.
Also, the A10 register which holds the address of P1 is changed at the end of the function.
Is this an expected behaviour?
Is it a bug in Code composer studio or my code has some issues?
Thanks & Best regards
Palanivel Guruvareddiar
P.S 1: CCS version is 4.2.1.
P.S 2: My application's .out is generated in a make file environment and I'm loading to the target via CCS.