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 "mci.h"
#include "conf_sd_mmc_mci.h"
#include "conf_usb.h"
#include "usb_task.h"
#include "device_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... | |
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 |
Initializes AT45DBX resources: GPIO, SPI and AT45DBX.
References AT45DBX_ENABLE_NPCS_PIN, at45dbx_init(), AT45DBX_MEM_CNT, AT45DBX_SPI, AT45DBX_SPI_BITS, AT45DBX_SPI_FIRST_NPCS, AT45DBX_SPI_MASTER_SPEED, AT45DBX_SPI_MISO_FUNCTION, AT45DBX_SPI_MISO_PIN, AT45DBX_SPI_MOSI_FUNCTION, AT45DBX_SPI_MOSI_PIN, AT45DBX_SPI_SCK_FUNCTION, AT45DBX_SPI_SCK_PIN, gpio_enable_module(), MREPEAT(), pm_freq_param_t::pba_f, spi_options_t::reg, spi_enable(), spi_initMaster(), spi_is_enabled(), and spi_selectionMode().
Referenced by main().
|
static |
Initializes STDIO.
References APPLI_PBA_SPEED, usart_options_t::baudrate, gpio_enable_module(), set_usart_base(), stdio_base, STDIO_USART, STDIO_USART_BAUDRATE, STDIO_USART_RX_FUNCTION, STDIO_USART_RX_PIN, STDIO_USART_TX_FUNCTION, STDIO_USART_TX_PIN, USART_1_STOPBIT, usart_init(), usart_init_rs232(), USART_NO_PARITY, and USART_NORMAL_CHMODE.
Referenced by main().
int main | ( | void | ) |
Main function. Execution starts here.
42 | Fatal error. |
References at45dbx_resources_init(), pm_freq_param_t::cpu_f, device_mass_storage_task(), device_mass_storage_task_init(), init_dbg_rs232(), init_stdio(), mmi_task(), mmi_task_init(), pm_freq_param_t::pba_f, pm_configure_clocks(), pm_configure_usb_clock(), PM_FREQ_STATUS_FAIL, sd_mmc_mci_resources_init(), usb_task(), and usb_task_init().
|
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, sd_mmc_mci_init(), SD_SLOT_8BITS, SD_SLOT_8BITS_CARD_DETECT, SD_SLOT_8BITS_CLK_FUNCTION, SD_SLOT_8BITS_CLK_PIN, SD_SLOT_8BITS_CMD_FUNCTION, SD_SLOT_8BITS_CMD_PIN, SD_SLOT_8BITS_DATA0_FUNCTION, SD_SLOT_8BITS_DATA0_PIN, SD_SLOT_8BITS_DATA1_FUNCTION, SD_SLOT_8BITS_DATA1_PIN, SD_SLOT_8BITS_DATA2_FUNCTION, SD_SLOT_8BITS_DATA2_PIN, SD_SLOT_8BITS_DATA3_FUNCTION, SD_SLOT_8BITS_DATA3_PIN, SD_SLOT_8BITS_DATA4_FUNCTION, SD_SLOT_8BITS_DATA4_PIN, SD_SLOT_8BITS_DATA5_FUNCTION, SD_SLOT_8BITS_DATA5_PIN, SD_SLOT_8BITS_DATA6_FUNCTION, SD_SLOT_8BITS_DATA6_PIN, SD_SLOT_8BITS_DATA7_FUNCTION, SD_SLOT_8BITS_DATA7_PIN, and SD_SLOT_8BITS_WRITE_PROTECT.
Referenced by main().
pm_freq_param_t pm_freq_param |
Referenced by mmi_task().