extern void __interrupt _c_int00() { int preInitStatus; STACK_INIT(); /*------------------------------------------------------------------------*/ /* Call hook configured into Startup_resetFxn */ /*------------------------------------------------------------------------*/ if (&xdc_runtime_Startup__RESETFXN__C == (int*)1) { xdc_runtime_Startup_reset__I(); } /*------------------------------------------------------------------------*/ /* Allow for any application-specific low level initialization prior to */ /* initializing the C/C++ environment (global variable initialization, */ /* constructers). If _system_pre_init() returns 0, then bypass C/C++ */ /* initialization. NOTE: BYPASSING THE CALL TO THE C/C++ INITIALIZATION */ /* ROUTINE MAY RESULT IN PROGRAM FAILURE. */ /*------------------------------------------------------------------------*/ preInitStatus = _system_pre_init(); /* moved here to allow clear of .bss */ INIT_EXIT_PTRS(); INIT_LOCKS(); if (preInitStatus != 0) _auto_init(); /*------------------------------------------------------------------------*/ /* Handle any argc/argv arguments if supported by an MSP430 loader. */ /*------------------------------------------------------------------------*/ _args_main(); exit(1); }
extern void __interrupt _c_int00_noinit_mpu_init() { MPU_INIT(); STACK_INIT(); /*------------------------------------------------------------------------*/ /* Call hook configured into Startup_resetFxn */ /*------------------------------------------------------------------------*/ if (&xdc_runtime_Startup__RESETFXN__C == (int*)1) { xdc_runtime_Startup_reset__I(); } _system_pre_init(); /* moved here to allow clear of .bss */ INIT_EXIT_PTRS(); INIT_LOCKS(); _args_main(); exit(1); }
extern void __interrupt _c_int00() { /*------------------------------------------------------------------------*/ /* Initialize stack pointer. Stack grows toward lower memory. */ /*------------------------------------------------------------------------*/ __asm("\t MOV.W\t #_stack + __STACK_SIZE,SP"); /*------------------------------------------------------------------------*/ /* Allow for any application-specific low level initialization prior to */ /* initializing the C/C++ environment (global variable initialization, */ /* constructers). If _system_pre_init() returns 0, then bypass C/C++ */ /* initialization. NOTE: BYPASSING THE CALL TO THE C/C++ INITIALIZATION */ /* ROUTINE MAY RESULT IN PROGRAM FAILURE. */ /*------------------------------------------------------------------------*/ if(_system_pre_init() != 0) _auto_init(CINIT); /*------------------------------------------------------------------------*/ /* Handle any argc/argv arguments if supported by an MSP430 loader. */ /*------------------------------------------------------------------------*/ xdc_runtime_System_exit__E(_args_main()); }
extern void __interrupt c_int00() { /* * Clear IER, IFR register. This is necessary to prohibit left-over * interrupts from being serviced. */ __asm("\t ZERO\t\t B0"); __asm("\t MVC\t\t B0, IER"); __asm("\t MVK\t\t -1, B0"); __asm("\t MVC\t\t B0, ICR"); #ifdef __VIRTUAL_ENCODING__ __SP = ((int)_stack + (int)_STACK_SIZE - 4) & ~7; __DP = (int)__bss__; #else /*------------------------------------------------------------------------*/ /* SET UP THE STACK POINTER IN B15. */ /* THE STACK POINTER POINTS 1 WORD PAST THE TOP OF THE STACK, SO SUBTRACT */ /* 1 WORD FROM THE SIZE. ALSO THE SP MUST BE ALIGNED ON AN 8-BYTE BOUNDARY*/ /*------------------------------------------------------------------------*/ #ifndef __TI_ELFABI__ __asm("\t MVKL\t\t __stack + __STACK_SIZE - 4, SP"); __asm("\t MVKH\t\t __stack + __STACK_SIZE - 4, SP"); #else __asm("\t MVKL\t\t __TI_STACK_END - 4, SP"); __asm("\t MVKH\t\t __TI_STACK_END - 4, SP"); #endif __asm("\t AND\t\t ~7,SP,SP"); /*------------------------------------------------------------------------*/ /* SET UP THE GLOBAL PAGE POINTER IN B14. */ /*------------------------------------------------------------------------*/ #ifndef __TI_ELFABI__ __asm("\t MVKL\t\t $bss,DP"); __asm("\t MVKH\t\t $bss,DP"); #else __asm("\t MVKL\t\t __TI_STATIC_BASE,DP"); __asm("\t MVKH\t\t __TI_STATIC_BASE,DP"); #endif #endif /* Virtual Encoding */ /*------------------------------------------------------------------------*/ /* SET UP FLOATING POINT REGISTERS FOR C6700 */ /*------------------------------------------------------------------------*/ #ifdef _TMS320C6700 FADCR = 0; FMCR = 0; #endif /*------------------------------------------------------------------------*/ /* Call hook configured into Startup_resetFxn */ /*------------------------------------------------------------------------*/ if (&xdc_runtime_Startup__RESETFXN__C == (int*)1) { xdc_runtime_Startup_reset__I(); } /*------------------------------------------------------------------------*/ /* CALL THE AUTOINITIALIZATION ROUTINE. */ /*------------------------------------------------------------------------*/ #ifndef __TI_ELFABI__ _auto_init(CINIT); #else _auto_init_elf(); #endif _args_main(); /*------------------------------------------------------------------------*/ /* START RUNTIME FOR BIOS. */ /* The call to BIOS_start does not return. */ /*------------------------------------------------------------------------*/ BIOS_start(); /*------------------------------------------------------------------------*/ /* CALL EXIT. */ /*------------------------------------------------------------------------*/ exit(1); }