Microchip® Advanced Software Framework

avr32/applications/evk1104-usb-msc-sd-demo/main.c File Reference

Main file of the USB mass-storage example.

Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries.

#include "nlao_cpu.h"
#include "nlao_usart.h"
#include <stdio.h>
#include "compiler.h"
#include "preprocessor.h"
#include "board.h"
#include "print_funcs.h"
#include "intc.h"
#include "pm.h"
#include "gpio.h"
#include "usart.h"
#include "ctrl_access.h"
#include "main.h"
#include "spi.h"
#include "conf_at45dbx.h"
#include "conf_sd_mmc_spi.h"
#include "mci.h"
#include "conf_sd_mmc_mci.h"
#include "conf_usb.h"
#include "usb_task.h"
#include "device_mass_storage_task.h"
#include "host_mass_storage_task.h"
#include "mmi_task.h"

Macros

#define AT45DBX_ENABLE_NPCS_PIN(NPCS, unused)   {AT45DBX_SPI_NPCS##NPCS##_PIN, AT45DBX_SPI_NPCS##NPCS##_FUNCTION},
 

Functions

int _init_startup (void)
 Low-level initialization routine called during startup, before the main function. More...
 
static void at45dbx_resources_init (void)
 Initializes AT45DBX resources: GPIO, SPI and AT45DBX. More...
 
static void init_stdio (void)
 Initializes STDIO. More...
 
int main (void)
 Main function. Execution starts here. More...
 
static void sd_mmc_mci_resources_init (void)
 Initializes SD/MMC resources: GPIO, MCI and SD/MMC. More...
 
static void sd_mmc_spi_resources_init (void)
 Initializes SD/MMC resources: GPIO, SPI and SD/MMC. More...
 

Variables

System Clock Frequencies
pm_freq_param_t pm_freq_param
 

#define AT45DBX_ENABLE_NPCS_PIN (   NPCS,
  unused 
)    {AT45DBX_SPI_NPCS##NPCS##_PIN, AT45DBX_SPI_NPCS##NPCS##_FUNCTION},

Referenced by at45dbx_resources_init().

int _init_startup ( void  )

Low-level initialization routine called during startup, before the main function.

This version comes in replacement to the default one provided by the Newlib add-ons library. Newlib add-ons' _init_startup only calls init_exceptions, but Newlib add-ons' exception and interrupt vectors are defined in the same section and Newlib add-ons' interrupt vectors are not compatible with the interrupt management of the INTC module. More low-level initializations are besides added here.

References _evba, Enable_global_exception, INTC_init_interrupts(), and Set_system_register.

static void sd_mmc_mci_resources_init ( void  )
static

Initializes SD/MMC resources: GPIO, MCI and SD/MMC.

References pm_freq_param_t::cpu_f, gpio_enable_module(), gpio_enable_pin_pull_up(), pm_freq_param_t::pba_f, and sd_mmc_mci_init().

Referenced by main().

static void sd_mmc_spi_resources_init ( void  )
static

pm_freq_param_t pm_freq_param
Initial value:
=
{
.cpu_f = APPLI_CPU_SPEED,
.pba_f = APPLI_PBA_SPEED,
.osc0_f = FOSC0,
.osc0_startup = OSC0_STARTUP
}
#define FOSC0
Definition: bsp-evk1104.c:26
#define APPLI_CPU_SPEED
Definition: avr32/applications/evk1104-usb-msc-sd-demo/main.h:50
#define APPLI_PBA_SPEED
Definition: avr32/applications/evk1104-usb-msc-sd-demo/main.h:51