Hello everybody
The problem simply is that i use Hwi_Create and i set the .arg member in the Hwi_Params with a value for getting it as an argument in the Interrupt Service Routine. When i do this i only get some kind of garbage in the argument of the Interrupt Service Routine.
This happens in CortexM3. I use the same code in CortexA8 and it works.
While debugging, the stack trace shows that my Interrupt Service Routine in CortexA8 is called from a SysBios function. But the one in CortexM3 is called directly from an address that seems to be an Interrupt Vector Table or something like that.
The following code is the same code that runs in both cores :
Hwi_Params hwiParams; Error_Block ebl; Hwi_Params_init(&hwiParams); Error_init(&ebl); hwiParams.arg = (UArg)my_value; hwiParams.priority = 7; Hwi_create(interruptNumber,(Hwi_FuncPtr)_Timer_ISR,&hwiParams,&ebl);
The following screenshot shows the difference between interrupt handling in CortexA8 and CortexM3 which i guess that it is the cause of the problem.
I know that i can handle this problem with other ways than sending an argument to the ISR. But still this looks weird and it seems that there is a bug or a special case in SysBios.
Thanks in advance