@ -0,0 +1,745 @@
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* arch/ a r m / s r c / k i n e t i s / k i n e t i s _ v e c t o r s . S
* arch/ a r m / s r c / c h i p / k i n e t i s _ v e c t o r s . S
*
* Copyright ( C ) 2 0 1 1 G r e g o r y N u t t . A l l r i g h t s r e s e r v e d .
* Author : Gregory N u t t < s p u d m o n k e y @racsa.co.cr>
*
* Redistribution a n d u s e i n s o u r c e a n d b i n a r y f o r m s , w i t h o r w i t h o u t
* modification, a r e p e r m i t t e d p r o v i d e d t h a t t h e f o l l o w i n g c o n d i t i o n s
* are m e t :
*
* 1 . Redistributions o f s o u r c e c o d e m u s t r e t a i n t h e a b o v e c o p y r i g h t
* notice, t h i s l i s t o f c o n d i t i o n s a n d t h e f o l l o w i n g d i s c l a i m e r .
* 2 . Redistributions i n b i n a r y f o r m m u s t r e p r o d u c e t h e a b o v e c o p y r i g h t
* notice, t h i s l i s t o f c o n d i t i o n s a n d t h e f o l l o w i n g d i s c l a i m e r i n
* the d o c u m e n t a t i o n a n d / o r o t h e r m a t e r i a l s p r o v i d e d w i t h t h e
* distribution.
* 3 . Neither t h e n a m e N u t t X n o r t h e n a m e s o f i t s c o n t r i b u t o r s m a y b e
* used t o e n d o r s e o r p r o m o t e p r o d u c t s d e r i v e d f r o m t h i s s o f t w a r e
* without s p e c i f i c p r i o r w r i t t e n p e r m i s s i o n .
*
* THIS S O F T W A R E I S P R O V I D E D B Y T H E C O P Y R I G H T H O L D E R S A N D C O N T R I B U T O R S
* " AS I S " A N D A N Y E X P R E S S O R I M P L I E D W A R R A N T I E S , I N C L U D I N G , B U T N O T
* LIMITED T O , T H E I M P L I E D W A R R A N T I E S O F M E R C H A N T A B I L I T Y A N D F I T N E S S
* FOR A P A R T I C U L A R P U R P O S E A R E D I S C L A I M E D . I N N O E V E N T S H A L L T H E
* COPYRIGHT O W N E R O R C O N T R I B U T O R S B E L I A B L E F O R A N Y D I R E C T , I N D I R E C T ,
* INCIDENTAL, S P E C I A L , E X E M P L A R Y , O R C O N S E Q U E N T I A L D A M A G E S ( I N C L U D I N G ,
* BUT N O T L I M I T E D T O , P R O C U R E M E N T O F S U B S T I T U T E G O O D S O R S E R V I C E S ; LOSS
* OF U S E , D A T A , O R P R O F I T S ; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND O N A N Y T H E O R Y O F L I A B I L I T Y , W H E T H E R I N C O N T R A C T , S T R I C T
* LIABILITY, O R T O R T ( I N C L U D I N G N E G L I G E N C E O R O T H E R W I S E ) A R I S I N G I N
* ANY W A Y O U T O F T H E U S E O F T H I S S O F T W A R E , E V E N I F A D V I S E D O F T H E
* POSSIBILITY O F S U C H D A M A G E .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Included F i l e s
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
# include < n u t t x / c o n f i g . h >
# include < a r c h / i r q . h >
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Preprocessor D e f i n i t i o n s
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
# define K I N E T I S _ F L A S H _ B A S E 0 x00 0 0 0 0 0 0 / * – 0 x0 f f f f f f f P r o g r a m f l a s h a n d r e a d -
define K I N E T I S _ S R A M L _ B A S E 0 0 0 0 / * – 0 x1 f f f f f f f S R A M _ L : L o w e r S R A M
* ( ICODE/ D C O D E ) * /
/ * Memory M a p :
*
* 0x0000 : 0 0 0 0 - Beginning o f F L A S H . A d d r e s s o f v e c t o r s
* 0x1800 : 0 0 0 0 - Start o f C P U S R A M a n d s t a r t o f . d a t a ( _ s d a t a )
* - End o f . d a t a ( _ e d a t a ) a n d s t a r t o f . b s s ( _ s b s s )
* - End o f . b s s ( _ e b s s ) a n d b o t t o m o f i d l e s t a c k
* - _ ebss + C O N F I G _ I D L E T H R E A D _ S T A C K S I Z E = e n d o f i d l e s t a c k , s t a r t o f h e a p . N O T E
* that t h e A R M u s e s a d e c r e m e n t b e f o r e s t o r e s t a c k s o t h a t t h e c o r r e c t i n i t i a l
* value i s t h e e n d o f t h e s t a c k + 4 ;
* - Heap e n d s a t t h e c o n f i g u r e d e n d o f S R A M .
* /
# define I D L E _ S T A C K ( _ e b s s + C O N F I G _ I D L E T H R E A D _ S T A C K S I Z E )
# define H E A P _ B A S E ( _ e b s s + C O N F I G _ I D L E T H R E A D _ S T A C K S I Z E )
/ * The C o r t e x - M 4 r e t u r n f r o m i n t e r r u p t i s u n u s u a l . W e p r o v i d e t h e f o l l o w i n g s p e c i a l
* address t o t h e B X i n s t r u c t i o n . T h e p a r t i c u l a r v a l u e a l s o f o r c e s a r e t u r n t o
* thread m o d e a n d c o v e r s s t a t e f r o m t h e m a i n s t a c k p o i n t , t h e M S P ( v s . t h e M S P ) .
* /
# define E X C _ R E T U R N 0 x f f f f f f f9
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Global S y m b o l s
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
.globl __start
.syntax unified
.thumb
.file " kinetis_ v e c t o r s . S "
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Macros
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
/ * On e n t r y i n t o a n I R Q , t h e h a r d w a r e a u t o m a t i c a l l y s a v e s t h e x P S R , P C , L R , R 1 2 , R 0 - R 3
* registers o n t h e s t a c k , t h e n b r a n c h e s t o a n i n s t a n t a n t i a t i o n o f t h e f o l l o w i n g
* macro. T h i s m a c r o s i m p l y l o a d s t h e I R Q n u m b e r i n t o R 0 , t h e n j u m p s t o t h e c o m m o n
* IRQ h a n d l i n g l o g i c .
* /
.macro HANDLER, l a b e l , i r q n o
.thumb_func
\ label :
mov r0 , #\ i r q n o
b k i n e t i s _ c o m m o n
.endm
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Vectors
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
.section .vectors , " ax"
.code 16
.align 2
.globl kinetis_vectors
.type kinetis_ v e c t o r s , f u n c t i o n
kinetis_vectors :
/* Processor Exceptions *************************************************************************/
.word IDLE_STACK /* Vector 0: Reset stack pointer */
.word __start /* Vector 1: Reset vector */
.word kinetis_nmi /* Vector 2: Non-Maskable Interrupt (NMI) */
.word kinetis_hardfault /* Vector 3: Hard fault */
.word kinetis_mpu /* Vector 4: Memory management (MPU) */
.word kinetis_busfault /* Vector 5: Bus fault */
.word kinetis_usagefault /* Vector 6: Usage fault */
.word kinetis_reserved /* Vector 7: Reserved */
.word kinetis_reserved /* Vector 8: Reserved */
.word kinetis_reserved /* Vector 9: Reserved */
.word kinetis_reserved /* Vector 10: Reserved */
.word kinetis_svcall /* Vector 11: SVC call */
.word kinetis_dbgmonitor /* Vector 12: Debug monitor */
.word kinetis_reserved /* Vector 13: Reserved */
.word kinetis_pendsv /* Vector 14: Pendable system service request */
.word kinetis_systick /* Vector 15: System tick */
/* External Interrupts **************************************************************************/
/ * K4 0 F a m i l y * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* The i n t e r r u p t v e c t o r s f o r t h e f o l l o w i n g p a r t s i s d e f i n e d i n F r e e s c a l e d o c u m e n t
* K4 0 P 1 4 4 M 1 0 0 S F 2 R M
* /
# if d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 1 2 8 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 1 2 8 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 2 5 6 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 2 5 6 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 4 0 N 5 1 2 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 N 5 1 2 V M D 1 0 0 )
.word kinetis_dmach0 /* Vector 16: DMA channel 0 transfer complete */
.word kinetis_dmach1 /* Vector 17: DMA channel 1 transfer complete */
.word kinetis_dmach2 /* Vector 18: DMA channel 2 transfer complete */
.word kinetis_dmach3 /* Vector 19: DMA channel 3 transfer complete */
.word kinetis_dmach4 /* Vector 20: DMA channel 4 transfer complete */
.word kinetis_dmach5 /* Vector 21: DMA channel 5 transfer complete */
.word kinetis_dmach6 /* Vector 22: DMA channel 6 transfer complete */
.word kinetis_dmach7 /* Vector 23: DMA channel 7 transfer complete */
.word kinetis_dmach8 /* Vector 24: DMA channel 8 transfer complete */
.word kinetis_dmach9 /* Vector 25: DMA channel 9 transfer complete */
.word kinetis_dmach10 /* Vector 26: DMA channel 10 transfer complete */
.word kinetis_dmach11 /* Vector 27: DMA channel 11 transfer complete */
.word kinetis_dmach12 /* Vector 28: DMA channel 12 transfer complete */
.word kinetis_dmach13 /* Vector 29: DMA channel 13 transfer complete */
.word kinetis_dmach14 /* Vector 30: DMA channel 14 transfer complete */
.word kinetis_dmach15 /* Vector 31: DMA channel 15 transfer complete */
.word kinetis_dmaerr /* Vector 32: DMA error interrupt channels 0-15 */
.word kinetis_mcm /* Vector 33: MCM Normal interrupt */
.word kinetis_flashcc /* Vector 34: Flash memory command complete */
.word kinetis_flashrc /* Vector 35: Flash memory read collision */
.word kinetis_smclvd /* Vector 36: Mode Controller low-voltage detect, low-voltage warning */
.word kinetis_llwu /* Vector 37: LLWU Normal Low Leakage Wakeup */
.word kinetis_wdog /* Vector 38: Watchdog */
.word kinetis_reserved /* Vector 39: Reserved */
.word kinetis_i2c0 /* Vector 40: I2C0 */
.word kinetis_i2c1 /* Vector 41: I2C1 */
.word kinetis_spi0 /* Vector 42: SPI0 all sources */
.word kinetis_spi1 /* Vector 43: SPI1 all sources */
.word kinetis_spi2 /* Vector 44: SPI2 all sources */
.word kinetis_can0mb /* Vector 45: CAN0 OR'ed Message buffer (0-15) */
.word kinetis_can0bo /* Vector 46: CAN0 Bus Off */
.word kinetis_can0err /* Vector 47: CAN0 Error */
.word kinetis_can0tw /* Vector 48: CAN0 Transmit Warning */
.word kinetis_can0rw /* Vector 49: CAN0 Receive Warning */
.word kinetis_can0wu /* Vector 50: CAN0 Wake UP */
.word kinetis_reserved /* Vector 51: Reserved */
.word kinetis_reserved /* Vector 52: Reserved */
.word kinetis_can1mb /* Vector 53: CAN1 OR'ed Message buffer (0-15) */
.word kinetis_can1bo /* Vector 54: CAN1 Bus Off */
.word kinetis_can1err /* Vector 55: CAN1 Error */
.word kinetis_can1tw /* Vector 56: CAN1 Transmit Warning */
.word kinetis_can1rw /* Vector 57: CAN1 Receive Warning */
.word kinetis_can1wu /* Vector 58: CAN1 Wake UP */
.word kinetis_reserved /* Vector 59: Reserved */
.word kinetis_reserved /* Vector 60: Reserved */
.word kinetis_uart0s /* Vector 61: UART0 status */
.word kinetis_uart0e /* Vector 62: UART0 error */
.word kinetis_uart1s /* Vector 63: UART1 status */
.word kinetis_uart1e /* Vector 64: UART1 error */
.word kinetis_uart2s /* Vector 65: UART2 status */
.word kinetis_uart2e /* Vector 66: UART2 error */
.word kinetis_uart3s /* Vector 67: UART3 status */
.word kinetis_uart3e /* Vector 68: UART3 error */
.word kinetis_uart4s /* Vector 69: UART4 status */
.word kinetis_uart4e /* Vector 70: UART4 error */
.word kinetis_uart5s /* Vector 71: UART5 status */
.word kinetis_uart5e /* Vector 72: UART5 error */
.word kinetis_adc0 /* Vector 73: ADC0 */
.word kinetis_adc1 /* Vector 74: ADC1 */
.word kinetis_cmp0 /* Vector 75: CMP0 */
.word kinetis_cmp1 /* Vector 76: CMP1 */
.word kinetis_cmp2 /* Vector 77: CMP2 */
.word kinetis_ftm0 /* Vector 78: FTM0 all sources */
.word kinetis_ftm1 /* Vector 79: FTM1 all sources */
.word kinetis_ftm2 /* Vector 80: FTM2 all sources */
.word kinetis_cmt /* Vector 81: CMT */
.word kinetis_rtc /* Vector 82: RTC alarm interrupt */
.word kinetis_reserved /* Vector 83: Reserved */
.word kinetis_pitch0 /* Vector 84: PIT channel 0 */
.word kinetis_pitch1 /* Vector 85: PIT channel 1 */
.word kinetis_pitch2 /* Vector 86: PIT channel 2 */
.word kinetis_pitch3 /* Vector 87: PIT channel 3 */
.word kinetis_pdb /* Vector 88: PDB */
.word kinetis_usbotg /* Vector 88: USB OTG */
.word kinetis_usbcd /* Vector 90: USB charger detect */
.word kinetis_reserved /* Vector 91: Reserved */
.word kinetis_reserved /* Vector 92: Reserved */
.word kinetis_reserved /* Vector 93: Reserved */
.word kinetis_reserved /* Vector 94: Reserved */
.word kinetis_i2s0 /* Vector 95: I2S0 */
.word kinetis_sdhc /* Vector 96: SDHC */
.word kinetis_dac0 /* Vector 97: DAC0 */
.word kinetis_dac1 /* Vector 98: DAC1 */
.word kinetis_tsi /* Vector 97: TSI all sources */
.word kinetis_mcg /* Vector 100: MCG */
.word kinetis_lpt /* Vector 101: Low power timer */
.word kinetis_slcd /* Vector 102: Segment LCD all sources */
.word kinetis_porta /* Vector 103: Pin detect port A */
.word kinetis_portb /* Vector 104: Pin detect port B */
.word kinetis_portc /* Vector 105: Pin detect port C */
.word kinetis_portd /* Vector 106: Pin detect port D */
.word kinetis_porte /* Vector 107: Pin detect port E */
.word kinetis_reserved /* Vector 108: Reserved */
.word kinetis_reserved /* Vector 109: Reserved */
.word kinetis_swi /* Vector 110: Software interrupt */
/ * K6 0 F a m i l y * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* The m e m o r y m a p f o r t h e f o l l o w i n g p a r t s i s d e f i n e d i n F r e e s c a l e d o c u m e n t
* K6 0 P 1 4 4 M 1 0 0 S F 2 R M
* /
# elif d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 2 5 6 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 X 2 5 6 V L Q 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 5 1 2 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 2 5 6 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 6 0 X 2 5 6 V M D 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 5 1 2 V M D 1 0 0 )
.word kinetis_dmach0 /* Vector 16: DMA channel 0 transfer complete */
.word kinetis_dmach1 /* Vector 17: DMA channel 1 transfer complete */
.word kinetis_dmach2 /* Vector 18: DMA channel 2 transfer complete */
.word kinetis_dmach3 /* Vector 19: DMA channel 3 transfer complete */
.word kinetis_dmach4 /* Vector 20: DMA channel 4 transfer complete */
.word kinetis_dmach5 /* Vector 21: DMA channel 5 transfer complete */
.word kinetis_dmach6 /* Vector 22: DMA channel 6 transfer complete */
.word kinetis_dmach7 /* Vector 23: DMA channel 7 transfer complete */
.word kinetis_dmach8 /* Vector 24: DMA channel 8 transfer complete */
.word kinetis_dmach9 /* Vector 25: DMA channel 9 transfer complete */
.word kinetis_dmach10 /* Vector 26: DMA channel 10 transfer complete */
.word kinetis_dmach11 /* Vector 27: DMA channel 11 transfer complete */
.word kinetis_dmach12 /* Vector 28: DMA channel 12 transfer complete */
.word kinetis_dmach13 /* Vector 29: DMA channel 13 transfer complete */
.word kinetis_dmach14 /* Vector 30: DMA channel 14 transfer complete */
.word kinetis_dmach15 /* Vector 31: DMA channel 15 transfer complete */
.word kinetis_dmaerr /* Vector 32: DMA error interrupt channels 0-15 */
.word kinetis_mcm /* Vector 33: MCM Normal interrupt */
.word kinetis_flashcc /* Vector 34: Flash memory command complete */
.word kinetis_flashrc /* Vector 35: Flash memory read collision */
.word kinetis_smclvd /* Vector 36: Mode Controller low-voltage detect, low-voltage warning */
.word kinetis_llwu /* Vector 37: LLWU Normal Low Leakage Wakeup */
.word kinetis_wdog /* Vector 38: Watchdog */
.word kinetis_rngb /* Vector 39: Random number generator */
.word kinetis_i2c0 /* Vector 40: I2C0 */
.word kinetis_i2c1 /* Vector 41: I2C1 */
.word kinetis_spi0 /* Vector 42: SPI0 all sources */
.word kinetis_spi1 /* Vector 43: SPI1 all sources */
.word kinetis_spi2 /* Vector 44: SPI2 all sources */
.word kinetis_can0mb /* Vector 45: CAN0 OR'ed Message buffer (0-15) */
.word kinetis_can0bo /* Vector 46: CAN0 Bus Off */
.word kinetis_can0err /* Vector 47: CAN0 Error */
.word kinetis_can0tw /* Vector 48: CAN0 Transmit Warning */
.word kinetis_can0rw /* Vector 49: CAN0 Receive Warning */
.word kinetis_can0wu /* Vector 50: CAN0 Wake UP */
.word kinetis_reserved /* Vector 51: Reserved */
.word kinetis_reserved /* Vector 52: Reserved */
.word kinetis_can1mb /* Vector 53: CAN1 OR'ed Message buffer (0-15) */
.word kinetis_can1bo /* Vector 54: CAN1 Bus Off */
.word kinetis_can1err /* Vector 55: CAN1 Error */
.word kinetis_can1tw /* Vector 56: CAN1 Transmit Warning */
.word kinetis_can1rw /* Vector 57: CAN1 Receive Warning */
.word kinetis_can1wu /* Vector 58: CAN1 Wake UP */
.word kinetis_reserved /* Vector 59: Reserved */
.word kinetis_reserved /* Vector 60: Reserved */
.word kinetis_uart0s /* Vector 61: UART0 status */
.word kinetis_uart0e /* Vector 62: UART0 error */
.word kinetis_uart1s /* Vector 63: UART1 status */
.word kinetis_uart1e /* Vector 64: UART1 error */
.word kinetis_uart2s /* Vector 65: UART2 status */
.word kinetis_uart2e /* Vector 66: UART2 error */
.word kinetis_uart3s /* Vector 67: UART3 status */
.word kinetis_uart3e /* Vector 68: UART3 error */
.word kinetis_uart4s /* Vector 69: UART4 status */
.word kinetis_uart4e /* Vector 70: UART4 error */
.word kinetis_uart5s /* Vector 71: UART5 status */
.word kinetis_uart5e /* Vector 72: UART5 error */
.word kinetis_adc0 /* Vector 73: ADC0 */
.word kinetis_adc1 /* Vector 74: ADC1 */
.word kinetis_cmp0 /* Vector 75: CMP0 */
.word kinetis_cmp1 /* Vector 76: CMP1 */
.word kinetis_cmp2 /* Vector 77: CMP2 */
.word kinetis_ftm0 /* Vector 78: FTM0 all sources */
.word kinetis_ftm1 /* Vector 79: FTM1 all sources */
.word kinetis_ftm2 /* Vector 80: FTM2 all sources */
.word kinetis_cmt /* Vector 81: CMT */
.word kinetis_rtc /* Vector 82: RTC alarm interrupt */
.word kinetis_reserved /* Vector 83: Reserved */
.word kinetis_pitch0 /* Vector 84: PIT channel 0 */
.word kinetis_pitch1 /* Vector 85: PIT channel 1 */
.word kinetis_pitch2 /* Vector 86: PIT channel 2 */
.word kinetis_pitch3 /* Vector 87: PIT channel 3 */
.word kinetis_pdb /* Vector 88: PDB */
.word kinetis_usbotg /* Vector 88: USB OTG */
.word kinetis_usbcd /* Vector 90: USB charger detect */
.word kinetis_emactmr /* Vector 91: Ethernet MAC IEEE 1588 timer interrupt */
.word kinetis_emactx /* Vector 92: Ethernet MAC transmit interrupt */
.word kinetis_emacrx /* Vector 93: Ethernet MAC receive interrupt */
.word kinetis_emacmisc /* Vector 94: Ethernet MAC error and misc interrupt */
.word kinetis_i2s0 /* Vector 95: I2S0 */
.word kinetis_sdhc /* Vector 96: SDHC */
.word kinetis_dac0 /* Vector 97: DAC0 */
.word kinetis_dac1 /* Vector 98: DAC1 */
.word kinetis_tsi /* Vector 97: TSI all sources */
.word kinetis_mcg /* Vector 100: MCG */
.word kinetis_lpt /* Vector 101: Low power timer */
.word kinetis_reserved /* Vector 102: Reserved */
.word kinetis_porta /* Vector 103: Pin detect port A */
.word kinetis_portb /* Vector 104: Pin detect port B */
.word kinetis_portc /* Vector 105: Pin detect port C */
.word kinetis_portd /* Vector 106: Pin detect port D */
.word kinetis_porte /* Vector 107: Pin detect port E */
.word kinetis_reserved /* Vector 108: Reserved */
.word kinetis_reserved /* Vector 109: Reserved */
.word kinetis_reserved /* Vector 110: Reserved */
.word kinetis_reserved /* Vector 111: Reserved */
.word kinetis_reserved /* Vector 112: Reserved */
.word kinetis_reserved /* Vector 113: Reserved */
.word kinetis_reserved /* Vector 114: Reserved */
.word kinetis_reserved /* Vector 115: Reserved */
.word kinetis_reserved /* Vector 116: Reserved */
.word kinetis_reserved /* Vector 117: Reserved */
.word kinetis_reserved /* Vector 118: Reserved */
.word kinetis_reserved /* Vector 119: Reserved */
# else
# error " N o v e c t o r s f o r t h i s K i n e t i s p a r t "
# endif
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* .text
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
.text
.type handlers, f u n c t i o n
.thumb_func
handlers :
/* Processor Exceptions *************************************************************************/
HANDLER k i n e t i s _ r e s e r v e d , K I N E T I S _ I R Q _ R E S E R V E D / * U n e x p e c t e d / r e s e r v e d v e c t o r * /
HANDLER k i n e t i s _ n m i , K I N E T I S _ I R Q _ N M I / * V e c t o r 2 : N o n - M a s k a b l e I n t e r r u p t ( N M I ) * /
HANDLER k i n e t i s _ h a r d f a u l t , K I N E T I S _ I R Q _ H A R D F A U L T / * V e c t o r 3 : H a r d f a u l t * /
HANDLER k i n e t i s _ m p u , K I N E T I S _ I R Q _ M E M F A U L T / * V e c t o r 4 : M e m o r y m a n a g e m e n t ( M P U ) * /
HANDLER k i n e t i s _ b u s f a u l t , K I N E T I S _ I R Q _ B U S F A U L T / * V e c t o r 5 : B u s f a u l t * /
HANDLER k i n e t i s _ u s a g e f a u l t , K I N E T I S _ I R Q _ U S A G E F A U L T / * V e c t o r 6 : U s a g e f a u l t * /
HANDLER k i n e t i s _ s v c a l l , K I N E T I S _ I R Q _ S V C A L L / * V e c t o r 1 1 : S V C c a l l * /
HANDLER k i n e t i s _ d b g m o n i t o r , K I N E T I S _ I R Q _ D B G M O N I T O R / * V e c t o r 1 2 : D e b u g M o n i t o r * /
HANDLER k i n e t i s _ p e n d s v , K I N E T I S _ I R Q _ P E N D S V / * V e c t o r 1 4 : P e n a b l e s y s t e m s e r v i c e r e q u e s t * /
HANDLER k i n e t i s _ s y s t i c k , K I N E T I S _ I R Q _ S Y S T I C K / * V e c t o r 1 5 : S y s t e m t i c k * /
/* External Interrupts **************************************************************************/
/ * K4 0 F a m i l y * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* The i n t e r r u p t v e c t o r s f o r t h e f o l l o w i n g p a r t s i s d e f i n e d i n F r e e s c a l e d o c u m e n t
* K4 0 P 1 4 4 M 1 0 0 S F 2 R M
* /
# if d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 1 2 8 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 1 2 8 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 2 5 6 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 X 2 5 6 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 4 0 N 5 1 2 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 4 0 N 5 1 2 V M D 1 0 0 )
HANDLER k i n e t i s _ d m a c h0 , K I N E T I S _ I R Q _ D M A C H 0 / * V e c t o r 1 6 : D M A c h a n n e l 0 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h1 , K I N E T I S _ I R Q _ D M A C H 1 / * V e c t o r 1 7 : D M A c h a n n e l 1 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h2 , K I N E T I S _ I R Q _ D M A C H 2 / * V e c t o r 1 8 : D M A c h a n n e l 2 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h3 , K I N E T I S _ I R Q _ D M A C H 3 / * V e c t o r 1 9 : D M A c h a n n e l 3 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h4 , K I N E T I S _ I R Q _ D M A C H 4 / * V e c t o r 2 0 : D M A c h a n n e l 4 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h5 , K I N E T I S _ I R Q _ D M A C H 5 / * V e c t o r 2 1 : D M A c h a n n e l 5 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h6 , K I N E T I S _ I R Q _ D M A C H 6 / * V e c t o r 2 2 : D M A c h a n n e l 6 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h7 , K I N E T I S _ I R Q _ D M A C H 7 / * V e c t o r 2 3 : D M A c h a n n e l 7 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h8 , K I N E T I S _ I R Q _ D M A C H 8 / * V e c t o r 2 4 : D M A c h a n n e l 8 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h9 , K I N E T I S _ I R Q _ D M A C H 9 / * V e c t o r 2 5 : D M A c h a n n e l 9 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h10 , K I N E T I S _ I R Q _ D M A C H 1 0 / * V e c t o r 2 6 : D M A c h a n n e l 1 0 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h11 , K I N E T I S _ I R Q _ D M A C H 1 1 / * V e c t o r 2 7 : D M A c h a n n e l 1 1 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h12 , K I N E T I S _ I R Q _ D M A C H 1 2 / * V e c t o r 2 8 : D M A c h a n n e l 1 2 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h13 , K I N E T I S _ I R Q _ D M A C H 1 3 / * V e c t o r 2 9 : D M A c h a n n e l 1 3 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h14 , K I N E T I S _ I R Q _ D M A C H 1 4 / * V e c t o r 3 0 : D M A c h a n n e l 1 4 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h15 , K I N E T I S _ I R Q _ D M A C H 1 5 / * V e c t o r 3 1 : D M A c h a n n e l 1 5 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a e r r , K I N E T I S _ I R Q _ D M A E R R / * V e c t o r 3 2 : D M A e r r o r i n t e r r u p t c h a n n e l s 0 - 1 5 * /
HANDLER k i n e t i s _ m c m , K I N E T I S _ I R Q _ M C M / * V e c t o r 3 3 : M C M N o r m a l i n t e r r u p t * /
HANDLER k i n e t i s _ f l a s h c c , K I N E T I S _ I R Q _ F L A S H C C / * V e c t o r 3 4 : F l a s h m e m o r y c o m m a n d c o m p l e t e * /
HANDLER k i n e t i s _ f l a s h r c , K I N E T I S _ I R Q _ F L A S H R C / * V e c t o r 3 5 : F l a s h m e m o r y r e a d c o l l i s i o n * /
HANDLER k i n e t i s _ s m c l v d , K I N E T I S _ I R Q _ S M C L V D / * V e c t o r 3 6 : M o d e C o n t r o l l e r l o w - v o l t a g e d e t e c t , l o w - v o l t a g e w a r n i n g * /
HANDLER k i n e t i s _ l l w u , K I N E T I S _ I R Q _ L L W U / * V e c t o r 3 7 : L L W U N o r m a l L o w L e a k a g e W a k e u p * /
HANDLER k i n e t i s _ w d o g , K I N E T I S _ I R Q _ W D O G / * V e c t o r 3 8 : W a t c h d o g * /
HANDLER k i n e t i s _ i 2 c0 , K I N E T I S _ I R Q _ I 2 C 0 / * V e c t o r 4 0 : I 2 C 0 * /
HANDLER k i n e t i s _ i 2 c1 , K I N E T I S _ I R Q _ I 2 C 1 / * V e c t o r 4 1 : I 2 C 1 * /
HANDLER k i n e t i s _ s p i 0 , K I N E T I S _ I R Q _ S P I 0 / * V e c t o r 4 2 : S P I 0 a l l s o u r c e s * /
HANDLER k i n e t i s _ s p i 1 , K I N E T I S _ I R Q _ S P I 1 / * V e c t o r 4 3 : S P I 1 a l l s o u r c e s * /
HANDLER k i n e t i s _ s p i 2 , K I N E T I S _ I R Q _ S P I 2 / * V e c t o r 4 4 : S P I 2 a l l s o u r c e s * /
HANDLER k i n e t i s _ c a n 0 m b , K I N E T I S _ I R Q _ C A N 0 M B / * V e c t o r 4 5 : C A N 0 O R ' e d M e s s a g e b u f f e r ( 0 - 1 5 ) * /
HANDLER k i n e t i s _ c a n 0 b o , K I N E T I S _ I R Q _ C A N 0 B O / * V e c t o r 4 6 : C A N 0 B u s O f f * /
HANDLER k i n e t i s _ c a n 0 e r r , K I N E T I S _ I R Q _ C A N 0 E R R / * V e c t o r 4 7 : C A N 0 E r r o r * /
HANDLER k i n e t i s _ c a n 0 t w , K I N E T I S _ I R Q _ C A N 0 T W / * V e c t o r 4 8 : C A N 0 T r a n s m i t W a r n i n g * /
HANDLER k i n e t i s _ c a n 0 r w , K I N E T I S _ I R Q _ C A N 0 R W / * V e c t o r 4 9 : C A N 0 R e c e i v e W a r n i n g * /
HANDLER k i n e t i s _ c a n 0 w u , K I N E T I S _ I R Q _ C A N 0 W U / * V e c t o r 5 0 : C A N 0 W a k e U P * /
HANDLER k i n e t i s _ c a n 1 m b , K I N E T I S _ I R Q _ C A N 1 M B / * V e c t o r 5 3 : C A N 1 O R ' e d M e s s a g e b u f f e r ( 0 - 1 5 ) * /
HANDLER k i n e t i s _ c a n 1 b o , K I N E T I S _ I R Q _ C A N 1 B O / * V e c t o r 5 4 : C A N 1 B u s O f f * /
HANDLER k i n e t i s _ c a n 1 e r r , K I N E T I S _ I R Q _ C A N 1 E R R / * V e c t o r 5 5 : C A N 1 E r r o r * /
HANDLER k i n e t i s _ c a n 1 t w , K I N E T I S _ I R Q _ C A N 1 T W / * V e c t o r 5 6 : C A N 1 T r a n s m i t W a r n i n g * /
HANDLER k i n e t i s _ c a n 1 r w , K I N E T I S _ I R Q _ C A N 1 R W / * V e c t o r 5 7 : C A N 1 R e c e i v e W a r n i n g * /
HANDLER k i n e t i s _ c a n 1 w u , K I N E T I S _ I R Q _ C A N 1 W U / * V e c t o r 5 8 : C A N 1 W a k e U P * /
HANDLER k i n e t i s _ u a r t 0 s , K I N E T I S _ I R Q _ U A R T 0 S / * V e c t o r 6 1 : U A R T 0 s t a t u s * /
HANDLER k i n e t i s _ u a r t 0 e , K I N E T I S _ I R Q _ U A R T 0 E / * V e c t o r 6 2 : U A R T 0 e r r o r * /
HANDLER k i n e t i s _ u a r t 1 s , K I N E T I S _ I R Q _ U A R T 1 S / * V e c t o r 6 3 : U A R T 1 s t a t u s * /
HANDLER k i n e t i s _ u a r t 1 e , K I N E T I S _ I R Q _ U A R T 1 E / * V e c t o r 6 4 : U A R T 1 e r r o r * /
HANDLER k i n e t i s _ u a r t 2 s , K I N E T I S _ I R Q _ U A R T 2 S / * V e c t o r 6 5 : U A R T 2 s t a t u s * /
HANDLER k i n e t i s _ u a r t 2 e , K I N E T I S _ I R Q _ U A R T 2 E / * V e c t o r 6 6 : U A R T 2 e r r o r * /
HANDLER k i n e t i s _ u a r t 3 s , K I N E T I S _ I R Q _ U A R T 3 S / * V e c t o r 6 7 : U A R T 3 s t a t u s * /
HANDLER k i n e t i s _ u a r t 3 e , K I N E T I S _ I R Q _ U A R T 3 E / * V e c t o r 6 8 : U A R T 3 e r r o r * /
HANDLER k i n e t i s _ u a r t 4 s , K I N E T I S _ I R Q _ U A R T 4 S / * V e c t o r 6 9 : U A R T 4 s t a t u s * /
HANDLER k i n e t i s _ u a r t 4 e , K I N E T I S _ I R Q _ U A R T 4 E / * V e c t o r 7 0 : U A R T 4 e r r o r * /
HANDLER k i n e t i s _ u a r t 5 s , K I N E T I S _ I R Q _ U A R T 5 S / * V e c t o r 7 1 : U A R T 5 s t a t u s * /
HANDLER k i n e t i s _ u a r t 5 e , K I N E T I S _ I R Q _ U A R T 5 E / * V e c t o r 7 2 : U A R T 5 e r r o r * /
HANDLER k i n e t i s _ a d c0 , K I N E T I S _ I R Q _ A D C 0 / * V e c t o r 7 3 : A D C 0 * /
HANDLER k i n e t i s _ a d c1 , K I N E T I S _ I R Q _ A D C 1 / * V e c t o r 7 4 : A D C 1 * /
HANDLER k i n e t i s _ c m p0 , K I N E T I S _ I R Q _ C M P 0 / * V e c t o r 7 5 : C M P 0 * /
HANDLER k i n e t i s _ c m p1 , K I N E T I S _ I R Q _ C M P 1 / * V e c t o r 7 6 : C M P 1 * /
HANDLER k i n e t i s _ c m p2 , K I N E T I S _ I R Q _ C M P 2 / * V e c t o r 7 7 : C M P 2 * /
HANDLER k i n e t i s _ f t m 0 , K I N E T I S _ I R Q _ F T M 0 / * V e c t o r 7 8 : F T M 0 a l l s o u r c e s * /
HANDLER k i n e t i s _ f t m 1 , K I N E T I S _ I R Q _ F T M 1 / * V e c t o r 7 9 : F T M 1 a l l s o u r c e s * /
HANDLER k i n e t i s _ f t m 2 , K I N E T I S _ I R Q _ F T M 2 / * V e c t o r 8 0 : F T M 2 a l l s o u r c e s * /
HANDLER k i n e t i s _ c m t , K I N E T I S _ I R Q _ C M T / * V e c t o r 8 1 : C M T * /
HANDLER k i n e t i s _ r t c , K I N E T I S _ I R Q _ R T C / * V e c t o r 8 2 : R T C a l a r m i n t e r r u p t * /
HANDLER k i n e t i s _ p i t c h0 , K I N E T I S _ I R Q _ P I T C H 0 / * V e c t o r 8 4 : P I T c h a n n e l 0 * /
HANDLER k i n e t i s _ p i t c h1 , K I N E T I S _ I R Q _ P I T C H 1 / * V e c t o r 8 5 : P I T c h a n n e l 1 * /
HANDLER k i n e t i s _ p i t c h2 , K I N E T I S _ I R Q _ P I T C H 2 / * V e c t o r 8 6 : P I T c h a n n e l 2 * /
HANDLER k i n e t i s _ p i t c h3 , K I N E T I S _ I R Q _ P I T C H 3 / * V e c t o r 8 7 : P I T c h a n n e l 3 * /
HANDLER k i n e t i s _ p d b , K I N E T I S _ I R Q _ P D B / * V e c t o r 8 8 : P D B * /
HANDLER k i n e t i s _ u s b o t g , K I N E T I S _ I R Q _ U S B O T G / * V e c t o r 8 8 : U S B O T G * /
HANDLER k i n e t i s _ u s b c d , K I N E T I S _ I R Q _ U S B C D / * V e c t o r 9 0 : U S B c h a r g e r d e t e c t * /
HANDLER k i n e t i s _ i 2 s0 , K I N E T I S _ I R Q _ I 2 S 0 / * V e c t o r 9 5 : I 2 S 0 * /
HANDLER k i n e t i s _ s d h c , K I N E T I S _ I R Q _ S D H C / * V e c t o r 9 6 : S D H C * /
HANDLER k i n e t i s _ d a c0 , K I N E T I S _ I R Q _ D A C 0 / * V e c t o r 9 7 : D A C 0 * /
HANDLER k i n e t i s _ d a c1 , K I N E T I S _ I R Q _ D A C 1 / * V e c t o r 9 8 : D A C 1 * /
HANDLER k i n e t i s _ t s i , K I N E T I S _ I R Q _ T S I / * V e c t o r 9 7 : T S I a l l s o u r c e s * /
HANDLER k i n e t i s _ m c g , K I N E T I S _ I R Q _ M C G / * V e c t o r 1 0 0 : M C G * /
HANDLER k i n e t i s _ l p t , K I N E T I S _ I R Q _ L P T / * V e c t o r 1 0 1 : L o w p o w e r t i m e r * /
HANDLER k i n e t i s _ s l c d , K I N E T I S _ I R Q _ S L C D / * V e c t o r 1 0 2 : S e g m e n t L C D a l l s o u r c e s * /
HANDLER k i n e t i s _ p o r t a , K I N E T I S _ I R Q _ P O R T A / * V e c t o r 1 0 3 : P i n d e t e c t p o r t A * /
HANDLER k i n e t i s _ p o r t b , K I N E T I S _ I R Q _ P O R T B / * V e c t o r 1 0 4 : P i n d e t e c t p o r t B * /
HANDLER k i n e t i s _ p o r t c , K I N E T I S _ I R Q _ P O R T C / * V e c t o r 1 0 5 : P i n d e t e c t p o r t C * /
HANDLER k i n e t i s _ p o r t d , K I N E T I S _ I R Q _ P O R T D / * V e c t o r 1 0 6 : P i n d e t e c t p o r t D * /
HANDLER k i n e t i s _ p o r t e , K I N E T I S _ I R Q _ P O R T E / * V e c t o r 1 0 7 : P i n d e t e c t p o r t E * /
HANDLER k i n e t i s _ s w i , K I N E T I S _ I R Q _ S W I / * V e c t o r 1 1 0 : S o f t w a r e i n t e r r u p t * /
/ * K6 0 F a m i l y * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* The m e m o r y m a p f o r t h e f o l l o w i n g p a r t s i s d e f i n e d i n F r e e s c a l e d o c u m e n t
* K6 0 P 1 4 4 M 1 0 0 S F 2 R M
* /
# elif d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 2 5 6 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 X 2 5 6 V L Q 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 5 1 2 V L Q 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 2 5 6 V M D 1 0 0 ) | | \
defined( C O N F I G _ A R C H _ C H I P _ M K 6 0 X 2 5 6 V M D 1 0 0 ) | | d e f i n e d ( C O N F I G _ A R C H _ C H I P _ M K 6 0 N 5 1 2 V M D 1 0 0 )
HANDLER k i n e t i s _ d m a c h0 , K I N E T I S _ I R Q _ D M A C H 0 / * V e c t o r 1 6 : D M A c h a n n e l 0 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h1 , K I N E T I S _ I R Q _ D M A C H 1 / * V e c t o r 1 7 : D M A c h a n n e l 1 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h2 , K I N E T I S _ I R Q _ D M A C H 2 / * V e c t o r 1 8 : D M A c h a n n e l 2 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h3 , K I N E T I S _ I R Q _ D M A C H 3 / * V e c t o r 1 9 : D M A c h a n n e l 3 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h4 , K I N E T I S _ I R Q _ D M A C H 4 / * V e c t o r 2 0 : D M A c h a n n e l 4 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h5 , K I N E T I S _ I R Q _ D M A C H 5 / * V e c t o r 2 1 : D M A c h a n n e l 5 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h6 , K I N E T I S _ I R Q _ D M A C H 6 / * V e c t o r 2 2 : D M A c h a n n e l 6 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h7 , K I N E T I S _ I R Q _ D M A C H 7 / * V e c t o r 2 3 : D M A c h a n n e l 7 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h8 , K I N E T I S _ I R Q _ D M A C H 8 / * V e c t o r 2 4 : D M A c h a n n e l 8 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h9 , K I N E T I S _ I R Q _ D M A C H 9 / * V e c t o r 2 5 : D M A c h a n n e l 9 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h10 , K I N E T I S _ I R Q _ D M A C H 1 0 / * V e c t o r 2 6 : D M A c h a n n e l 1 0 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h11 , K I N E T I S _ I R Q _ D M A C H 1 1 / * V e c t o r 2 7 : D M A c h a n n e l 1 1 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h12 , K I N E T I S _ I R Q _ D M A C H 1 2 / * V e c t o r 2 8 : D M A c h a n n e l 1 2 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h13 , K I N E T I S _ I R Q _ D M A C H 1 3 / * V e c t o r 2 9 : D M A c h a n n e l 1 3 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h14 , K I N E T I S _ I R Q _ D M A C H 1 4 / * V e c t o r 3 0 : D M A c h a n n e l 1 4 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a c h15 , K I N E T I S _ I R Q _ D M A C H 1 5 / * V e c t o r 3 1 : D M A c h a n n e l 1 5 t r a n s f e r c o m p l e t e * /
HANDLER k i n e t i s _ d m a e r r , K I N E T I S _ I R Q _ D M A E R R / * V e c t o r 3 2 : D M A e r r o r i n t e r r u p t c h a n n e l s 0 - 1 5 * /
HANDLER k i n e t i s _ m c m , K I N E T I S _ I R Q _ M C M / * V e c t o r 3 3 : M C M N o r m a l i n t e r r u p t * /
HANDLER k i n e t i s _ f l a s h c c , K I N E T I S _ I R Q _ F L A S H C C / * V e c t o r 3 4 : F l a s h m e m o r y c o m m a n d c o m p l e t e * /
HANDLER k i n e t i s _ f l a s h r c , K I N E T I S _ I R Q _ F L A S H R C / * V e c t o r 3 5 : F l a s h m e m o r y r e a d c o l l i s i o n * /
HANDLER k i n e t i s _ s m c l v d , K I N E T I S _ I R Q _ S M C L V D / * V e c t o r 3 6 : M o d e C o n t r o l l e r l o w - v o l t a g e d e t e c t , l o w - v o l t a g e w a r n i n g * /
HANDLER k i n e t i s _ l l w u , K I N E T I S _ I R Q _ L L W U / * V e c t o r 3 7 : L L W U N o r m a l L o w L e a k a g e W a k e u p * /
HANDLER k i n e t i s _ w d o g , K I N E T I S _ I R Q _ W D O G / * V e c t o r 3 8 : W a t c h d o g * /
HANDLER k i n e t i s _ r n g b , K I N E T I S _ I R Q _ R N G B / * V e c t o r 3 9 : R a n d o m n u m b e r g e n e r a t o r * /
HANDLER k i n e t i s _ i 2 c0 , K I N E T I S _ I R Q _ I 2 C 0 / * V e c t o r 4 0 : I 2 C 0 * /
HANDLER k i n e t i s _ i 2 c1 , K I N E T I S _ I R Q _ I 2 C 1 / * V e c t o r 4 1 : I 2 C 1 * /
HANDLER k i n e t i s _ s p i 0 , K I N E T I S _ I R Q _ S P I 0 / * V e c t o r 4 2 : S P I 0 a l l s o u r c e s * /
HANDLER k i n e t i s _ s p i 1 , K I N E T I S _ I R Q _ S P I 1 / * V e c t o r 4 3 : S P I 1 a l l s o u r c e s * /
HANDLER k i n e t i s _ s p i 2 , K I N E T I S _ I R Q _ S P I 2 / * V e c t o r 4 4 : S P I 2 a l l s o u r c e s * /
HANDLER k i n e t i s _ c a n 0 m b , K I N E T I S _ I R Q _ C A N 0 M B / * V e c t o r 4 5 : C A N 0 O R ' e d M e s s a g e b u f f e r ( 0 - 1 5 ) * /
HANDLER k i n e t i s _ c a n 0 b o , K I N E T I S _ I R Q _ C A N 0 B O / * V e c t o r 4 6 : C A N 0 B u s O f f * /
HANDLER k i n e t i s _ c a n 0 e r r , K I N E T I S _ I R Q _ C A N 0 E R R / * V e c t o r 4 7 : C A N 0 E r r o r * /
HANDLER k i n e t i s _ c a n 0 t w , K I N E T I S _ I R Q _ C A N 0 T W / * V e c t o r 4 8 : C A N 0 T r a n s m i t W a r n i n g * /
HANDLER k i n e t i s _ c a n 0 r w , K I N E T I S _ I R Q _ C A N 0 R W / * V e c t o r 4 9 : C A N 0 R e c e i v e W a r n i n g * /
HANDLER k i n e t i s _ c a n 0 w u , K I N E T I S _ I R Q _ C A N 0 W U / * V e c t o r 5 0 : C A N 0 W a k e U P * /
HANDLER k i n e t i s _ c a n 1 m b , K I N E T I S _ I R Q _ C A N 1 M B / * V e c t o r 5 3 : C A N 1 O R ' e d M e s s a g e b u f f e r ( 0 - 1 5 ) * /
HANDLER k i n e t i s _ c a n 1 b o , K I N E T I S _ I R Q _ C A N 1 B O / * V e c t o r 5 4 : C A N 1 B u s O f f * /
HANDLER k i n e t i s _ c a n 1 e r r , K I N E T I S _ I R Q _ C A N 1 E R R / * V e c t o r 5 5 : C A N 1 E r r o r * /
HANDLER k i n e t i s _ c a n 1 t w , K I N E T I S _ I R Q _ C A N 1 T W / * V e c t o r 5 6 : C A N 1 T r a n s m i t W a r n i n g * /
HANDLER k i n e t i s _ c a n 1 r w , K I N E T I S _ I R Q _ C A N 1 R W / * V e c t o r 5 7 : C A N 1 R e c e i v e W a r n i n g * /
HANDLER k i n e t i s _ c a n 1 w u , K I N E T I S _ I R Q _ C A N 1 W U / * V e c t o r 5 8 : C A N 1 W a k e U P * /
HANDLER k i n e t i s _ u a r t 0 s , K I N E T I S _ I R Q _ U A R T 0 S / * V e c t o r 6 1 : U A R T 0 s t a t u s * /
HANDLER k i n e t i s _ u a r t 0 e , K I N E T I S _ I R Q _ U A R T 0 E / * V e c t o r 6 2 : U A R T 0 e r r o r * /
HANDLER k i n e t i s _ u a r t 1 s , K I N E T I S _ I R Q _ U A R T 1 S / * V e c t o r 6 3 : U A R T 1 s t a t u s * /
HANDLER k i n e t i s _ u a r t 1 e , K I N E T I S _ I R Q _ U A R T 1 E / * V e c t o r 6 4 : U A R T 1 e r r o r * /
HANDLER k i n e t i s _ u a r t 2 s , K I N E T I S _ I R Q _ U A R T 2 S / * V e c t o r 6 5 : U A R T 2 s t a t u s * /
HANDLER k i n e t i s _ u a r t 2 e , K I N E T I S _ I R Q _ U A R T 2 E / * V e c t o r 6 6 : U A R T 2 e r r o r * /
HANDLER k i n e t i s _ u a r t 3 s , K I N E T I S _ I R Q _ U A R T 3 S / * V e c t o r 6 7 : U A R T 3 s t a t u s * /
HANDLER k i n e t i s _ u a r t 3 e , K I N E T I S _ I R Q _ U A R T 3 E / * V e c t o r 6 8 : U A R T 3 e r r o r * /
HANDLER k i n e t i s _ u a r t 4 s , K I N E T I S _ I R Q _ U A R T 4 S / * V e c t o r 6 9 : U A R T 4 s t a t u s * /
HANDLER k i n e t i s _ u a r t 4 e , K I N E T I S _ I R Q _ U A R T 4 E / * V e c t o r 7 0 : U A R T 4 e r r o r * /
HANDLER k i n e t i s _ u a r t 5 s , K I N E T I S _ I R Q _ U A R T 5 S / * V e c t o r 7 1 : U A R T 5 s t a t u s * /
HANDLER k i n e t i s _ u a r t 5 e , K I N E T I S _ I R Q _ U A R T 5 E / * V e c t o r 7 2 : U A R T 5 e r r o r * /
HANDLER k i n e t i s _ a d c0 , K I N E T I S _ I R Q _ A D C 0 / * V e c t o r 7 3 : A D C 0 * /
HANDLER k i n e t i s _ a d c1 , K I N E T I S _ I R Q _ A D C 1 / * V e c t o r 7 4 : A D C 1 * /
HANDLER k i n e t i s _ c m p0 , K I N E T I S _ I R Q _ C M P 0 / * V e c t o r 7 5 : C M P 0 * /
HANDLER k i n e t i s _ c m p1 , K I N E T I S _ I R Q _ C M P 1 / * V e c t o r 7 6 : C M P 1 * /
HANDLER k i n e t i s _ c m p2 , K I N E T I S _ I R Q _ C M P 2 / * V e c t o r 7 7 : C M P 2 * /
HANDLER k i n e t i s _ f t m 0 , K I N E T I S _ I R Q _ F T M 0 / * V e c t o r 7 8 : F T M 0 a l l s o u r c e s * /
HANDLER k i n e t i s _ f t m 1 , K I N E T I S _ I R Q _ F T M 1 / * V e c t o r 7 9 : F T M 1 a l l s o u r c e s * /
HANDLER k i n e t i s _ f t m 2 , K I N E T I S _ I R Q _ F T M 2 / * V e c t o r 8 0 : F T M 2 a l l s o u r c e s * /
HANDLER k i n e t i s _ c m t , K I N E T I S _ I R Q _ C M T / * V e c t o r 8 1 : C M T * /
HANDLER k i n e t i s _ r t c , K I N E T I S _ I R Q _ R T C / * V e c t o r 8 2 : R T C a l a r m i n t e r r u p t * /
HANDLER k i n e t i s _ p i t c h0 , K I N E T I S _ I R Q _ P I T C H 0 / * V e c t o r 8 4 : P I T c h a n n e l 0 * /
HANDLER k i n e t i s _ p i t c h1 , K I N E T I S _ I R Q _ P I T C H 1 / * V e c t o r 8 5 : P I T c h a n n e l 1 * /
HANDLER k i n e t i s _ p i t c h2 , K I N E T I S _ I R Q _ P I T C H 2 / * V e c t o r 8 6 : P I T c h a n n e l 2 * /
HANDLER k i n e t i s _ p i t c h3 , K I N E T I S _ I R Q _ P I T C H 3 / * V e c t o r 8 7 : P I T c h a n n e l 3 * /
HANDLER k i n e t i s _ p d b , K I N E T I S _ I R Q _ P D B / * V e c t o r 8 8 : P D B * /
HANDLER k i n e t i s _ u s b o t g , K I N E T I S _ I R Q _ U S B O T G / * V e c t o r 8 8 : U S B O T G * /
HANDLER k i n e t i s _ u s b c d , K I N E T I S _ I R Q _ U S B C D / * V e c t o r 9 0 : U S B c h a r g e r d e t e c t * /
HANDLER k i n e t i s _ e m a c t m r , K I N E T I S _ I R Q _ E M A C T M R / * V e c t o r 9 1 : E t h e r n e t M A C I E E E 1 5 8 8 t i m e r i n t e r r u p t * /
HANDLER k i n e t i s _ e m a c t x , K I N E T I S _ I R Q _ E M A C T X / * V e c t o r 9 2 : E t h e r n e t M A C t r a n s m i t i n t e r r u p t * /
HANDLER k i n e t i s _ e m a c r x , K I N E T I S _ I R Q _ E M A C R X / * V e c t o r 9 3 : E t h e r n e t M A C r e c e i v e i n t e r r u p t * /
HANDLER k i n e t i s _ e m a c m i s c , K I N E T I S _ I R Q _ E M A C M I S C / * V e c t o r 9 4 : E t h e r n e t M A C e r r o r a n d m i s c i n t e r r u p t * /
HANDLER k i n e t i s _ i 2 s0 , K I N E T I S _ I R Q _ I 2 S 0 / * V e c t o r 9 5 : I 2 S 0 * /
HANDLER k i n e t i s _ s d h c , K I N E T I S _ I R Q _ S D H C / * V e c t o r 9 6 : S D H C * /
HANDLER k i n e t i s _ d a c0 , K I N E T I S _ I R Q _ D A C 0 / * V e c t o r 9 7 : D A C 0 * /
HANDLER k i n e t i s _ d a c1 , K I N E T I S _ I R Q _ D A C 1 / * V e c t o r 9 8 : D A C 1 * /
HANDLER k i n e t i s _ t s i , K I N E T I S _ I R Q _ T S I / * V e c t o r 9 7 : T S I a l l s o u r c e s * /
HANDLER k i n e t i s _ m c g , K I N E T I S _ I R Q _ M C G / * V e c t o r 1 0 0 : M C G * /
HANDLER k i n e t i s _ l p t , K I N E T I S _ I R Q _ L P T / * V e c t o r 1 0 1 : L o w p o w e r t i m e r * /
HANDLER k i n e t i s _ p o r t a , K I N E T I S _ I R Q _ P O R T A / * V e c t o r 1 0 3 : P i n d e t e c t p o r t A * /
HANDLER k i n e t i s _ p o r t b , K I N E T I S _ I R Q _ P O R T B / * V e c t o r 1 0 4 : P i n d e t e c t p o r t B * /
HANDLER k i n e t i s _ p o r t c , K I N E T I S _ I R Q _ P O R T C / * V e c t o r 1 0 5 : P i n d e t e c t p o r t C * /
HANDLER k i n e t i s _ p o r t d , K I N E T I S _ I R Q _ P O R T D / * V e c t o r 1 0 6 : P i n d e t e c t p o r t D * /
HANDLER k i n e t i s _ p o r t e , K I N E T I S _ I R Q _ P O R T E / * V e c t o r 1 0 7 : P i n d e t e c t p o r t E * /
# else
# error " N o h a n d l e r s f o r t h i s K i n e t i s p a r t "
# endif
/ * Common I R Q h a n d l i n g l o g i c . O n e n t r y h e r e , t h e r e t u r n s t a c k i s o n e i t h e r
* the P S P o r t h e M S P a n d l o o k s l i k e t h e f o l l o w i n g :
*
* REG_ X P S R
* REG_ R 1 5
* REG_ R 1 4
* REG_ R 1 2
* REG_ R 3
* REG_ R 2
* REG_ R 1
* MSP- > R E G _ R 0
*
* And
* R0 c o n t a i n s t h e I R Q n u m b e r
* R1 4 C o n t a i n s t h e E X C _ R E T U R N v a l u e
* We a r e i n h a n d l e r m o d e a n d t h e c u r r e n t S P i s t h e M S P
* /
kinetis_common :
/* Complete the context save */
# ifdef C O N F I G _ N U T T X _ K E R N E L
/ * The E X C _ R E T U R N v a l u e w i l l b e 0 x f f f f f f f9 ( p r i v i l e g e d t h r e a d ) o r 0 x f f f f f f f1
* ( handler m o d e ) i f t h e s t a t e i s o n t h e M S P . I t c a n o n l y b e o n t h e P S P i f
* EXC_ R E T U R N i s 0 x f f f f f f f d ( u n p r i v i l e g e d t h r e a d )
* /
adds r2 , r14 , #3 / * I f R 1 4 =0xfffffffd , t h e n r2 = = 0 * /
ite n e / * N e x t t w o i n s t r u c t i o n s a r e c o n d i t i o n * /
mrsne r1 , m s p / * R 1 =The m a i n s t a c k p o i n t e r * /
mrseq r1 , p s p / * R 1 =The p r o c e s s s t a c k p o i n t e r * /
# else
mrs r1 , m s p / * R 1 =The m a i n s t a c k p o i n t e r * /
# endif
mov r2 , r1 / * R 2 =Copy o f t h e m a i n / p r o c e s s s t a c k p o i n t e r * /
add r2 , #H W _ X C P T _ S I Z E / * R 2 =MSP / P S P b e f o r e t h e i n t e r r u p t w a s t a k e n * /
mrs r3 , p r i m a s k / * R 3 =Current P R I M A S K s e t t i n g * /
# ifdef C O N F I G _ N U T T X _ K E R N E L
stmdb r1 ! , { r2 - r11 ,r14 } / * S a v e t h e r e m a i n i n g r e g i s t e r s p l u s t h e S P v a l u e * /
# else
stmdb r1 ! , { r2 - r11 } / * S a v e t h e r e m a i n i n g r e g i s t e r s p l u s t h e S P v a l u e * /
# endif
/ * Disable i n t e r r u p t s , s e l e c t t h e s t a c k t o u s e f o r i n t e r r u p t h a n d l i n g
* and c a l l u p _ d o i r q t o h a n d l e t h e i n t e r r u p t
* /
cpsid i / * D i s a b l e f u r t h e r i n t e r r u p t s * /
/ * If C O N F I G _ A R C H _ I N T E R R U P T S T A C K i s d e f i n e d , w e w i l l u s e a s p e c i a l i n t e r r u p t
* stack p o i n t e r . T h e w a y t h a t t h i s i s d o n e h e r e p r o h i b i t s n e s t e d i n t e r r u p t s !
* Otherwise, w e w i l l r e - u s e t h e m a i n s t a c k f o r i n t e r r u p t l e v e l p r o c e s s i n g .
* /
# if C O N F I G _ A R C H _ I N T E R R U P T S T A C K > 3
ldr s p , =g_intstackbase
str r1 , [ s p , #- 4 ] ! / * S a v e t h e M S P o n t h e i n t e r r u p t s t a c k * /
bl u p _ d o i r q / * R 0 =IRQ , R 1 =register s a v e ( m s p ) * /
ldr r1 , [ s p , #+ 4 ] ! / * R e c o v e r R 1 =main s t a c k p o i n t e r * /
# else
mov s p , r1 / * W e a r e u s i n g t h e m a i n s t a c k p o i n t e r * /
bl u p _ d o i r q / * R 0 =IRQ , R 1 =register s a v e ( m s p ) * /
mov r1 , s p / * R e c o v e r R 1 =main s t a c k p o i n t e r * /
# endif
/ * On r e t u r n f r o m u p _ d o i r q , R 0 w i l l h o l d a p o i n t e r t o r e g i s t e r c o n t e x t
* array t o u s e f o r t h e i n t e r r u p t r e t u r n . I f t h a t r e t u r n v a l u e i s t h e s a m e
* as c u r r e n t s t a c k p o i n t e r , t h e n t h i n g s a r e r e l a t i v e l y e a s y .
* /
cmp r0 , r1 / * C o n t e x t s w i t c h ? * /
beq 1 f / * B r a n c h i f n o c o n t e x t s w i t c h * /
/ * We a r e r e t u r n i n g w i t h a p e n d i n g c o n t e x t s w i t c h . T h i s c a s e i s d i f f e r e n t
* because i n t h i s c a s e , t h e r e g i s t e r s a v e s t r u c t u r e d o e s n o t l i e o n t h e
* stack b u t , r a t h e r , a r e w i t h i n a T C B s t r u c t u r e . W e ' l l h a v e t o c o p y s o m e
* values t o t h e s t a c k .
* /
add r1 , r0 , #S W _ X C P T _ S I Z E / * R 1 =Address o f H W s a v e a r e a i n r e g a r r a y * /
ldmia r1 , { r4 - r11 } / * F e t c h e i g h t r e g i s t e r s i n H W s a v e a r e a * /
ldr r1 , [ r0 , #( 4 * R E G _ S P ) ] / * R 1 =Value o f S P b e f o r e i n t e r r u p t * /
stmdb r1 ! , { r4 - r11 } / * S t o r e e i g h t r e g i s t e r s i n H W s a v e a r e a * /
# ifdef C O N F I G _ N U T T X _ K E R N E L
ldmia r0 , { r2 - r11 ,r14 } / * R e c o v e r R 4 - R 1 1 , r14 + 2 t e m p v a l u e s * /
# else
ldmia r0 , { r2 - r11 } / * R e c o v e r R 4 - R 1 1 + 2 t e m p v a l u e s * /
# endif
b 2 f / * R e - j o i n c o m m o n l o g i c * /
/ * We a r e r e t u r n i n g w i t h n o c o n t e x t s w i t c h . W e s i m p l y n e e d t o " u n w i n d "
* the s a m e s t a c k f r a m e t h a t w e c r e a t e d
* /
1 :
# ifdef C O N F I G _ N U T T X _ K E R N E L
ldmia r1 ! , { r2 - r11 ,r14 } / * R e c o v e r R 4 - R 1 1 , r14 + 2 t e m p v a l u e s * /
# else
ldmia r1 ! , { r2 - r11 } / * R e c o v e r R 4 - R 1 1 + 2 t e m p v a l u e s * /
# endif
2 :
# ifdef C O N F I G _ N U T T X _ K E R N E L
/ * The E X C _ R E T U R N v a l u e w i l l b e 0 x f f f f f f f9 ( p r i v i l e g e d t h r e a d ) o r 0 x f f f f f f f1
* ( handler m o d e ) i f t h e s t a t e i s o n t h e M S P . I t c a n o n l y b e o n t h e P S P i f
* EXC_ R E T U R N i s 0 x f f f f f f f d ( u n p r i v i l e g e d t h r e a d )
* /
adds r0 , r14 , #3 / * I f R 1 4 =0xfffffffd , t h e n r0 = = 0 * /
ite n e / * N e x t t w o i n s t r u c t i o n s a r e c o n d i t i o n * /
msrne m s p , r1 / * R 1 =The m a i n s t a c k p o i n t e r * /
msreq p s p , r1 / * R 1 =The p r o c e s s s t a c k p o i n t e r * /
# else
msr m s p , r1 / * R e c o v e r t h e r e t u r n M S P v a l u e * /
/ * Preload r14 w i t h t h e s p e c i a l r e t u r n v a l u e f i r s t ( s o t h a t t h e r e t u r n
* actually o c c u r s w i t h i n t e r r u p t s s t i l l d i s a b l e d ) .
* /
ldr r14 , =EXC_RETURN / * L o a d t h e s p e c i a l v a l u e * /
# endif
/* Restore the interrupt state */
msr p r i m a s k , r3 / * R e s t o r e i n t e r r u p t s * /
/ * Always r e t u r n w i t h R 1 4 c o n t a i n i n g t h e s p e c i a l v a l u e t h a t w i l l : ( 1 )
* return t o t h r e a d m o d e , a n d ( 2 ) c o n t i n u e t o u s e t h e M S P
* /
bx r14 / * A n d r e t u r n * /
.size handlers, . - h a n d l e r s
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Name : up_ i n t e r r u p t s t a c k / g _ i n t s t a c k b a s e
*
* Description :
* Shouldn' t h a p p e n
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
# if C O N F I G _ A R C H _ I N T E R R U P T S T A C K > 3
.bss
.global g_intstackbase
.align 4
up_interruptstack :
.skip ( CONFIG_ A R C H _ I N T E R R U P T S T A C K & ~ 3 )
g_intstackbase :
.size up_ i n t e r r u p t s t a c k , . - u p _ i n t e r r u p t s t a c k
# endif
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* .rodata
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
.section .rodata , " a"
/ * Variables : _ sbss i s t h e s t a r t o f t h e B S S r e g i o n ( s e e l d . s c r i p t ) _ e b s s i s t h e e n d
* of t h e B S S r e g s i o n ( s e e l d . s c r i p t ) . T h e i d l e t a s k s t a c k s t a r t s a t t h e e n d o f B S S
* and i s o f s i z e C O N F I G _ I D L E T H R E A D _ S T A C K S I Z E . T h e I D L E t h r e a d i s t h e t h r e a d t h a t
* the s y s t e m b o o t s o n a n d , e v e n t u a l l y , b e c o m e s t h e i d l e , d o n o t h i n g t a s k t h a t r u n s
* only w h e n t h e r e i s n o t h i n g e l s e t o r u n . T h e h e a p c o n t i n u e s f r o m t h e r e u n t i l t h e
* end o f m e m o r y . S e e g _ h e a p b a s e b e l o w .
* /
.globl g_heapbase
.type g_ h e a p b a s e , o b j e c t
g_heapbase :
.word HEAP_BASE
.size g_ h e a p b a s e , . - g _ h e a p b a s e
.end