在该单片机中,中断处理过程中的中断响应阶段,会讲断点PC压入堆栈(问题1,断点入栈的C语言代码是什么),将所响应的中断源的矢量地址(问题2,矢量地址指的是什么,其响应的C语言代码是什么)送PC寄存器。
多谢
------解决思路----------------------
问题1,断点入栈的C语言代码是什么
没现成的C代码, C下是不建议对堆栈进行操作的, 汇编倒是有相关指令(push,pop什么的)
断点PC压入堆栈,现场保护等操作是编译器完成,写代码的不用管这些
问题2,矢量地址指的是什么,其响应的C语言代码是什么
比如 51定时器0中断适量地址是0x04(?0x08还是其他忘了), 当中断发生时,会把0x04送到PC或者说是PC跳到0x04开始执行
C代码没有, 由于该操作(PC=0x04)是由硬件完成的,所以不需要汇编代码实现这个
------解决思路----------------------
如果是 C 代码,编译器会自动处理中断出入栈过程,生成相应的编码。程序员不必关心。
如果用汇编语言,则需要程序员自己写相关代码。
在使用 keil 系列编译器的 C 代码中,你只需要在你的中断服务起始处标注中断号即可,例如:
void usb_ep0_int() interrupt 1
{
......