TI中文支持网
TI专业的中文技术问题搜集分享网站

ccs中定义中断函数

在ccs中使用了TI-RTOS,这种情况下是不是不能够自定义中断函数呢?

如果可以的话,interrupt void prdTick(void);

还是__interrupt void prdTick(void);,似乎两个都不行,报错

Shine:

加interrupt关键字与不加的区别是函数的返回方式不一样。

#1. 用DSP BIOS的dispatcher才不用写interrupt关键字,不用dispatcher,还是要写interrupt关键字的。因为中断ISR的返回指令不一样,是B IRP,也就是从中断ISR返回时用的记录返回指针的寄存器不一样。这个你可以通过编译产生的汇编代码确认一下的。

#2. 如果不dispatcher,则首先是进入dispatcher函数,它是一个加了interrupt关键字的ISR,自己的ISR只是它调用一个普通函数,所以不用interrupt关键字。

user4941429:

回复 Shine:

问题是:我现在写了interrupt void prdTick(void);ccs显示
expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
这个问题怎么解决呢?如果不用dispatcher的话

Shine:

回复 user4941429:

请问用的是哪款芯片?哪个版本的CCS?方便发个简单的测试工程吗?

user4941429:

回复 Shine:

原来是编译器的问题,如果用GNU编译器好像不能这样,但是TI的编译器是可以这样做的

Shine:

回复 user4941429:

TI编译器手册里有专门讲interrupt关键字的。

赞(0)
未经允许不得转载:TI中文支持网 » ccs中定义中断函数
分享到: 更多 (0)