專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

TMS320F2812外設(shè)例程系列之PieVect

作者:佚名   來(lái)源:不詳   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月17日   【字體:

  //#####################################################################

//文件:  DSP281x_PieVect.c
//說(shuō)明:  DSP281x 芯片 PIE 中斷向量表初始化程序
//#####################################################################
#include "DSP281x_Device.h"     
#include "DSP281x_Examples.h"   
const struct PIE_VECT_TABLE PieVectTableInit = {
//定義一個(gè)結(jié)構(gòu)體類(lèi)型PIE_VECT_TABLE的結(jié)構(gòu)體變量PieVectTableInit,并給元素賦初
//值,其元素初值為其對(duì)應(yīng)的默認(rèn)中斷向量服務(wù)程序的起始地址(函數(shù)名)
//在DSP281x_DefaultIsr.c里面都有定義
      PIE_RESERVED,   //保留,復(fù)位總是取自BROM或XINTF7區(qū)的0x3F FFC0
      PIE_RESERVED,   //保留,見(jiàn)PIE組1
      PIE_RESERVED,   //保留,見(jiàn)PIE組2
      PIE_RESERVED,   //保留,見(jiàn)PIE組3
      PIE_RESERVED,   //保留,見(jiàn)PIE組4
      PIE_RESERVED,   //保留,見(jiàn)PIE組5
      PIE_RESERVED,   //保留,見(jiàn)PIE組6
      PIE_RESERVED,   //保留,見(jiàn)PIE組7
      PIE_RESERVED,   //保留,見(jiàn)PIE組8
      PIE_RESERVED,   //保留,見(jiàn)PIE組9
      PIE_RESERVED,   //保留,見(jiàn)PIE組10
      PIE_RESERVED,   //保留,見(jiàn)PIE組11
      PIE_RESERVED,   //保留,見(jiàn)PIE組12
      //非外設(shè)中斷
      INT13_ISR,       //XINT13(外部中斷13) 或CPU-Timer 1(用BIOS或RTOS)
      INT14_ISR,       //CPU-Timer2
      DATALOG_ISR,     //CPU數(shù)據(jù)記錄中斷
      RTOSINT_ISR,     //CPU實(shí)時(shí)操作系統(tǒng)中斷
      EMUINT_ISR,     //CPU仿真中斷
      NMI_ISR,         //外部不可屏蔽中斷
      ILLEGAL_ISR,     //非法操作陷阱
      USER1_ISR,       //用戶(hù)定義軟件中斷1
      USER2_ISR,       //用戶(hù)定義軟件中斷2
      USER3_ISR,       //用戶(hù)定義軟件中斷3
      USER4_ISR,       //用戶(hù)定義軟件中斷4
      USER5_ISR,       //用戶(hù)定義軟件中斷5
      USER6_ISR,       //用戶(hù)定義軟件中斷6
      USER7_ISR,       //用戶(hù)定義軟件中斷7
      USER8_ISR,       //用戶(hù)定義軟件中斷8
      USER9_ISR,       //用戶(hù)定義軟件中斷9
      USER10_ISR,       //用戶(hù)定義軟件中斷10
      USER11_ISR,       //用戶(hù)定義軟件中斷11
      USER12_ISR,       //用戶(hù)定義軟件中斷12
      //PIE組1
      PDPINTA_ISR,     //EV-A
      PDPINTB_ISR,     //EV-B
      rsvd_ISR,
      XINT1_ISR,     
      XINT2_ISR,
      ADCINT_ISR,       //ADC
      TINT0_ISR,       //Timer 0
      WAKEINT_ISR,     //WD
      //PIE組2
      CMP1INT_ISR,     //EV-A
      CMP2INT_ISR,     //EV-A
      CMP3INT_ISR,     //EV-A
      T1PINT_ISR,     //EV-A
      T1CINT_ISR,     //EV-A
      T1UFINT_ISR,     //EV-A
      T1OFINT_ISR,     //EV-A
      rsvd_ISR,
      //PIE組3
      T2PINT_ISR,     //EV-A
      T2CINT_ISR,     //EV-A
      T2UFINT_ISR,     //EV-A
      T2OFINT_ISR,     //EV-A
      CAPINT1_ISR,     //EV-A
      CAPINT2_ISR,     //EV-A
      CAPINT3_ISR,     //EV-A
      rsvd_ISR,
      //PIE組4
      CMP4INT_ISR,     //EV-B
      CMP5INT_ISR,     //EV-B
      CMP6INT_ISR,     //EV-B
      T3PINT_ISR,     //EV-B
      T3CINT_ISR,     //EV-B
      T3UFINT_ISR,     //EV-B
      T3OFINT_ISR,     //EV-B
      rsvd_ISR,      
      //PIE組5
      T4PINT_ISR,     //EV-B
      T4CINT_ISR,     //EV-B
      T4UFINT_ISR,     //EV-B
      T4OFINT_ISR,     //EV-B
      CAPINT4_ISR,     //EV-B
      CAPINT5_ISR,     //EV-B
      CAPINT6_ISR,     //EV-B
      rsvd_ISR,      
      //PIE組6
      SPIRXINTA_ISR,   //SPI-A
      SPITXINTA_ISR,   //SPI-A
      rsvd_ISR,
      rsvd_ISR,
      MRINTA_ISR,     //McBSP-A
      MXINTA_ISR,     //McBSP-A
      rsvd_ISR,
      rsvd_ISR,
      //PIE組7
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      //PIE組8
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      //PIE組9     
      SCIRXINTA_ISR,   //SCI-A
      SCITXINTA_ISR,   //SCI-A
      SCIRXINTB_ISR,   //SCI-B
      SCITXINTB_ISR,   //SCI-B
      ECAN0INTA_ISR,   //eCAN
      ECAN1INTA_ISR,   //eCAN
      rsvd_ISR,   
      rsvd_ISR,   
      //PIE組10
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      //PIE組11
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      //PIE組12
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
};
//初始化PIE中斷向量表
//這個(gè)子程序把PIE中斷向量表初始化到一個(gè)已知狀態(tài),這個(gè)子程序必須在引導(dǎo)程序后執(zhí)行
void InitPieVectTable(void)
{
   int16 i;
   Uint32 *Source = (void *) &PieVectTableInit;
   Uint32 *Dest = (void *) &PieVectTable;
//將結(jié)構(gòu)體變量PieVectTableInit的值賦給結(jié)構(gòu)體變量PieVectTable
  //注意:兩個(gè)為同一個(gè)結(jié)構(gòu)體類(lèi)型PIE_VECT_TABLE
EALLOW;
for(i=0; i < 128; i++)
*Dest++ = *Source++;
EDIS;
//使能PIE中斷向量表
PieCtrlRegs.PIECRTL.bit.ENPIE = 1;
}
關(guān)閉窗口