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:

最新文章

  1. Python Day17
  2. dubbo-admin管理平台搭建
  3. Spring 教程(一)
  4. java异常类的使用
  5. 创建基本的2D场景(part1)
  6. 机器学习实践之Logistic回归
  7. vxWorks下intel82567v3网卡驱动的更新
  8. Eclipse创建Maven工程
  9. 马昕璐201771010118 《面对对象程序设计(java)》第九周学习总结
  10. (转)springcloud(一):大话Spring Cloud
  11. Linux下通过 rm -f 删除大量文件时报错:Argument list too long
  12. Python--Windows下安装虚拟环境
  13. fastreport报表中出现十字线
  14. Github安全整理(转载)
  15. Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
  16. Form表单中Post与Get方法的区别
  17. JS应该放在什么位置?
  18. const限定符用法汇总
  19. linux cpio
  20. 理解一条语句:SELECT difference(sum("value")) FROM "mq_enqueue" WHERE "channel" =~ /ActiveMQ_TEST/ AND $timeFilter GROUP BY time($interval)

热门文章

  1. c/c++导出lua绑定
  2. Python之pandas数据加载、存储
  3. 基于SOC方案的嵌入式开发-远程定时设备
  4. 学习RFT之:TestObject.find方法的了解与使用
  5. Android五大布局介绍&属性设置大全
  6. C++_运算符重载 总结
  7. wparam , lparam 传递消息
  8. ibatis常用16条SQL语句
  9. 版本优化-test
  10. NYOJ 832 合并游戏