Hi,
I am able to interrupt DSP from ARM on OMAP-L138. (Refer following post - Reg ARM to DSP interrupt without BIOS)
http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/p/113508/402326.aspx
Now I want to do same thing using SYS/BIOS (without IPC or DSP Link) ie
1. ARM to power up and bring DSP out of Reset.
2. Using SYS/BIOS HWI, configure CHIPSIG2(event 5) as interrupt.
3. Now rise CHIPSIG2 interrupt at ARM by making SYSCFG_CHIPSIG as 0x00000004;
I have referred SYS/BIOS User Guide section 6.
Following is the code at DSP side.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <xdc/std.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Error.h>
#include <ti/sysbios/hal/Hwi.h>
#include <ti/sysbios/BIOS.h>
Bool Hwi5 = FALSE;
void myIsr5()
{
System_printf("\nmyIsr5");
Hwi5 = TRUE;
}
void myIdleFunc()
{
System_printf("\nIdle function is running");
if (Hwi5)
{
System_printf("\ninterrupt have occurred!");
System_exit(0);
}
}
main(Void)
{
Hwi_Params hwi0;
//to assign default values
Hwi_Params_init(&hwi0);
//CHIPSIG2 event is 5
hwi0.eventId = 5;
hwi0.arg = 0;
hwi0.maskSetting = Hwi_MaskingOption_SELF;
hwi0.enableInt = TRUE;
hwi0.priority = -1;
Hwi_create(4,(Hwi_FuncPtr)myIsr5,&hwi0,NULL);
Hwi_enableInterrupt(4);
System_printf("\nBios is started!");
BIOS_start();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, after step 3, ideally DSP should get interrupt and should execute myIsr5(). But this is not happening.
Please let me know what is the problem with this.
thanks, Durga