TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)
2024-09-04 10:04:54
C66x DSP运行中断的简要流程:
1、使能了全局中断和子中断。假设硬件检測到中断发生,那么CPU就要跳转。
2、软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中以备中断返回能找到当前被打断的位置。
3、CPU的PC指针读出中断向量表的地址,也就是把“ISTP寄存器的ISTB值+子中断向量偏移量”装入PC寄存器,这样就运行跳转。
4、在中断向量表里一般有就用跳转指令,这样就能够跳转到我们用C语言编写的中断服务子程序中。因为我们在一般的中断服务子程序函数前面增加了interruptkeyword。
那么编译器就会在函数返回的语句改成B
IRP(B是跳转指令)。这样就把IRP/NRP的值送给PC寄存器。
(中断服务)
5、CPU在运行跳转之前会把堆栈中曾经保存的那些值出栈到自己的对应的寄存器中。
Table 6-2
lists the interrupt control registers on the CPU:
最新文章
- Python Day17
- dubbo-admin管理平台搭建
- Spring 教程(一)
- java异常类的使用
- 创建基本的2D场景(part1)
- 机器学习实践之Logistic回归
- vxWorks下intel82567v3网卡驱动的更新
- Eclipse创建Maven工程
- 马昕璐201771010118 《面对对象程序设计(java)》第九周学习总结
- (转)springcloud(一):大话Spring Cloud
- Linux下通过 rm -f 删除大量文件时报错:Argument list too long
- Python--Windows下安装虚拟环境
- fastreport报表中出现十字线
- Github安全整理(转载)
- Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
- Form表单中Post与Get方法的区别
- JS应该放在什么位置?
- const限定符用法汇总
- linux cpio
- 理解一条语句:SELECT difference(sum(";value";)) FROM ";mq_enqueue"; WHERE ";channel"; =~ /ActiveMQ_TEST/ AND $timeFilter GROUP BY time($interval)