/*
  startup.cpp: Host side support for getting stuff initialized at startup
  Copyright (C) 2009 The Regents of the University of New Mexico.  All rights reserved.

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
  USA
*/

#include "SFBReflex.h"          // For reflex_startup_initialization
#include "SFBPrint.h"           // For print_startup_initialization
#include "SFBSerial.h"          // For SFBSerial::startup_initialization
#include "SFBEeprom.h"          // For eeprom_startup_initialization
#include "SFBBootBlock.h"       // For bootblock_startup_initializtion 
#include "SFBHWMisc.h"          // For init_stack_canary 

void startupEarlyInits() {

  init_stack_canary();

  reflex_startup_initialization();

  hwpins_startup_initialization();

  eeprom_startup_initialization();

  bootblock_startup_initialization();  

  //bootblock_bootcount_initialization();  // Bumps burncount+inits randomSeed, unless overridden

  print_startup_initialization();

  SFBSerial::startup_initialization();
}

void startupLateInits() {

}
