text: /***********************************************************************************************************************
  * DISCLAIMER
  * This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 
  * other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 
  * applicable laws, including copyright laws. 
  * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
  * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 
  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 
  * EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 
  * SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 
  * SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  * Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 
  * this software. By using this software, you agree to the additional terms and conditions found by accessing the 
  * following link:
  * http://www.renesas.com/disclaimer 
  *
  * Copyright (C) 2016 Renesas Electronics Corporation. All rights reserved.    
  ***********************************************************************************************************************/
  /***********************************************************************************************************************
  * File Name    : hwsetup.c
  * Device(s)    : RX
  * H/W Platform : RSKRX65N�ARSKRX65N_2MB
  * Description  : Defines the initialization routines used each time the MCU is restarted.
  ***********************************************************************************************************************/
  /***********************************************************************************************************************
  * History : DD.MM.YYYY Version   Description
  *         : 01.10.2016 1.00      First Release
  *         : 15.05.2017 2.00      Added the bsp startup module disable function.
  *                                Changed the MSTPCR setting method.
  ***********************************************************************************************************************/
  
  
  /***********************************************************************************************************************
  Includes   <System Includes> , "Project Includes"
  ***********************************************************************************************************************/
  /* I/O Register and board definitions */
  #include "rx_platform.h"
  
  /***********************************************************************************************************************
  Private global variables and functions
  ***********************************************************************************************************************/
  /* MCU I/O port configuration function declaration */
  static void output_ports_configure(void);
  
  /* Interrupt configuration function declaration */
  static void interrupts_configure(void);
  
  /* MCU peripheral module configuration function declaration */
  static void peripheral_modules_enable(void);
  
  /* ADC initial configuration function declaration */
  //static void bsp_adc_initial_configure(void);
  
  
  /***********************************************************************************************************************
  * Function name: hardware_setup
  * Description  : Contains setup functions called at device restart
  * Arguments    : none
  * Return value : none
  ***********************************************************************************************************************/
  void hardware_setup(void)
  {
      output_ports_configure();
      interrupts_configure();
      peripheral_modules_enable();
      //bsp_non_existent_port_init();
      //bsp_adc_initial_configure();
  }
  
  /***********************************************************************************************************************
  * Function name: output_ports_configure
  * Description  : Configures the port and pin direction settings, and sets the pin outputs to a safe level.
  * Arguments    : none
  * Return value : none
  ***********************************************************************************************************************/
  static void output_ports_configure(void)
  {
  /* When using the user startup program, disable the following code. */
  #if (BSP_CFG_STARTUP_DISABLE == 0)
  #if 0
      /* Enable LEDs. */
      /* Start with LEDs off. */
      LED0 = LED_OFF;
      LED1 = LED_OFF;
      LED2 = LED_OFF;
      LED3 = LED_OFF;
  
      /* Set LED pins as outputs. */
      LED0_PDR = 1;
      LED1_PDR = 1;
      LED2_PDR = 1;
      LED3_PDR = 1;
  
      /* Enable switches. */
      /* Set pins as inputs. */
      SW1_PDR = 0;
      SW2_PDR = 0;
      SW3_PDR = 0;
  
      /* Set port mode registers for switches. */
      SW1_PMR = 0;
      SW2_PMR = 0;
      SW3_PMR = 0;
  #endif
  #endif
  }
  
  /***********************************************************************************************************************
  * Function name: interrupts_configure
  * Description  : Configures interrupts used
  * Arguments    : none
  * Return value : none
  ***********************************************************************************************************************/
  static void interrupts_configure(void)
  {
      /* Add code here to setup additional interrupts */
  }
  
  /***********************************************************************************************************************
  * Function name: peripheral_modules_enable
  * Description  : Enables and configures peripheral devices on the MCU
  * Arguments    : none
  * Return value : none
  ***********************************************************************************************************************/
  static void peripheral_modules_enable(void)
  {
      /* Add code here to enable peripherals used by the application */
  }
  
  /***********************************************************************************************************************
  * Function name: bsp_adc_initial_configure
  * Description  : Configures the ADC initial settings
  * Arguments    : none
  * Return value : none
  * Note         : This function should be called when the PSW.I bit is 0 (interrupt disabled).
  *                This function should be called when the ADCST.ADST bit is 0.
  ***********************************************************************************************************************/
  #if 0
  static void bsp_adc_initial_configure(void)
  {
  
      volatile uint8_t tmp_mstp;
  
      /* Protect off. */
      SYSTEM.PRCR.WORD = 0xA502;
  
      /* Store the value of the MSTPCR. */
      tmp_mstp = MSTP(S12AD1);
  
      /* Release from the module-stop state */
      MSTP(S12AD1) = 0;
  
      /* Writing to the A/D conversion time setting register is enabled. */
      S12AD1.ADSAMPR.BYTE = 0x03;
  
      /* Sets conversion time for middle-speed for S12AD unit 1. */
      S12AD1.ADSAM.WORD = 0x0020;
  
      /* Writing to the A/D conversion time setting register is disabled. */
      S12AD1.ADSAMPR.BYTE = 0x02;
  
      /* Restore the value of the MSTPCR. */
      MSTP(S12AD1) = tmp_mstp;
  
      /* Protect on. */
      SYSTEM.PRCR.WORD = 0xA500;
  }
  #endif
  