DSP入门:中断PIE
DSP入门:中断PIE
1、DSP中断管理分为3个层次:外设级,PIE级,CPU级。
其中,外设级中断管理负责具体外设中断源的允许与禁止,PIE级中断管理负责对外设级中断分组并按照优先级管理,CPU内核级中断管理则负责处理直接向CPU申请的中断请求。
DSP控制器的外设中断扩展模块(PIE),对中断进行集中化扩展,使每一级CPU中断均可以响应多个中断源。
2、PIE级中断及管理:
CPU内核级中断(INT1–INT14),INT1-INT12被PIE模块用来进行中断扩展,有12组,每组8个中断源。
各中断的优先级自上而下,由右到左逐步降低,总体优先级INT1最高,INT12最低。
INT13由CPU定时器1和外部中断XINT13复用,INT14由定时器2独占。
3、中断响应过程
4、中断寄存器介绍
- PIEIFRx (1-12)中断标志寄存器
- PIEIERx (1-12)中断屏蔽寄存器
各有12个,每个16位宽,只用了前8位分别表示8个中断源;IFR标志中断到来,IER表示是否要响应(PIEIFRx.1-8,PIEIERx.1-8) - PIEACKx (1-12)应答位
CPU是否响应给位的中断,为0中断送入CPU,为1等待 PIECTRL PIE控制寄存器,只读
读取中断向量XINTnCR (n为1-7) 7个外部中断
选择中断边沿,01上升沿;外部中断允许位
5、代码片
PieCtrlRegs.PIEIFR1.bit.INTx4=1;//在PIE中断组1设置XINT1的中断标志位
PieCtrlRegs.PIEIER1.bit.INTx4=1;//允许PIE中断组1的XINT1 中断PieCtrlRegs.PIEACK.all = 0x0004;//清除中断组3的ACK位,以便再次响应
PieCtrlRegs.PIECTRL.bit.ENPIE=1;//允许从向量表中读取中断向量
- 1
- 2
- 3
- 4
- 5
6、定时器中断实例
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"interrupt void cpu_timer0_isr(void);//声明中断服务函数void main()
{//step1:初始化系统控制、PLL、看门狗、允许外设时钟InitSysCtrl();//step2:初始化GPIOInitGpio();//step3:清除所有中断,初始化PIE向量表DINT;InitPieCtrl(); //初始化PIE控制器IER = 0x0000; //禁止CPU中断IFR = 0x0000; //清除所有CPU中断标志InitPieVectTable(); //初始化PIE中断向量表EALLOW;PieVectTable.TINT0 = &cpu_timer0_isr; //重映射中断向量,指向中断服务程序EDIS;//step4:初始化外设模块InitCpuTimers();ConfigCpuTimer(&CpuTimer0,150,1000000); //150MHz,周期1秒CpuTimer0Regs.TCR.all = 0x4001; //允许定时器中断,且设置TSS为0启动定时器工作//step5:IER |= M_INT1; //允许CPU的INT1中断,该中断连接至TINT0PieCtrlRegs.PIEIER1.bit.INTx7 = 1; //在PIE中断组1中允许TINT0中断EINT; //清除全局屏蔽ERTM; //允许全局实时中断//step6:循环while(1);}interrupt void cpu_timer0_isr(void)
{CpuTimer0.InterruptCount++;PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //清除PIE中断组1的应答位,以便CPU再次响应}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
7、外部中断实例
后续实例,先占个坑
- 1
DSP入门:中断PIE相关推荐
- dsp指令ixh_第一章 DSP入门教程(非常经典).pdf
DSP 入门教程 1.TI DSP 的选型 主要考虑处理速度.功耗.程序存储器和数据存储器的容量.片内的资源,如定时器的数量. I/O 口数量.中断数量.DMA 通道数等.DSP 的主要供应商有 TI ...
- 献给初学者-DSP入门教程【转】
献给初学者-DSP入门教程 helloDSP论坛 前言:此资料也是来源于网络,并不是我们原创,但是希望这些资料能够给初学DSP的 朋友们一点帮助,也希望你们能够把这里当成是你们学习DSP技术的一个家园 ...
- TI DSP入门学习
本FAQ是针对刚刚进入DSP硬件和软件设计领域的网友,希望能够帮助大家快速入门.在设计和调试时少走弯路. 水平有错误和不完善的地方,大家一定指出,免得流毒无穷.欢迎大家补充!! 1.TI DSP的选型 ...
- DSP入门必看(下)
文章来自:http://doggo.blog.sohu.com/4401860.html eXpressDSP是什么? eXpressDSP是一种实时DSP软件技术,它是一种DSP编程的标准,利用它 ...
- TI C28x DSP的中断嵌套
介绍 一个常见的问题是 C28x 中断是否可以嵌套.本文解释了如何通过对中断服务例程 (ISR) 代码进行简单更改来实现中断嵌套. 本文假设读者已经熟悉以下内容: C28x PIE 模块:控制寄存器. ...
- DSP入门小白学习日记第三篇
信号采集 首先我们要知道dsp芯片是用来处理信号数据的,那这个信号源怎么来呢?一般是通过传感器外设采集连接高速接口啥的(等以后买了再说吧),但是目前学习的时候只有一块开发板,所以只能自己模拟数据了,呜 ...
- highcharts入门之Pie:如何让Pie饼状图的图例内显示百分比(转)
有很多人都在询问如何在highcharts的pie 饼状图内显示百分比,通过不断琢磨最后得出了一个结论,只需要简单配置即可实现这样一个需求. 完整核心代码如下所示: $(function () {va ...
- DSP中断介绍及其应用
本章节的学习来自于TMS320F28377D参考手册和研旭例程. 学习DSP的中断,使用定时器产生中断. 目录 什么是中断: TMS320F2837xD的中断架构: 外设阶段: PIE阶段: CPU阶 ...
- 【DSP开发】C6000非多核非KeyStone系列DSP中断系统
C6000系列DSP的中断系统 上一篇介绍了C6455的GPIO系统,最后把GPIO4配置成了中断/事件模式,本文将介绍C6455的中断系统,介绍完基本概念后,给出把GPIO4映射到INT4的代码. ...
最新文章
- HTML解析原理概括(转载)
- 数学建模学习笔记——主成分分析
- ERP选型 SAP PK Oracle
- 撤销操作 —— Git 学习笔记 12
- mysql数据库指定ip远程访问
- 《机器学习》 周志华学习笔记第五章 神经网络(课后习题) python实现
- PHP中的逆波兰式应用
- ROS笔记(17) Gazebo
- 跟我一起写一个chrome扩展程序
- JavaScript 从入门到放弃(二)模块化工具requirejs
- Yii --EClientScript 扩展,css,js文件代码压缩合并加载
- java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据
- JS图片自动或者手动滚动效果(支持left或者up)
- 如何在Hexo中对文章md文件分类
- Word插入带打勾图标的方框
- 阿里云企业邮箱有免费的吗?如何申请?
- 服务器被ddos攻击?分析如何防止DDOS攻击?
- Telegram图文详解-- 编程机器人(谷歌脚本服务)
- Swagger 接口分组
- CF, SD, MiniSD, HPI,
热门文章
- epoll实现压测工具
- SoC嵌入式软件架构设计之二:虚拟内存管理原理、MMU硬件设计及代码分块管理...
- MVC+JSON 无限滚动翻页
- wtl for duilib 运行良好
- php bigpipe实现,如何通过php 实现BigPipe分块输出
- 自动发现_清华发布首个自动图学习框架,或有助于蛋白质建模和新药发现
- 命令行 笔记本键盘禁用_宏碁发布Enduro系列三防笔记本电脑和平板电脑
- java code viewer_Java CodeView类代码示例
- 克鲁斯卡尔(Kruskal)算法求最小生成树
- 解决magento保存产品时耗时很长的问题