Update vector table

This commit is contained in:
Sanyog Nevase Nevase 2024-09-22 21:00:14 +05:30
parent dfb46c9359
commit bee9001bd3
1 changed files with 302 additions and 300 deletions

View File

@ -1,300 +1,302 @@
//***************************************************************************** //*****************************************************************************
// //
// Startup code for use with TI's Code Composer Studio. // Startup code for use with TI's Code Composer Studio.
// //
// Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved. // Copyright (c) 2011-2014 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement // Software License Agreement
// //
// Software License Agreement // Software License Agreement
// //
// Texas Instruments (TI) is supplying this software for use solely and // Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by // exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright // TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source // laws. You may not combine this software with "viral" open-source
// software in order to form a larger program. // software in order to form a larger program.
// //
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER. // DAMAGES, FOR ANY REASON WHATSOEVER.
// //
//***************************************************************************** //*****************************************************************************
#include <stdint.h> #include <stdint.h>
//***************************************************************************** //*****************************************************************************
// //
// Forward declaration of the default fault handlers. // Forward declaration of the default fault handlers.
// //
//***************************************************************************** //*****************************************************************************
void ResetISR(void); void ResetISR(void);
static void NmiSR(void); static void NmiSR(void);
static void FaultISR(void); static void FaultISR(void);
static void IntDefaultHandler(void); static void IntDefaultHandler(void);
void SystickHandler(void);
//***************************************************************************** void GPIOF_interruptHandler(void);
// //*****************************************************************************
// External declaration for the reset handler that is to be called when the //
// processor is started // External declaration for the reset handler that is to be called when the
// // processor is started
//***************************************************************************** //
extern void _c_int00(void); //*****************************************************************************
extern void _c_int00(void);
//*****************************************************************************
// //*****************************************************************************
// Linker variable that marks the top of the stack. //
// // Linker variable that marks the top of the stack.
//***************************************************************************** //
extern uint32_t __STACK_TOP; //*****************************************************************************
extern uint32_t __STACK_TOP;
//*****************************************************************************
// //*****************************************************************************
// External declarations for the interrupt handlers used by the application. //
// // External declarations for the interrupt handlers used by the application.
//***************************************************************************** //
// To be added by user //*****************************************************************************
// To be added by user
//***************************************************************************** extern void SystickHandler(void);
// extern void GPIOF_interruptHandler(void);
// The vector table. Note that the proper constructs must be placed on this to //*****************************************************************************
// ensure that it ends up at physical address 0x0000.0000 or at the start of //
// the program if located at a start address other than 0. // The vector table. Note that the proper constructs must be placed on this to
// // ensure that it ends up at physical address 0x0000.0000 or at the start of
//***************************************************************************** // the program if located at a start address other than 0.
#pragma DATA_SECTION(g_pfnVectors, ".intvecs") //
void (* const g_pfnVectors[])(void) = //*****************************************************************************
{ #pragma DATA_SECTION(g_pfnVectors, ".intvecs")
(void (*)(void))((uint32_t)&__STACK_TOP), void (* const g_pfnVectors[])(void) =
// The initial stack pointer {
ResetISR, // The reset handler (void (*)(void))((uint32_t)&__STACK_TOP),
NmiSR, // The NMI handler // The initial stack pointer
FaultISR, // The hard fault handler ResetISR, // The reset handler
IntDefaultHandler, // The MPU fault handler NmiSR, // The NMI handler
IntDefaultHandler, // The bus fault handler FaultISR, // The hard fault handler
IntDefaultHandler, // The usage fault handler IntDefaultHandler, // The MPU fault handler
0, // Reserved IntDefaultHandler, // The bus fault handler
0, // Reserved IntDefaultHandler, // The usage fault handler
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
IntDefaultHandler, // SVCall handler 0, // Reserved
IntDefaultHandler, // Debug monitor handler 0, // Reserved
0, // Reserved IntDefaultHandler, // SVCall handler
IntDefaultHandler, // The PendSV handler IntDefaultHandler, // Debug monitor handler
IntDefaultHandler, // The SysTick handler 0, // Reserved
IntDefaultHandler, // GPIO Port A IntDefaultHandler, // The PendSV handler
IntDefaultHandler, // GPIO Port B SystickHandler, // The SysTick handler
IntDefaultHandler, // GPIO Port C IntDefaultHandler, // GPIO Port A
IntDefaultHandler, // GPIO Port D IntDefaultHandler, // GPIO Port B
IntDefaultHandler, // GPIO Port E IntDefaultHandler, // GPIO Port C
IntDefaultHandler, // UART0 Rx and Tx IntDefaultHandler, // GPIO Port D
IntDefaultHandler, // UART1 Rx and Tx IntDefaultHandler, // GPIO Port E
IntDefaultHandler, // SSI0 Rx and Tx IntDefaultHandler, // UART0 Rx and Tx
IntDefaultHandler, // I2C0 Master and Slave IntDefaultHandler, // UART1 Rx and Tx
IntDefaultHandler, // PWM Fault IntDefaultHandler, // SSI0 Rx and Tx
IntDefaultHandler, // PWM Generator 0 IntDefaultHandler, // I2C0 Master and Slave
IntDefaultHandler, // PWM Generator 1 IntDefaultHandler, // PWM Fault
IntDefaultHandler, // PWM Generator 2 IntDefaultHandler, // PWM Generator 0
IntDefaultHandler, // Quadrature Encoder 0 IntDefaultHandler, // PWM Generator 1
IntDefaultHandler, // ADC Sequence 0 IntDefaultHandler, // PWM Generator 2
IntDefaultHandler, // ADC Sequence 1 IntDefaultHandler, // Quadrature Encoder 0
IntDefaultHandler, // ADC Sequence 2 IntDefaultHandler, // ADC Sequence 0
IntDefaultHandler, // ADC Sequence 3 IntDefaultHandler, // ADC Sequence 1
IntDefaultHandler, // Watchdog timer IntDefaultHandler, // ADC Sequence 2
IntDefaultHandler, // Timer 0 subtimer A IntDefaultHandler, // ADC Sequence 3
IntDefaultHandler, // Timer 0 subtimer B IntDefaultHandler, // Watchdog timer
IntDefaultHandler, // Timer 1 subtimer A IntDefaultHandler, // Timer 0 subtimer A
IntDefaultHandler, // Timer 1 subtimer B IntDefaultHandler, // Timer 0 subtimer B
IntDefaultHandler, // Timer 2 subtimer A IntDefaultHandler, // Timer 1 subtimer A
IntDefaultHandler, // Timer 2 subtimer B IntDefaultHandler, // Timer 1 subtimer B
IntDefaultHandler, // Analog Comparator 0 IntDefaultHandler, // Timer 2 subtimer A
IntDefaultHandler, // Analog Comparator 1 IntDefaultHandler, // Timer 2 subtimer B
IntDefaultHandler, // Analog Comparator 2 IntDefaultHandler, // Analog Comparator 0
IntDefaultHandler, // System Control (PLL, OSC, BO) IntDefaultHandler, // Analog Comparator 1
IntDefaultHandler, // FLASH Control IntDefaultHandler, // Analog Comparator 2
IntDefaultHandler, // GPIO Port F IntDefaultHandler, // System Control (PLL, OSC, BO)
IntDefaultHandler, // GPIO Port G IntDefaultHandler, // FLASH Control
IntDefaultHandler, // GPIO Port H GPIOF_interruptHandler, // GPIO Port F
IntDefaultHandler, // UART2 Rx and Tx IntDefaultHandler, // GPIO Port G
IntDefaultHandler, // SSI1 Rx and Tx IntDefaultHandler, // GPIO Port H
IntDefaultHandler, // Timer 3 subtimer A IntDefaultHandler, // UART2 Rx and Tx
IntDefaultHandler, // Timer 3 subtimer B IntDefaultHandler, // SSI1 Rx and Tx
IntDefaultHandler, // I2C1 Master and Slave IntDefaultHandler, // Timer 3 subtimer A
IntDefaultHandler, // Quadrature Encoder 1 IntDefaultHandler, // Timer 3 subtimer B
IntDefaultHandler, // CAN0 IntDefaultHandler, // I2C1 Master and Slave
IntDefaultHandler, // CAN1 IntDefaultHandler, // Quadrature Encoder 1
0, // Reserved IntDefaultHandler, // CAN0
0, // Reserved IntDefaultHandler, // CAN1
IntDefaultHandler, // Hibernate 0, // Reserved
IntDefaultHandler, // USB0 0, // Reserved
IntDefaultHandler, // PWM Generator 3 IntDefaultHandler, // Hibernate
IntDefaultHandler, // uDMA Software Transfer IntDefaultHandler, // USB0
IntDefaultHandler, // uDMA Error IntDefaultHandler, // PWM Generator 3
IntDefaultHandler, // ADC1 Sequence 0 IntDefaultHandler, // uDMA Software Transfer
IntDefaultHandler, // ADC1 Sequence 1 IntDefaultHandler, // uDMA Error
IntDefaultHandler, // ADC1 Sequence 2 IntDefaultHandler, // ADC1 Sequence 0
IntDefaultHandler, // ADC1 Sequence 3 IntDefaultHandler, // ADC1 Sequence 1
0, // Reserved IntDefaultHandler, // ADC1 Sequence 2
0, // Reserved IntDefaultHandler, // ADC1 Sequence 3
IntDefaultHandler, // GPIO Port J 0, // Reserved
IntDefaultHandler, // GPIO Port K 0, // Reserved
IntDefaultHandler, // GPIO Port L IntDefaultHandler, // GPIO Port J
IntDefaultHandler, // SSI2 Rx and Tx IntDefaultHandler, // GPIO Port K
IntDefaultHandler, // SSI3 Rx and Tx IntDefaultHandler, // GPIO Port L
IntDefaultHandler, // UART3 Rx and Tx IntDefaultHandler, // SSI2 Rx and Tx
IntDefaultHandler, // UART4 Rx and Tx IntDefaultHandler, // SSI3 Rx and Tx
IntDefaultHandler, // UART5 Rx and Tx IntDefaultHandler, // UART3 Rx and Tx
IntDefaultHandler, // UART6 Rx and Tx IntDefaultHandler, // UART4 Rx and Tx
IntDefaultHandler, // UART7 Rx and Tx IntDefaultHandler, // UART5 Rx and Tx
0, // Reserved IntDefaultHandler, // UART6 Rx and Tx
0, // Reserved IntDefaultHandler, // UART7 Rx and Tx
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
IntDefaultHandler, // I2C2 Master and Slave 0, // Reserved
IntDefaultHandler, // I2C3 Master and Slave 0, // Reserved
IntDefaultHandler, // Timer 4 subtimer A IntDefaultHandler, // I2C2 Master and Slave
IntDefaultHandler, // Timer 4 subtimer B IntDefaultHandler, // I2C3 Master and Slave
0, // Reserved IntDefaultHandler, // Timer 4 subtimer A
0, // Reserved IntDefaultHandler, // Timer 4 subtimer B
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
0, // Reserved 0, // Reserved
IntDefaultHandler, // Timer 5 subtimer A 0, // Reserved
IntDefaultHandler, // Timer 5 subtimer B 0, // Reserved
IntDefaultHandler, // Wide Timer 0 subtimer A IntDefaultHandler, // Timer 5 subtimer A
IntDefaultHandler, // Wide Timer 0 subtimer B IntDefaultHandler, // Timer 5 subtimer B
IntDefaultHandler, // Wide Timer 1 subtimer A IntDefaultHandler, // Wide Timer 0 subtimer A
IntDefaultHandler, // Wide Timer 1 subtimer B IntDefaultHandler, // Wide Timer 0 subtimer B
IntDefaultHandler, // Wide Timer 2 subtimer A IntDefaultHandler, // Wide Timer 1 subtimer A
IntDefaultHandler, // Wide Timer 2 subtimer B IntDefaultHandler, // Wide Timer 1 subtimer B
IntDefaultHandler, // Wide Timer 3 subtimer A IntDefaultHandler, // Wide Timer 2 subtimer A
IntDefaultHandler, // Wide Timer 3 subtimer B IntDefaultHandler, // Wide Timer 2 subtimer B
IntDefaultHandler, // Wide Timer 4 subtimer A IntDefaultHandler, // Wide Timer 3 subtimer A
IntDefaultHandler, // Wide Timer 4 subtimer B IntDefaultHandler, // Wide Timer 3 subtimer B
IntDefaultHandler, // Wide Timer 5 subtimer A IntDefaultHandler, // Wide Timer 4 subtimer A
IntDefaultHandler, // Wide Timer 5 subtimer B IntDefaultHandler, // Wide Timer 4 subtimer B
IntDefaultHandler, // FPU IntDefaultHandler, // Wide Timer 5 subtimer A
0, // Reserved IntDefaultHandler, // Wide Timer 5 subtimer B
0, // Reserved IntDefaultHandler, // FPU
IntDefaultHandler, // I2C4 Master and Slave 0, // Reserved
IntDefaultHandler, // I2C5 Master and Slave 0, // Reserved
IntDefaultHandler, // GPIO Port M IntDefaultHandler, // I2C4 Master and Slave
IntDefaultHandler, // GPIO Port N IntDefaultHandler, // I2C5 Master and Slave
IntDefaultHandler, // Quadrature Encoder 2 IntDefaultHandler, // GPIO Port M
0, // Reserved IntDefaultHandler, // GPIO Port N
0, // Reserved IntDefaultHandler, // Quadrature Encoder 2
IntDefaultHandler, // GPIO Port P (Summary or P0) 0, // Reserved
IntDefaultHandler, // GPIO Port P1 0, // Reserved
IntDefaultHandler, // GPIO Port P2 IntDefaultHandler, // GPIO Port P (Summary or P0)
IntDefaultHandler, // GPIO Port P3 IntDefaultHandler, // GPIO Port P1
IntDefaultHandler, // GPIO Port P4 IntDefaultHandler, // GPIO Port P2
IntDefaultHandler, // GPIO Port P5 IntDefaultHandler, // GPIO Port P3
IntDefaultHandler, // GPIO Port P6 IntDefaultHandler, // GPIO Port P4
IntDefaultHandler, // GPIO Port P7 IntDefaultHandler, // GPIO Port P5
IntDefaultHandler, // GPIO Port Q (Summary or Q0) IntDefaultHandler, // GPIO Port P6
IntDefaultHandler, // GPIO Port Q1 IntDefaultHandler, // GPIO Port P7
IntDefaultHandler, // GPIO Port Q2 IntDefaultHandler, // GPIO Port Q (Summary or Q0)
IntDefaultHandler, // GPIO Port Q3 IntDefaultHandler, // GPIO Port Q1
IntDefaultHandler, // GPIO Port Q4 IntDefaultHandler, // GPIO Port Q2
IntDefaultHandler, // GPIO Port Q5 IntDefaultHandler, // GPIO Port Q3
IntDefaultHandler, // GPIO Port Q6 IntDefaultHandler, // GPIO Port Q4
IntDefaultHandler, // GPIO Port Q7 IntDefaultHandler, // GPIO Port Q5
IntDefaultHandler, // GPIO Port R IntDefaultHandler, // GPIO Port Q6
IntDefaultHandler, // GPIO Port S IntDefaultHandler, // GPIO Port Q7
IntDefaultHandler, // PWM 1 Generator 0 IntDefaultHandler, // GPIO Port R
IntDefaultHandler, // PWM 1 Generator 1 IntDefaultHandler, // GPIO Port S
IntDefaultHandler, // PWM 1 Generator 2 IntDefaultHandler, // PWM 1 Generator 0
IntDefaultHandler, // PWM 1 Generator 3 IntDefaultHandler, // PWM 1 Generator 1
IntDefaultHandler // PWM 1 Fault IntDefaultHandler, // PWM 1 Generator 2
}; IntDefaultHandler, // PWM 1 Generator 3
IntDefaultHandler // PWM 1 Fault
//***************************************************************************** };
//
// This is the code that gets called when the processor first starts execution //*****************************************************************************
// following a reset event. Only the absolutely necessary set is performed, //
// after which the application supplied entry() routine is called. Any fancy // This is the code that gets called when the processor first starts execution
// actions (such as making decisions based on the reset cause register, and // following a reset event. Only the absolutely necessary set is performed,
// resetting the bits in that register) are left solely in the hands of the // after which the application supplied entry() routine is called. Any fancy
// application. // actions (such as making decisions based on the reset cause register, and
// // resetting the bits in that register) are left solely in the hands of the
//***************************************************************************** // application.
void //
ResetISR(void) //*****************************************************************************
{ void
// ResetISR(void)
// Jump to the CCS C initialization routine. This will enable the {
// floating-point unit as well, so that does not need to be done here. //
// // Jump to the CCS C initialization routine. This will enable the
__asm(" .global _c_int00\n" // floating-point unit as well, so that does not need to be done here.
" b.w _c_int00"); //
} __asm(" .global _c_int00\n"
" b.w _c_int00");
//***************************************************************************** }
//
// This is the code that gets called when the processor receives a NMI. This //*****************************************************************************
// simply enters an infinite loop, preserving the system state for examination //
// by a debugger. // This is the code that gets called when the processor receives a NMI. This
// // simply enters an infinite loop, preserving the system state for examination
//***************************************************************************** // by a debugger.
static void //
NmiSR(void) //*****************************************************************************
{ static void
// NmiSR(void)
// Enter an infinite loop. {
// //
while(1) // Enter an infinite loop.
{ //
} while(1)
} {
}
//***************************************************************************** }
//
// This is the code that gets called when the processor receives a fault //*****************************************************************************
// interrupt. This simply enters an infinite loop, preserving the system state //
// for examination by a debugger. // This is the code that gets called when the processor receives a fault
// // interrupt. This simply enters an infinite loop, preserving the system state
//***************************************************************************** // for examination by a debugger.
static void //
FaultISR(void) //*****************************************************************************
{ static void
// FaultISR(void)
// Enter an infinite loop. {
// //
while(1) // Enter an infinite loop.
{ //
} while(1)
} {
}
//***************************************************************************** }
//
// This is the code that gets called when the processor receives an unexpected //*****************************************************************************
// interrupt. This simply enters an infinite loop, preserving the system state //
// for examination by a debugger. // This is the code that gets called when the processor receives an unexpected
// // interrupt. This simply enters an infinite loop, preserving the system state
//***************************************************************************** // for examination by a debugger.
static void //
IntDefaultHandler(void) //*****************************************************************************
{ static void
// IntDefaultHandler(void)
// Go into an infinite loop. {
// //
while(1) // Go into an infinite loop.
{ //
} while(1)
} {
}
}