Browse Source

Merge pull request #385 from Defragster/patch-6

Teensy4: Startup Hooks
teensy4-core
Paul Stoffregen 5 years ago
parent
commit
ab83544af0
No account linked to committer's email address
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      teensy4/startup.c

+ 6
- 0
teensy4/startup.c View File

extern void __libc_init_array(void); // C++ standard library extern void __libc_init_array(void); // C++ standard library




void startup_default_early_hook(void) {}
void startup_early_hook(void) __attribute__ ((weak, alias("startup_default_early_hook")));
void startup_default_late_hook(void) {}
void startup_late_hook(void) __attribute__ ((weak, alias("startup_default_late_hook")));
__attribute__((section(".startup"), optimize("no-tree-loop-distribute-patterns"), naked)) __attribute__((section(".startup"), optimize("no-tree-loop-distribute-patterns"), naked))
void ResetHandler(void) void ResetHandler(void)
{ {
} }
SNVS_HPCR |= SNVS_HPCR_RTC_EN | SNVS_HPCR_HP_TS; SNVS_HPCR |= SNVS_HPCR_RTC_EN | SNVS_HPCR_HP_TS;


startup_early_hook();
while (millis() < 20) ; // wait at least 20ms before starting USB while (millis() < 20) ; // wait at least 20ms before starting USB
usb_init(); usb_init();
analog_init(); analog_init();
pwm_init(); pwm_init();
tempmon_init(); tempmon_init();


startup_late_hook();
while (millis() < 300) ; // wait at least 300ms before calling user code while (millis() < 300) ; // wait at least 300ms before calling user code
//printf("before C++ constructors\n"); //printf("before C++ constructors\n");
__libc_init_array(); __libc_init_array();

Loading…
Cancel
Save