硬件信号量采用的是间接方式,用CSL函数配置中断可以正常运行,现在采用sys/bios hwi配置中断,程序获得信号量就进去异常,我感觉是信号量中断没配好,硬件中断配置如下:
key=Hwi_disable();
Hwi_Params_init(&hwiParams);
Error(&eb);
hwiParams.arg=1;
hwiParams.enableInt = FALSE;
hwiParams.eventID=CSL_GEM_SEMINTN;
hwiParams.maskSetting = Hwi_MaskingOption_SELF;
Hwi_create(11,&sem_isr,&hwiParams,&eb);
Hwi_enableInterrupt(11);
Hwi_restore(key);
各位高手帮忙看看,不胜感激
Thomas Yang1:
eb, sem_isr都正常初始化了吗?有没有换个中断号看看。
你可以把仿真器挂上去看看,跟踪下PC,到底是怎么跑飞的
liyue liu:
回复 Thomas Yang1:
谢谢Thomas Yang1。eb的初始化Error_init(&eb); sem_isr是中断服务函数为:
void sem_isr()
{
key=disable();
flag = CSL_semGetFlag(DNUM);
CSL_semClearFlags(DNUM,flag);
CSL_semSetEoi(DNUM);
Hwi_restore(key);
}
运行出错显示:
ti.sysbios.gates.GateMutex: line 97:assertion failure :A badContext:bad calling contex. See GateMutex API doc for details. xdc.runtime.Error.raise:terminating execution
其他中断号都是一样的,帮忙看看谢谢
Thomas Yang1:
回复 liyue liu:
如果不是信号量中断,其他中断能正常运行吗?
在PDK安装包下有用SYSBIOS配置中断的例子,您对比下呢
liyue liu:
回复 Thomas Yang1:
只要屏蔽中断配置,就不会进入异常。在pdk安装包下只有CSL, drv,platform,transport没看到sysbios配置中断的例程。不知在哪个文件夹下,谢谢
TI中文支持网