编译环境为:Mplab x IDE v3.45 编译器为:Mplab c18 v3.42
#pragma code high_vecotr=0x08//高优先级中断入口
void interrupt_at_high_vector(void)
{
_asm GOTO high_isr _endasm
}
#pragma code
#pragma interrupt high_isr nosave=TBLPTR, TBLPTRU, TABLAT, section("MATH_DATA"), section(".tmpdata")
void high_isr(void)
{
}
#pragma interrupt high_isr nosave=TBLPTR, TBLPTRU, TABLAT, section("MATH_DATA"), section(".tmpdata")
程序运行过程偶尔出现错误,怀疑中断影响。
在MPLAB C18 C编译器用户指南上看section(".tmpdata")为非中断函数的编译器临时变量,此处定义为nosave,怀疑有问题。
但是取消nosave后面任意字段,都无法进入高优先级中断了。
有熟悉这块的能解释下这句吗?之前用picc18都没有这个。
|