DSP281x_SWPrioritizedPieVect.c
上传用户:qingfan3
上传日期:2014-10-27
资源大小:31439k
文件大小:10k
源码类别:

DSP编程

开发平台:

C/C++

  1. //###########################################################################
  2. //
  3. // FILE:   DSP281x_SWPiroritizedPieVect.c
  4. //
  5. // TITLE:  DSP281x Devices SW Prioritized PIE Vector Table Initialization.
  6. //
  7. //###########################################################################
  8. // 
  9. // Original Source by A.T.
  10. // 
  11. //  Ver | dd mmm yyyy | Who  | Description of changes
  12. // =====|=============|======|===============================================
  13. //  1.00| 11 Sep 2003 | L.H. | Changes since previous version (v.1 Alpha)
  14. //      |             |      | Updated revision to align with other files
  15. //      |             |      | Moved USER0-USER11 to USER1-USER12 to match the CPU guide
  16. // -----|-------------|------|-----------------------------------------------
  17. //###########################################################################
  18. #include "DSP281x_Device.h"     // DSP281x Headerfile Include File
  19. #include "DSP281x_Examples.h"   // DSP281x Examples Include File
  20. const struct PIE_VECT_TABLE PieVectTableInit = {
  21.       PIE_RESERVED,       // Reserved space
  22.       PIE_RESERVED,       // reserved
  23.       PIE_RESERVED,       // reserved
  24.       PIE_RESERVED,       // reserved
  25.       PIE_RESERVED,       // reserved
  26.       PIE_RESERVED,       // reserved
  27.       PIE_RESERVED,       // reserved
  28.       PIE_RESERVED,       // reserved
  29.       PIE_RESERVED,       // reserved
  30.       PIE_RESERVED,       // reserved
  31.       PIE_RESERVED,       // reserved
  32.       PIE_RESERVED,       // reserved
  33.       PIE_RESERVED,       // reserved
  34. // Non-Peripheral Interrupts:
  35.       #if (INT13PL != 0)
  36.       INT13_ISR,    // XINT13
  37.       #else
  38.       INT_NOTUSED_ISR,
  39.       #endif
  40.       
  41.       #if (INT14PL != 0)
  42.       INT14_ISR,     // CPU-Timer2
  43.       #else
  44.       INT_NOTUSED_ISR,
  45.       #endif
  46.       
  47.       #if (INT15PL != 0)
  48.       DATALOG_ISR,   // Datalogging interrupt
  49.       #else
  50.       INT_NOTUSED_ISR,
  51.       #endif
  52.       #if (INT16PL != 0)
  53.       RTOSINT_ISR,   // RTOS interrupt
  54.       #else
  55.       INT_NOTUSED_ISR,
  56.       #endif
  57.       rsvd_ISR,      // reserved interrupt
  58.       NMI_ISR,       // Non-maskable interrupt
  59.       ILLEGAL_ISR,   // Illegal operation TRAP
  60.       USER1_ISR,     // User Defined trap 1
  61.       USER2_ISR,     // User Defined trap 2
  62.       USER3_ISR,     // User Defined trap 3
  63.       USER4_ISR,     // User Defined trap 4
  64.       USER5_ISR,     // User Defined trap 5
  65.       USER6_ISR,     // User Defined trap 6
  66.       USER7_ISR,     // User Defined trap 7
  67.       USER8_ISR,     // User Defined trap 8
  68.       USER9_ISR,     // User Defined trap 9
  69.       USER10_ISR,    // User Defined trap 10
  70.       USER11_ISR,    // User Defined trap 11
  71.       USER12_ISR,     // User Defined trap 12
  72. // Group 1 PIE Vectors:
  73.       #if (G11PL != 0)
  74.       PDPINTA_ISR,   // EV-A
  75.       #else
  76.       INT_NOTUSED_ISR,
  77.       #endif
  78.       #if (G12PL != 0)
  79.       PDPINTB_ISR,   // EV-B
  80.       #else
  81.       INT_NOTUSED_ISR,
  82.       #endif
  83.       rsvd_ISR,
  84.       #if (G14PL != 0)
  85.       XINT1_ISR,     // External
  86.       #else
  87.       INT_NOTUSED_ISR,
  88.       #endif
  89.       #if (G15PL != 0)
  90.       XINT2_ISR,     // External
  91.       #else
  92.       INT_NOTUSED_ISR,
  93.       #endif
  94.       #if (G16PL != 0)
  95.       ADCINT_ISR,    // ADC
  96.       #else
  97.       INT_NOTUSED_ISR,
  98.       #endif
  99.       #if (G17PL != 0)
  100.       TINT0_ISR,     // Timer 0
  101.       #else
  102.       INT_NOTUSED_ISR,
  103.       #endif
  104.       #if (G18PL != 0)
  105.       WAKEINT_ISR,   // WD
  106.       #else
  107.       INT_NOTUSED_ISR,
  108.       #endif
  109. // Group 2 PIE Vectors:
  110.       #if (G21PL != 0)
  111.       CMP1INT_ISR,   // EV-A
  112.       #else
  113.       INT_NOTUSED_ISR,
  114.       #endif
  115.       #if (G22PL != 0)
  116.       CMP2INT_ISR,   // EV-A
  117.       #else
  118.       INT_NOTUSED_ISR,
  119.       #endif
  120.       #if (G23PL != 0)
  121.       CMP3INT_ISR,   // EV-A
  122.       #else
  123.       INT_NOTUSED_ISR,
  124.       #endif
  125.       #if (G24PL != 0)
  126.       T1PINT_ISR,    // EV-A
  127.       #else
  128.       INT_NOTUSED_ISR,
  129.       #endif
  130.       #if (G25PL != 0)
  131.       T1CINT_ISR,    // EV-A
  132.       #else
  133.       INT_NOTUSED_ISR,
  134.       #endif
  135.       #if (G26PL != 0)
  136.       T1UFINT_ISR,   // EV-A
  137.       #else
  138.       INT_NOTUSED_ISR,
  139.       #endif
  140.       #if (G27PL != 0)
  141.       T1OFINT_ISR,   // EV-A
  142.       #else
  143.       INT_NOTUSED_ISR,
  144.       #endif
  145.       rsvd_ISR,
  146.       
  147. // Group 3 PIE Vectors:
  148.       #if (G31PL != 0)
  149.       T2PINT_ISR,    // EV-A
  150.       #else
  151.       INT_NOTUSED_ISR,
  152.       #endif
  153.       #if (G32PL != 0)
  154.       T2CINT_ISR,    // EV-A
  155.       #else
  156.       INT_NOTUSED_ISR,
  157.       #endif
  158.       #if (G33PL != 0)
  159.       T2UFINT_ISR,   // EV-A
  160.       #else
  161.       INT_NOTUSED_ISR,
  162.       #endif
  163.       #if (G34PL != 0)
  164.       T2OFINT_ISR,   // EV-A
  165.       #else
  166.       INT_NOTUSED_ISR,
  167.       #endif
  168.       #if (G35PL != 0)
  169.       CAPINT1_ISR,   // EV-A
  170.       #else
  171.       INT_NOTUSED_ISR,
  172.       #endif
  173.       #if (G36PL != 0)
  174.       CAPINT2_ISR,   // EV-A
  175.       #else
  176.       INT_NOTUSED_ISR,
  177.       #endif
  178.       #if (G37PL != 0)
  179.       CAPINT3_ISR,   // EV-A
  180.       #else
  181.       INT_NOTUSED_ISR,
  182.       #endif
  183.       rsvd_ISR,
  184.       
  185. // Group 4 PIE Vectors:
  186.       #if (G41PL != 0)
  187.       CMP4INT_ISR,   // EV-B
  188.       #else
  189.       INT_NOTUSED_ISR,
  190.       #endif
  191.       #if (G42PL != 0)
  192.       CMP5INT_ISR,   // EV-B
  193.       #else
  194.       INT_NOTUSED_ISR,
  195.       #endif
  196.       #if (G43PL != 0)
  197.       CMP6INT_ISR,   // EV-B
  198.       #else
  199.       INT_NOTUSED_ISR,
  200.       #endif
  201.       #if (G44PL != 0)
  202.       T3PINT_ISR,    // EV-B
  203.       #else
  204.       INT_NOTUSED_ISR,
  205.       #endif
  206.       #if (G45PL != 0)
  207.       T3CINT_ISR,    // EV-B
  208.       #else
  209.       INT_NOTUSED_ISR,
  210.       #endif
  211.       #if (G46PL != 0)
  212.       T3UFINT_ISR,   // EV-B
  213.       #else
  214.       INT_NOTUSED_ISR,
  215.       #endif
  216.       #if (G47PL != 0)
  217.       T3OFINT_ISR,   // EV-B
  218.       #else
  219.       INT_NOTUSED_ISR,
  220.       #endif
  221.       rsvd_ISR,      
  222.      
  223. // Group 5 PIE Vectors:
  224.       #if (G51PL != 0)
  225.       T4PINT_ISR,    // EV-B
  226.       #else
  227.       INT_NOTUSED_ISR,
  228.       #endif
  229.       #if (G52PL != 0)
  230.       T4CINT_ISR,    // EV-B
  231.       #else
  232.       INT_NOTUSED_ISR,
  233.       #endif
  234.       #if (G53PL != 0)
  235.       T4UFINT_ISR,   // EV-B
  236.       #else
  237.       INT_NOTUSED_ISR,
  238.       #endif
  239.       #if (G54PL != 0)
  240.       T4OFINT_ISR,   // EV-B
  241.       #else
  242.       INT_NOTUSED_ISR,
  243.       #endif
  244.       #if (G55PL != 0)
  245.       CAPINT4_ISR,   // EV-B
  246.       #else
  247.       INT_NOTUSED_ISR,
  248.       #endif
  249.       #if (G56PL != 0)
  250.       CAPINT5_ISR,   // EV-B
  251.       #else
  252.       INT_NOTUSED_ISR,
  253.       #endif
  254.       #if (G57PL != 0)
  255.       CAPINT6_ISR,   // EV-B
  256.       #else
  257.       INT_NOTUSED_ISR,
  258.       #endif
  259.       rsvd_ISR,      
  260. // Group 6 PIE Vectors:
  261.       #if (G61PL != 0)
  262.       SPIRXINTA_ISR,  // SPI-A
  263.       #else
  264.       INT_NOTUSED_ISR,
  265.       #endif
  266.       #if (G62PL != 0)
  267.       SPITXINTA_ISR,  // SPI-A
  268.       #else
  269.       INT_NOTUSED_ISR,
  270.       #endif
  271.       rsvd_ISR,
  272.       rsvd_ISR,
  273.       #if (G65PL != 0)
  274.       MRINTA_ISR,    // McBSP-A
  275.       #else
  276.       INT_NOTUSED_ISR,
  277.       #endif
  278.       #if (G66PL != 0)
  279.       MXINTA_ISR,    // McBSP-A
  280.       #else
  281.       INT_NOTUSED_ISR,
  282.       #endif
  283.       rsvd_ISR,
  284.       rsvd_ISR,
  285.       
  286. // Group 7 PIE Vectors:
  287.       rsvd_ISR,     
  288.       rsvd_ISR,     
  289.       rsvd_ISR,     
  290.       rsvd_ISR,     
  291.       rsvd_ISR,     
  292.       rsvd_ISR,     
  293.       rsvd_ISR,     
  294.       rsvd_ISR,     
  295. // Group 8 PIE Vectors:
  296.       rsvd_ISR,     
  297.       rsvd_ISR,     
  298.       rsvd_ISR,     
  299.       rsvd_ISR,     
  300.       rsvd_ISR,     
  301.       rsvd_ISR,     
  302.       rsvd_ISR,     
  303.       rsvd_ISR,     
  304.       
  305. // Group 9 PIE Vectors:
  306.       #if (G91PL != 0)
  307.       SCIRXINTA_ISR,    // SCI-A
  308.       #else
  309.       INT_NOTUSED_ISR,
  310.       #endif
  311.       #if (G92PL != 0)
  312.       SCITXINTA_ISR,    // SCI-A
  313.       #else
  314.       INT_NOTUSED_ISR,
  315.       #endif
  316.       #if (G93PL != 0)
  317.       SCIRXINTB_ISR,    // SCI-B
  318.       #else
  319.       INT_NOTUSED_ISR,
  320.       #endif
  321.       #if (G94PL != 0)
  322.       SCITXINTB_ISR,    // SCI-B
  323.       #else
  324.       INT_NOTUSED_ISR,
  325.       #endif
  326.       #if (G95PL != 0)
  327.       ECAN0INTA_ISR, // eCAN
  328.       #else
  329.       INT_NOTUSED_ISR,
  330.       #endif
  331.       #if (G96PL != 0)
  332.       ECAN1INTA_ISR, // eCAN
  333.       #else
  334.       INT_NOTUSED_ISR,
  335.       #endif
  336.       rsvd_ISR,   
  337.       rsvd_ISR,  
  338.       
  339. // Group 10 PIE Vectors
  340.       rsvd_ISR,     
  341.       rsvd_ISR,     
  342.       rsvd_ISR,     
  343.       rsvd_ISR,     
  344.       rsvd_ISR,     
  345.       rsvd_ISR,     
  346.       rsvd_ISR,     
  347.       rsvd_ISR,     
  348.             
  349. // Group 11 PIE Vectors
  350.       rsvd_ISR,     
  351.       rsvd_ISR,     
  352.       rsvd_ISR,     
  353.       rsvd_ISR,     
  354.       rsvd_ISR,     
  355.       rsvd_ISR,     
  356.       rsvd_ISR,     
  357.       rsvd_ISR,     
  358. // Group 12 PIE Vectors
  359.       rsvd_ISR,     
  360.       rsvd_ISR,     
  361.       rsvd_ISR,     
  362.       rsvd_ISR,     
  363.       rsvd_ISR,     
  364.       rsvd_ISR,     
  365.       rsvd_ISR,     
  366.       rsvd_ISR,     
  367. };
  368. //---------------------------------------------------------------------------
  369. // InitPieVectTable: 
  370. //---------------------------------------------------------------------------
  371. // This function initializes the PIE vector table to a known state.
  372. // This function must be executed after boot time.
  373. //
  374. void InitPieVectTable(void)
  375. {
  376.    int16 i;
  377.    Uint32 *Source = (void *) &PieVectTableInit;
  378.    Uint32 *Dest = (void *) &PieVectTable;
  379.    EALLOW;
  380.    for(i=0; i < 128; i++) {
  381.       *Dest++ = *Source++;
  382.    }
  383.    EDIS;
  384. }
  385. //===========================================================================
  386. // No more.
  387. //===========================================================================