TI DSP的中断
创始人
2024-03-20 14:38:22
0

F28069的中断数是96个,分为12组

The PIE block can support 96 individual interrupts that are grouped into blocks of eight.Each
group is fed into one of 12 core interrupt lines (INT1 to INT12)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


比如常用的的CPU0定时器这个中断就是在第一组的第7个,它在代码里面有个名字,TINT0

// Group 1 PIE Peripheral Vectors:PINT     ADCINT1;   // ADC - if Group 10 ADCINT1 is enabled, this must be rsvd1_1PINT     ADCINT2;   // ADC - if Group 10 ADCINT2 is enabled, this must be rsvd1_2PINT     rsvd1_3;PINT     XINT1;	  // External Interrupt 1PINT     XINT2;     // External Interrupt 2PINT     ADCINT9;   // ADC 9PINT     TINT0;     // Timer 0PINT     WAKEINT;   // WD

在这里插入图片描述



F28069在代码里的中断定义


// Define Vector Table:
struct PIE_VECT_TABLE {// Reset is never fetched from this table.
// It will always be fetched from 0x3FFFC0 in
// boot ROMPINT     PIE1_RESERVED;PINT     PIE2_RESERVED;PINT     PIE3_RESERVED;PINT     PIE4_RESERVED;PINT     PIE5_RESERVED;PINT     PIE6_RESERVED;PINT     PIE7_RESERVED;PINT     PIE8_RESERVED;PINT     PIE9_RESERVED;PINT     PIE10_RESERVED;PINT     PIE11_RESERVED;PINT     PIE12_RESERVED;PINT     PIE13_RESERVED;// Non-Peripheral Interrupts:PINT     TINT1;     // CPU-Timer1PINT     TINT2;     // CPU-Timer2PINT     DATALOG;   // Datalogging interruptPINT     RTOSINT;   // RTOS interruptPINT     EMUINT;    // Emulation interruptPINT     NMI;       // Non-maskable interruptPINT     ILLEGAL;   // Illegal operation TRAPPINT     USER1;     // User Defined trap 1PINT     USER2;     // User Defined trap 2PINT     USER3;     // User Defined trap 3PINT     USER4;     // User Defined trap 4PINT     USER5;     // User Defined trap 5PINT     USER6;     // User Defined trap 6PINT     USER7;     // User Defined trap 7PINT     USER8;     // User Defined trap 8PINT     USER9;     // User Defined trap 9PINT     USER10;    // User Defined trap 10PINT     USER11;    // User Defined trap 11PINT     USER12;    // User Defined trap 12// Group 1 PIE Peripheral Vectors:PINT     ADCINT1;   // ADC - if Group 10 ADCINT1 is enabled, this must be rsvd1_1PINT     ADCINT2;   // ADC - if Group 10 ADCINT2 is enabled, this must be rsvd1_2PINT     rsvd1_3;PINT     XINT1;	  // External Interrupt 1PINT     XINT2;     // External Interrupt 2PINT     ADCINT9;   // ADC 9PINT     TINT0;     // Timer 0PINT     WAKEINT;   // WD// Group 2 PIE Peripheral Vectors:PINT     EPWM1_TZINT; // EPWM-1PINT     EPWM2_TZINT; // EPWM-2PINT     EPWM3_TZINT; // EPWM-3PINT     EPWM4_TZINT; // EPWM-4PINT     EPWM5_TZINT; // EPWM-5PINT     EPWM6_TZINT; // EPWM-6PINT     EPWM7_TZINT; // EPWM-7PINT     EPWM8_TZINT;	// EPWM-8// Group 3 PIE Peripheral Vectors:PINT     EPWM1_INT;  // EPWM-1PINT     EPWM2_INT;  // EPWM-2PINT     EPWM3_INT;  // EPWM-3PINT     EPWM4_INT;  // EPWM-4PINT     EPWM5_INT;  // EPWM-5PINT     EPWM6_INT;  // EPWM-6PINT     EPWM7_INT;  // EPWM-7PINT     EPWM8_INT;  // EPWM-8// Group 4 PIE Peripheral Vectors:PINT     ECAP1_INT;  // ECAP-1PINT     ECAP2_INT;  // ECAP-2PINT     ECAP3_INT;  // ECAP-3PINT     rsvd4_4;PINT     rsvd4_5;PINT     rsvd4_6;PINT     HRCAP1_INT; // HRCAP-1PINT     HRCAP2_INT; // HRCAP-2// Group 5 PIE Peripheral Vectors:PINT     EQEP1_INT;  // EQEP-1PINT     EQEP2_INT;  // EQEP-2PINT     rsvd5_3;PINT     HRCAP3_INT; // HRCAP-3PINT     HRCAP4_INT; // HRCAP-4PINT     rsvd5_6;PINT     rsvd5_7;PINT     USB0_INT;   // USB-0// Group 6 PIE Peripheral Vectors:PINT     SPIRXINTA; // SPI-APINT     SPITXINTA; // SPI-APINT     SPIRXINTB; // SPI-BPINT     SPITXINTB; // SPI-BPINT     MRINTA;	  // McBSP-APINT     MXINTA;    // McBSP-APINT     rsvd6_7;PINT     rsvd6_8;// Group 7 PIE Peripheral Vectors:PINT     DINTCH1;	// DMA CH1PINT     DINTCH2;	// DMA CH2PINT     DINTCH3;	// DMA CH3PINT     DINTCH4;	// DMA CH4PINT     DINTCH5;	// DMA CH5PINT     DINTCH6;	// DMA CH6PINT     rsvd7_7;PINT     rsvd7_8;// Group 8 PIE Peripheral Vectors:PINT     I2CINT1A;  // I2C-APINT     I2CINT2A;  // I2C-APINT     rsvd8_3;PINT     rsvd8_4;PINT     rsvd8_5;PINT     rsvd8_6;PINT     rsvd8_7;PINT     rsvd8_8;// Group 9 PIE Peripheral Vectors:PINT     SCIRXINTA;  // SCI-APINT     SCITXINTA;  // SCI-APINT     SCIRXINTB;  // SCI-BPINT     SCITXINTB;  // SCI-BPINT     ECAN0INTA;  // eCAN-APINT     ECAN1INTA;  // eCAN-APINT     rsvd9_7;PINT     rsvd9_8;// Group 10 PIE Peripheral Vectors:PINT     rsvd10_1; // Can be ADCINT1, but must make ADCINT1 in Group 1 space "reserved".PINT     rsvd10_2; // Can be ADCINT2, but must make ADCINT2 in Group 1 space "reserved".PINT     ADCINT3;  // ADCPINT     ADCINT4;  // ADCPINT     ADCINT5;  // ADCPINT     ADCINT6;  // ADCPINT     ADCINT7;  // ADCPINT     ADCINT8;  // ADC// Group 11 PIE Peripheral Vectors:PINT     CLA1_INT1;  // CLAPINT     CLA1_INT2;  // CLAPINT     CLA1_INT3;  // CLAPINT     CLA1_INT4;  // CLAPINT     CLA1_INT5;  // CLAPINT     CLA1_INT6;  // CLAPINT     CLA1_INT7;  // CLAPINT     CLA1_INT8;  // CLA// Group 12 PIE Peripheral Vectors:PINT     XINT3;PINT     rsvd12_2;PINT     rsvd12_3;PINT     rsvd12_4;PINT     rsvd12_5;PINT     rsvd12_6;PINT     LVF;        // Latched overflowPINT     LUF;        // Latched underflow
};

CPU 中断使能寄存器IER(interrup enable register)

该寄存器用来配置是否启用中断

在这里插入图片描述

The interrupt flag (IF) bit corresponding to that event is
set in a register for that particular peripheral.
If the corresponding interrupt enable (IE) bit is set, the peripheral generates an interrupt request to the PIE
controller. If the interrupt is not enabled at the peripheral level, then the IF remains set until cleared by
software. If the interrupt is enabled

中断是可以启用和禁止的,者通过IER,IFR两个寄存器来操作,比如一般程序开头,我们会禁用所有中断:

    //// Disable CPU interrupts and clear all CPU interrupt flags//IER = 0x0000;IFR = 0x0000;//清除标志,表示一开始没有任何中断发生

启用中断的话,给IER或上值,比如,启用cup0,1,2,启用了int1,int13,int14这三个组的中断

// Enable CPU int1 which is connected to CPU-Timer 0, CPU int13
// which is connected to CPU-Timer 1, and CPU int 14, which is connected
// to CPU-Timer 2:IER |= M_INT1;IER |= M_INT13;IER |= M_INT14;
// Enable TINT0 in the PIE: Group 1 interrupt 7PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

CPU 中断标志寄存器IFR(interrup flag register)

该寄存器用来表示,那个中断发生了。如果中断发生,IFR该中断的位会自动置1.

在这里插入图片描述
在这里插入图片描述


三级中断系统

在这里插入图片描述

外设级

在这里插入图片描述

在这里插入图片描述

PIE级

在这里插入图片描述

在这里插入图片描述

CPU级

在这里插入图片描述

在这里插入图片描述

三级中断总结图

在这里插入图片描述


中断源图示

注意,改图是2812系列的,跟F28069有点不同,比如28069的timer0,1是可被用户使用的,如果没有用到DSP/BIOS,timer2也可以被用户使用
在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...