Definition in file main.c.
#include <stdio.h>
#include "conf_usb.h"
#include "usb_descriptors.h"
#include "compiler.h"
#include "preprocessor.h"
#include "board.h"
#include "print_funcs.h"
#include "intc.h"
#include "pm.h"
#include "gpio.h"
#include "ctrl_access.h"
#include "conf_at45dbx.h"
#include "usb_task.h"
#include "device_ctrl_panel_task.h"
#include "device_mass_storage_task.h"
#include "FreeRTOS.h"
#include "task.h"
Go to the source code of this file.
Defines | |
#define | AT45DBX_ENABLE_NPCS_PIN(NPCS, unused) {AT45DBX_SPI_NPCS##NPCS##_PIN, AT45DBX_SPI_NPCS##NPCS##_FUNCTION}, |
#define | CRLF "\r\n" |
Functions | |
static void | at45dbx_resources_init (void) |
Initializes AT45DBX resources: GPIO, SPI and AT45DBX. | |
int | main (void) |
Starts the generation of a 48-MHz clock for the USB. | |
Variables | |
const char *const | pcCtrlPanelVersion = "GCC "__VERSION__" "__DATE__" "__TIME__" ATMEL_CONTROLPANEL_AVR32_UC3_10000"CRLF |
#define AT45DBX_ENABLE_NPCS_PIN | ( | NPCS, | |||
unused | ) | {AT45DBX_SPI_NPCS##NPCS##_PIN, AT45DBX_SPI_NPCS##NPCS##_FUNCTION}, |
Referenced by at45dbx_resources_init().
static void at45dbx_resources_init | ( | void | ) | [static] |
Initializes AT45DBX resources: GPIO, SPI and AT45DBX.
Definition at line 98 of file main.c.
References AT45DBX_ENABLE_NPCS_PIN, AT45DBX_MEM_CNT, AT45DBX_SPI_BITS, AT45DBX_SPI_FIRST_NPCS, and AT45DBX_SPI_MASTER_SPEED.
Referenced by main().
00099 { 00100 static const gpio_map_t AT45DBX_SPI_GPIO_MAP = 00101 { 00102 {AT45DBX_SPI_SCK_PIN, AT45DBX_SPI_SCK_FUNCTION }, // SPI Clock. 00103 {AT45DBX_SPI_MISO_PIN, AT45DBX_SPI_MISO_FUNCTION }, // MISO. 00104 {AT45DBX_SPI_MOSI_PIN, AT45DBX_SPI_MOSI_FUNCTION }, // MOSI. 00105 #define AT45DBX_ENABLE_NPCS_PIN(NPCS, unused) \ 00106 {AT45DBX_SPI_NPCS##NPCS##_PIN, AT45DBX_SPI_NPCS##NPCS##_FUNCTION}, // Chip Select NPCS. 00107 MREPEAT(AT45DBX_MEM_CNT, AT45DBX_ENABLE_NPCS_PIN, ~) 00108 #undef AT45DBX_ENABLE_NPCS_PIN 00109 }; 00110 00111 // SPI options. 00112 spi_options_t spiOptions = 00113 { 00114 .reg = AT45DBX_SPI_FIRST_NPCS, // Defined in conf_at45dbx.h. 00115 .baudrate = AT45DBX_SPI_MASTER_SPEED, // Defined in conf_at45dbx.h. 00116 .bits = AT45DBX_SPI_BITS, // Defined in conf_at45dbx.h. 00117 .spck_delay = 0, 00118 .trans_delay = 0, 00119 .stay_act = 1, 00120 .spi_mode = 0, 00121 .modfdis = 1 00122 }; 00123 00124 // Assign I/Os to SPI. 00125 gpio_enable_module(AT45DBX_SPI_GPIO_MAP, 00126 sizeof(AT45DBX_SPI_GPIO_MAP) / sizeof(AT45DBX_SPI_GPIO_MAP[0])); 00127 00128 // Initialize as master. 00129 spi_initMaster(AT45DBX_SPI, &spiOptions); 00130 00131 // Set selection mode: variable_ps, pcs_decode, delay. 00132 spi_selectionMode(AT45DBX_SPI, 0, 0, 0); 00133 00134 // Enable SPI. 00135 spi_enable(AT45DBX_SPI); 00136 00137 // Initialize data flash with SPI clock Osc0. 00138 at45dbx_init(spiOptions, FOSC0); 00139 }
int main | ( | void | ) |
Starts the generation of a 48-MHz clock for the USB.
Main function. Execution starts here.
42 | Fatal error. |
Definition at line 151 of file main.c.
References at45dbx_resources_init(), device_full_custom_task_init(), device_mass_storage_task_init(), and pcCtrlPanelVersion.
00152 { 00153 // Switch main clock from internal RC to external Oscillator 0 00154 pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP); 00155 00156 // Start Debug RS232 on USART_1 00157 init_dbg_rs232(FOSC0); 00158 00159 #if (AT45DBX_MEM==ENABLE) &&( EVK1101_CTRL_PANEL_PID==EVK1101_CTRL_PANEL_DEMO_HID_MS_PID ) 00160 // This ressource is used by the mass storage device task 00161 at45dbx_resources_init(); 00162 #endif 00163 00164 #if( EVK1101_CTRL_PANEL_PID==EVK1101_CTRL_PANEL_DEMO_HID_MS_PID ) 00165 if (!ctrl_access_init()) 00166 { 00167 portDBG_TRACE("The module CTRL_ACCESS could not be initialized."); 00168 return 42; 00169 } 00170 #endif 00171 00172 pm_configure_usb_clock(); 00173 usb_task_init(); 00174 00175 #if USB_DEVICE_FEATURE == ENABLED 00176 device_full_custom_task_init(); 00177 #if( EVK1101_CTRL_PANEL_PID==EVK1101_CTRL_PANEL_DEMO_HID_MS_PID ) 00178 device_mass_storage_task_init(); 00179 #endif 00180 #endif 00181 00182 portDBG_TRACE("AVR UC3B Control Panel Firmware."); 00183 portDBG_TRACE(pcCtrlPanelVersion); 00184 vTaskStartScheduler(); 00185 portDBG_TRACE("FreeRTOS returned."); 00186 return 42; 00187 }
const char* const pcCtrlPanelVersion = "GCC "__VERSION__" "__DATE__" "__TIME__" ATMEL_CONTROLPANEL_AVR32_UC3_10000"CRLF |