summaryrefslogtreecommitdiff
path: root/usb-device-massstorage-project
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-12-03 00:48:23 +0100
committerHarald Welte <laforge@gnumonks.org>2011-12-03 00:48:23 +0100
commitc1ad1298a5f2dd0ebe2d398248b89feb111a02f5 (patch)
tree720321f892413c5a60fca31db7a3478d7fa4435e /usb-device-massstorage-project
parent84763f9c33b54ecd74565fce8ea633f83a7aaa45 (diff)
import usb-device-mass-storage project
Diffstat (limited to 'usb-device-massstorage-project')
-rw-r--r--usb-device-massstorage-project/Makefile322
-rw-r--r--usb-device-massstorage-project/bin/.empty_dir0
-rw-r--r--usb-device-massstorage-project/bin/usb-device-massstorage-project-at91sam3u-ek-at91sam3u4.map2381
-rw-r--r--usb-device-massstorage-project/main.c1154
-rw-r--r--usb-device-massstorage-project/obj/.empty_dir0
5 files changed, 3857 insertions, 0 deletions
diff --git a/usb-device-massstorage-project/Makefile b/usb-device-massstorage-project/Makefile
new file mode 100644
index 0000000..6b26565
--- /dev/null
+++ b/usb-device-massstorage-project/Makefile
@@ -0,0 +1,322 @@
+# ----------------------------------------------------------------------------
+# ATMEL Microcontroller Software Support
+# ----------------------------------------------------------------------------
+# Copyright (c) 2008, Atmel Corporation
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the disclaimer below.
+#
+# Atmel's name may not be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+# DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ----------------------------------------------------------------------------
+
+# Makefile for compiling usb-device-massstorage-project
+
+#-------------------------------------------------------------------------------
+# User-modifiable options
+#-------------------------------------------------------------------------------
+
+# Chip & board used for compilation
+# (can be overriden by adding CHIP=chip and BOARD=board to the command-line)
+CHIP = at91sam3u4
+BOARD = at91sam3u-ek
+
+# Trace level used for compilation
+# (can be overriden by adding TRACE_LEVEL=#number to the command-line)
+# TRACE_LEVEL_DEBUG 5
+# TRACE_LEVEL_INFO 4
+# TRACE_LEVEL_WARNING 3
+# TRACE_LEVEL_ERROR 2
+# TRACE_LEVEL_FATAL 1
+# TRACE_LEVEL_NO_TRACE 0
+TRACE_LEVEL = 3
+
+# Optimization level, put in comment for debugging
+OPTIMIZATION = -O0
+
+# AT91 library directory
+AT91LIB = ../../at91lib
+
+# External library
+EXT_LIBS= ../external_libs
+
+# Output file basename
+OUTPUT = usb-device-massstorage-project-$(BOARD)-$(CHIP)
+
+# Compile with chip specific features
+include $(AT91LIB)/boards/$(BOARD)/$(CHIP)/chip.mak
+
+# Compile for all memories available on the board (this sets $(MEMORIES))
+include $(AT91LIB)/boards/$(BOARD)/board.mak
+
+# Output directories
+BIN = bin
+OBJ = obj
+
+#-------------------------------------------------------------------------------
+# Tools
+#-------------------------------------------------------------------------------
+
+# Tool suffix when cross-compiling
+CROSS_COMPILE = arm-none-eabi-
+
+# Compilation tools
+CC = $(CROSS_COMPILE)gcc
+SIZE = $(CROSS_COMPILE)size
+STRIP = $(CROSS_COMPILE)strip
+OBJCOPY = $(CROSS_COMPILE)objcopy
+
+# Flags
+INCLUDES += -I$(AT91LIB)/boards/$(BOARD)
+INCLUDES += -I$(AT91LIB)/peripherals
+INCLUDES += -I$(AT91LIB)/drivers
+INCLUDES += -I$(AT91LIB)/memories
+INCLUDES += -I$(AT91LIB)
+INCLUDES += -I$(EXT_LIBS)
+
+ifeq ($(CHIP_CORE), cortexm3)
+TARGET_OPTS = -mcpu=cortex-m3 -mthumb
+else
+TARGET_OPTS =
+endif
+
+CFLAGS += $(TARGET_OPTS)
+CFLAGS += -Wall -mlong-calls -ffunction-sections
+CFLAGS += -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -DTRACE_LEVEL=$(TRACE_LEVEL)
+ASFLAGS = $(TARGET_OPTS) -Wall -g $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D__ASSEMBLY__
+LDFLAGS = -g $(OPTIMIZATION) -nostartfiles $(TARGET_OPTS) -Wl,-Map=$(OUTPUT).map,--cref,--gc-sections
+
+ifdef ORIGIN_SD_PORT
+CFLAGS += -DORIGIN_SD_PORT_$(ORIGIN_SD_PORT)
+endif
+
+#-------------------------------------------------------------------------------
+# Files
+#-------------------------------------------------------------------------------
+
+# Objects built from C source files
+
+# at91lib/usb/common/core
+VPATH += $(AT91LIB)/usb/common/core
+C_OBJECTS += USBConfigurationDescriptor.o
+C_OBJECTS += USBEndpointDescriptor.o
+C_OBJECTS += USBFeatureRequest.o
+C_OBJECTS += USBGenericDescriptor.o
+C_OBJECTS += USBGenericRequest.o
+C_OBJECTS += USBGetDescriptorRequest.o
+C_OBJECTS += USBInterfaceRequest.o
+C_OBJECTS += USBSetAddressRequest.o
+C_OBJECTS += USBSetConfigurationRequest.o
+
+# at91lib/usb/device/core
+VPATH += $(AT91LIB)/usb/device/core
+#C_OBJECTS += USBD_OTGHS.o
+#C_OBJECTS += USBD_UDP.o
+C_OBJECTS += USBD_UDPHS.o
+C_OBJECTS += USBDCallbacks_Initialized.o
+#C_OBJECTS += USBDCallbacks_RequestReceived.o
+C_OBJECTS += USBDCallbacks_Reset.o
+#C_OBJECTS += USBDCallbacks_Resumed.o
+#C_OBJECTS += USBDCallbacks_Suspended.o
+C_OBJECTS += USBDDriver.o
+C_OBJECTS += USBDDriverCb_IfSettingChanged.o
+#C_OBJECTS += USBDDriverCb_CfgChanged.o
+
+# at91lib/usb/device/massstorage
+VPATH += $(AT91LIB)/usb/device/massstorage
+VPATH += $(AT91LIB)/usb/common/massstorage
+C_OBJECTS += MSDDriver.o
+C_OBJECTS += MSDDriverDescriptors.o
+C_OBJECTS += MSDDStateMachine.o
+C_OBJECTS += MSDLun.o
+C_OBJECTS += SBCMethods.o
+
+# at91lib/utility
+VPATH += $(AT91LIB)/utility
+C_OBJECTS += led.o
+C_OBJECTS += math.o
+C_OBJECTS += stdio.o
+
+# at91lib/peripherals
+PERIPH = $(AT91LIB)/peripherals
+VPATH += $(PERIPH)/irq
+VPATH += $(PERIPH)/dbgu
+VPATH += $(PERIPH)/eefc
+VPATH += $(PERIPH)/efc
+VPATH += $(PERIPH)/pio
+VPATH += $(PERIPH)/pmc
+VPATH += $(PERIPH)/tc
+VPATH += $(PERIPH)/mci
+VPATH += $(PERIPH)/dma
+VPATH += $(PERIPH)/hsmc4
+C_OBJECTS += dbgu.o
+C_OBJECTS += pio.o
+C_OBJECTS += pio_it.o
+C_OBJECTS += pmc.o
+C_OBJECTS += tc.o
+
+# at91lib/drivers
+VPATH += $(AT91LIB)/drivers/dmad
+
+# at91lib/boards/at91xxx/
+VPATH += $(AT91LIB)/boards/$(BOARD)
+VPATH += $(AT91LIB)/boards/$(BOARD)/$(CHIP)
+C_OBJECTS += board_lowlevel.o
+C_OBJECTS += trace.o
+C_OBJECTS += board_memories.o
+
+# at91lib/memories
+VPATH += $(AT91LIB)/memories
+C_OBJECTS += Media.o
+
+# external_libs
+VPATH += $(EXT_LIBS)/cmsis
+
+ifeq ($(CHIP_IP_MCI), MCI_DMA)
+VPATH += $(AT91LIB)/memories/sdmmc
+C_OBJECTS += sdmmc_mci.o
+C_OBJECTS += MEDSdcard.o
+C_OBJECTS += mci_hs.o
+C_OBJECTS += dma.o
+C_OBJECTS += dmad.o
+endif
+
+ifeq ($(CHIP_IP_MCI), MCI_PDC)
+VPATH += $(AT91LIB)/memories/sdmmc
+C_OBJECTS += sdmmc_mci.o
+C_OBJECTS += MEDSdcard.o
+C_OBJECTS += mci.o
+endif
+
+ifeq ($(CHIP_CORE), cortexm3)
+C_OBJECTS += MEDRamDisk.o
+else
+C_OBJECTS += MEDSdram.o
+C_OBJECTS += MEDDdram.o
+endif
+
+# at91lib/memories/flash
+VPATH += $(AT91LIB)/memories/flash
+
+ifneq ($(CHIP_CORE), cortexm3)
+ifeq ($(CHIP_IP_EFC),EFC)
+C_OBJECTS += efc.o
+C_OBJECTS += flashd_efc.o
+C_OBJECTS += MEDFlash.o
+else ifeq ($(CHIP_IP_EFC),EEFC)
+C_OBJECTS += eefc.o
+C_OBJECTS += flashd_eefc.o
+C_OBJECTS += MEDFlash.o
+endif
+endif
+
+# at91lib/memories/nandflash
+#VPATH += $(AT91LIB)/memories/nandflash
+
+#C_OBJECTS += MEDNandFlash.o
+#C_OBJECTS += EccNandFlash.o
+##C_OBJECTS += SkipBlockNandFlash.o
+#C_OBJECTS += NandFlashModel.o
+#C_OBJECTS += NandFlashModelList.o
+#C_OBJECTS += NandSpareScheme.o
+#C_OBJECTS += ManagedNandFlash.o
+#C_OBJECTS += MappedNandFlash.o
+#C_OBJECTS += TranslatedNandFlash.o
+#C_OBJECTS += math.o
+#C_OBJECTS += hamming.o
+
+# Objects for chips with nfc
+#ifeq ($(CHIP_IP_NAND), NAND_CTRL)
+#C_OBJECTS += NfcRawNandFlash.o
+#C_OBJECTS += hsmc4.o
+#else
+#C_OBJECTS += RawNandFlash.o
+#endif
+
+#Objects for chips with HW ECC
+ifeq ($(CHIP_IP_ECC), HW_ECC)
+C_OBJECTS += hsmc4_ecc.o
+endif
+
+# Individual objects for different chips
+ifeq ($(CHIP_CORE), cortexm3)
+VPATH += $(PERIPH)/systick
+
+C_OBJECTS += nvic.o
+C_OBJECTS += exceptions.o
+C_OBJECTS += board_cstartup_gnu.o
+C_OBJECTS += core_cm3.o
+C_OBJECTS += systick.o
+else
+VPATH += $(PERIPH)/cp15
+VPATH += $(PERIPH)/pit
+
+C_OBJECTS += aic.o
+C_OBJECTS += cp15.o
+C_OBJECTS += pit.o
+endif
+
+# usb-device-massstorage-project
+C_OBJECTS += main.o
+
+# Objects built from Assembly source files
+ifneq ($(CHIP_CORE), cortexm3)
+# at91lib/boards/at91xxx/
+ASM_OBJECTS += board_cstartup.o
+# at91lib/peripherals
+ASM_OBJECTS += cp15_asm.o
+endif
+
+# Append OBJ and BIN directories to output filename
+OUTPUT := $(BIN)/$(OUTPUT)
+
+#-------------------------------------------------------------------------------
+# Rules
+#-------------------------------------------------------------------------------
+
+all: $(BIN) $(OBJ) $(MEMORIES)
+
+$(BIN) $(OBJ):
+ mkdir $@
+
+define RULES
+C_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(C_OBJECTS))
+ASM_OBJECTS_$(1) = $(addprefix $(OBJ)/$(1)_, $(ASM_OBJECTS))
+
+$(1): $$(ASM_OBJECTS_$(1)) $$(C_OBJECTS_$(1))
+ $(CC) $(LDFLAGS) -T"$(AT91LIB)/boards/$(BOARD)/$(CHIP)/$$@.lds" -o $(OUTPUT)-$$@.elf $$^
+ $(OBJCOPY) -O binary $(OUTPUT)-$$@.elf $(OUTPUT)-$$@.bin
+ $(SIZE) $$^ $(OUTPUT)-$$@.elf
+
+$$(C_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.c Makefile $(OBJ) $(BIN)
+ $(CC) $(CFLAGS) -D$(1) -c -o $$@ $$<
+
+$$(ASM_OBJECTS_$(1)): $(OBJ)/$(1)_%.o: %.S Makefile $(OBJ) $(BIN)
+ $(CC) $(ASFLAGS) -D$(1) -c -o $$@ $$<
+
+debug_$(1): $(1)
+ perl ../resources/gdb/debug.pl $(OUTPUT)-$(1).elf
+
+endef
+
+$(foreach MEMORY, $(MEMORIES), $(eval $(call RULES,$(MEMORY))))
+
+clean:
+ -rm -f $(OBJ)/*.o $(BIN)/*.bin $(BIN)/*.elf
+
diff --git a/usb-device-massstorage-project/bin/.empty_dir b/usb-device-massstorage-project/bin/.empty_dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/usb-device-massstorage-project/bin/.empty_dir
diff --git a/usb-device-massstorage-project/bin/usb-device-massstorage-project-at91sam3u-ek-at91sam3u4.map b/usb-device-massstorage-project/bin/usb-device-massstorage-project-at91sam3u-ek-at91sam3u4.map
new file mode 100644
index 0000000..50eb7fe
--- /dev/null
+++ b/usb-device-massstorage-project/bin/usb-device-massstorage-project-at91sam3u-ek-at91sam3u4.map
@@ -0,0 +1,2381 @@
+Archive member included because of file (symbol)
+
+/usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ obj/flash_stdio.o (_impure_ptr)
+/usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+ obj/flash_board_memories.o (memset)
+
+Allocating common symbols
+Common symbol size file
+
+medias 0xcc obj/flash_main.o
+msdBuffer 0x1800 obj/flash_main.o
+luns 0x120 obj/flash_main.o
+
+Discarded input sections
+
+ .text 0x0000000000000000 0x0 obj/flash_USBConfigurationDescriptor.o
+ .data 0x0000000000000000 0x0 obj/flash_USBConfigurationDescriptor.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBConfigurationDescriptor.o
+ .text.USBConfigurationDescriptor_GetNumInterfaces
+ 0x0000000000000000 0x18 obj/flash_USBConfigurationDescriptor.o
+ .text 0x0000000000000000 0x0 obj/flash_USBEndpointDescriptor.o
+ .data 0x0000000000000000 0x0 obj/flash_USBEndpointDescriptor.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBEndpointDescriptor.o
+ .text.USBEndpointDescriptor_GetInterval
+ 0x0000000000000000 0x18 obj/flash_USBEndpointDescriptor.o
+ .text 0x0000000000000000 0x0 obj/flash_USBFeatureRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBFeatureRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBFeatureRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBGenericDescriptor.o
+ .data 0x0000000000000000 0x0 obj/flash_USBGenericDescriptor.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBGenericDescriptor.o
+ .text 0x0000000000000000 0x0 obj/flash_USBGenericRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBGenericRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBGenericRequest.o
+ .text.USBGenericRequest_GetType
+ 0x0000000000000000 0x24 obj/flash_USBGenericRequest.o
+ .text.USBGenericRequest_GetDirection
+ 0x0000000000000000 0x2c obj/flash_USBGenericRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBGetDescriptorRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBGetDescriptorRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBGetDescriptorRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBInterfaceRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBInterfaceRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBInterfaceRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBSetAddressRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBSetAddressRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBSetAddressRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBSetConfigurationRequest.o
+ .data 0x0000000000000000 0x0 obj/flash_USBSetConfigurationRequest.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBSetConfigurationRequest.o
+ .text 0x0000000000000000 0x0 obj/flash_USBD_UDPHS.o
+ .data 0x0000000000000000 0x0 obj/flash_USBD_UDPHS.o
+ .text.USBD_MblWrite
+ 0x0000000000000000 0x3b4 obj/flash_USBD_UDPHS.o
+ .text.USBD_MblReuse
+ 0x0000000000000000 0x17c obj/flash_USBD_UDPHS.o
+ .text.USBD_RemoteWakeUp
+ 0x0000000000000000 0x68 obj/flash_USBD_UDPHS.o
+ .text.USBD_ConfigureSpeed
+ 0x0000000000000000 0x54 obj/flash_USBD_UDPHS.o
+ .text 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Initialized.o
+ .data 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Initialized.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Initialized.o
+ .text 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Reset.o
+ .data 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Reset.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBDCallbacks_Reset.o
+ .text 0x0000000000000000 0x0 obj/flash_USBDDriver.o
+ .data 0x0000000000000000 0x0 obj/flash_USBDDriver.o
+ .text.USBDDriver_IsRemoteWakeUpEnabled
+ 0x0000000000000000 0x18 obj/flash_USBDDriver.o
+ .text 0x0000000000000000 0x0 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .data 0x0000000000000000 0x0 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .bss 0x0000000000000000 0x0 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .text 0x0000000000000000 0x0 obj/flash_MSDDriver.o
+ .data 0x0000000000000000 0x0 obj/flash_MSDDriver.o
+ .text.MSDDriver_RemoteWakeUp
+ 0x0000000000000000 0x3c obj/flash_MSDDriver.o
+ .text 0x0000000000000000 0x0 obj/flash_MSDDriverDescriptors.o
+ .bss 0x0000000000000000 0x0 obj/flash_MSDDriverDescriptors.o
+ .text 0x0000000000000000 0x0 obj/flash_MSDDStateMachine.o
+ .data 0x0000000000000000 0x0 obj/flash_MSDDStateMachine.o
+ .bss 0x0000000000000000 0x0 obj/flash_MSDDStateMachine.o
+ .text 0x0000000000000000 0x0 obj/flash_MSDLun.o
+ .bss 0x0000000000000000 0x0 obj/flash_MSDLun.o
+ .text 0x0000000000000000 0x0 obj/flash_SBCMethods.o
+ .data 0x0000000000000000 0x0 obj/flash_SBCMethods.o
+ .bss 0x0000000000000000 0x0 obj/flash_SBCMethods.o
+ .text 0x0000000000000000 0x0 obj/flash_led.o
+ .data 0x0000000000000000 0x0 obj/flash_led.o
+ .bss 0x0000000000000000 0x0 obj/flash_led.o
+ .text.LED_Toggle
+ 0x0000000000000000 0x88 obj/flash_led.o
+ .text 0x0000000000000000 0x0 obj/flash_math.o
+ .data 0x0000000000000000 0x0 obj/flash_math.o
+ .bss 0x0000000000000000 0x0 obj/flash_math.o
+ .text.min 0x0000000000000000 0x24 obj/flash_math.o
+ .text.absv 0x0000000000000000 0x24 obj/flash_math.o
+ .text.power 0x0000000000000000 0x38 obj/flash_math.o
+ .text 0x0000000000000000 0x0 obj/flash_stdio.o
+ .data 0x0000000000000000 0x428 obj/flash_stdio.o
+ .bss 0x0000000000000000 0x0 obj/flash_stdio.o
+ .text.snprintf
+ 0x0000000000000000 0x3c obj/flash_stdio.o
+ .text.fprintf 0x0000000000000000 0x38 obj/flash_stdio.o
+ .text.sprintf 0x0000000000000000 0x38 obj/flash_stdio.o
+ .text.puts 0x0000000000000000 0x30 obj/flash_stdio.o
+ .text 0x0000000000000000 0x0 obj/flash_dbgu.o
+ .data 0x0000000000000000 0x0 obj/flash_dbgu.o
+ .bss 0x0000000000000000 0x0 obj/flash_dbgu.o
+ .text.DBGU_IsRxReady
+ 0x0000000000000000 0x1c obj/flash_dbgu.o
+ .text.DBGU_GetChar
+ 0x0000000000000000 0x2c obj/flash_dbgu.o
+ .text 0x0000000000000000 0x0 obj/flash_pio.o
+ .data 0x0000000000000000 0x0 obj/flash_pio.o
+ .bss 0x0000000000000000 0x0 obj/flash_pio.o
+ .text.PIO_GetOutputDataStatus
+ 0x0000000000000000 0x30 obj/flash_pio.o
+ .text 0x0000000000000000 0x0 obj/flash_pio_it.o
+ .data 0x0000000000000000 0x0 obj/flash_pio_it.o
+ .text.PIO_DisableIt
+ 0x0000000000000000 0x44 obj/flash_pio_it.o
+ .text 0x0000000000000000 0x0 obj/flash_pmc.o
+ .data 0x0000000000000000 0x0 obj/flash_pmc.o
+ .bss 0x0000000000000000 0x0 obj/flash_pmc.o
+ .text.PMC_DisableProcessorClock
+ 0x0000000000000000 0x2c obj/flash_pmc.o
+ .rodata 0x0000000000000000 0x54 obj/flash_pmc.o
+ .text.PMC_EnablePeripheral
+ 0x0000000000000000 0x84 obj/flash_pmc.o
+ .text.PMC_DisablePeripheral
+ 0x0000000000000000 0x84 obj/flash_pmc.o
+ .text.PMC_EnableAllPeripherals
+ 0x0000000000000000 0x3c obj/flash_pmc.o
+ .text.PMC_DisableAllPeripherals
+ 0x0000000000000000 0x34 obj/flash_pmc.o
+ .text.PMC_IsAllPeriphEnabled
+ 0x0000000000000000 0x28 obj/flash_pmc.o
+ .text.PMC_IsPeriphEnabled
+ 0x0000000000000000 0x2c obj/flash_pmc.o
+ .text.PMC_CPUInIdleMode
+ 0x0000000000000000 0x10 obj/flash_pmc.o
+ .text 0x0000000000000000 0x0 obj/flash_tc.o
+ .data 0x0000000000000000 0x0 obj/flash_tc.o
+ .bss 0x0000000000000000 0x0 obj/flash_tc.o
+ .text.TC_Stop 0x0000000000000000 0x1c obj/flash_tc.o
+ .text 0x0000000000000000 0x0 obj/flash_board_lowlevel.o
+ .data 0x0000000000000000 0x0 obj/flash_board_lowlevel.o
+ .bss 0x0000000000000000 0x0 obj/flash_board_lowlevel.o
+ .text.SetFlashWaitState
+ 0x0000000000000000 0x3c obj/flash_board_lowlevel.o
+ .text 0x0000000000000000 0x0 obj/flash_trace.o
+ .data 0x0000000000000000 0x0 obj/flash_trace.o
+ .bss 0x0000000000000000 0x0 obj/flash_trace.o
+ .text.putchar 0x0000000000000000 0x30 obj/flash_trace.o
+ .text.PrintChar
+ 0x0000000000000000 0x44 obj/flash_trace.o
+ .rodata 0x0000000000000000 0xdc obj/flash_trace.o
+ .text.TRACE_DumpFrame
+ 0x0000000000000000 0x58 obj/flash_trace.o
+ .text.TRACE_DumpMemory
+ 0x0000000000000000 0x1e8 obj/flash_trace.o
+ .text.TRACE_GetInteger
+ 0x0000000000000000 0xcc obj/flash_trace.o
+ .text.TRACE_GetIntegerMinMax
+ 0x0000000000000000 0x84 obj/flash_trace.o
+ .text.TRACE_GetHexa32
+ 0x0000000000000000 0xe0 obj/flash_trace.o
+ .text 0x0000000000000000 0x0 obj/flash_board_memories.o
+ .data 0x0000000000000000 0x0 obj/flash_board_memories.o
+ .bss 0x0000000000000000 0x0 obj/flash_board_memories.o
+ .text.BOARD_ConfigureNandFlash
+ 0x0000000000000000 0x88 obj/flash_board_memories.o
+ .text.BOARD_ConfigurePsram
+ 0x0000000000000000 0x2b8 obj/flash_board_memories.o
+ .text 0x0000000000000000 0x0 obj/flash_Media.o
+ .data 0x0000000000000000 0x0 obj/flash_Media.o
+ .text.MED_Handler
+ 0x0000000000000000 0x20 obj/flash_Media.o
+ .text.MED_HandleAll
+ 0x0000000000000000 0x4c obj/flash_Media.o
+ .text 0x0000000000000000 0x0 obj/flash_sdmmc_mci.o
+ .bss 0x0000000000000000 0x0 obj/flash_sdmmc_mci.o
+ .text.DecodeR1
+ 0x0000000000000000 0x14 obj/flash_sdmmc_mci.o
+ .text.DecodeR2
+ 0x0000000000000000 0x14 obj/flash_sdmmc_mci.o
+ .text.Cmd53 0x0000000000000000 0xec obj/flash_sdmmc_mci.o
+ .text.MoveToTranState
+ 0x0000000000000000 0xec obj/flash_sdmmc_mci.o
+ .text.SdMmcSwitchHsMode
+ 0x0000000000000000 0x230 obj/flash_sdmmc_mci.o
+ .text.SdioFindTuples
+ 0x0000000000000000 0xc8 obj/flash_sdmmc_mci.o
+ .text.SDIO_ReadDirect
+ 0x0000000000000000 0xc4 obj/flash_sdmmc_mci.o
+ .text.SDIO_WriteDirect
+ 0x0000000000000000 0x80 obj/flash_sdmmc_mci.o
+ .text.SDIO_ReadBytes
+ 0x0000000000000000 0xa8 obj/flash_sdmmc_mci.o
+ .text.SDIO_WriteBytes
+ 0x0000000000000000 0xa8 obj/flash_sdmmc_mci.o
+ .text.SD_ReadBlock
+ 0x0000000000000000 0x14c obj/flash_sdmmc_mci.o
+ .text.SD_WriteBlock
+ 0x0000000000000000 0x14c obj/flash_sdmmc_mci.o
+ .text.SD_Stop 0x0000000000000000 0x78 obj/flash_sdmmc_mci.o
+ .text.SD_HighSpeedMode
+ 0x0000000000000000 0xc4 obj/flash_sdmmc_mci.o
+ .text.SD_BusWidth
+ 0x0000000000000000 0x1c obj/flash_sdmmc_mci.o
+ .text.MMC_GetTotalSizeKB
+ 0x0000000000000000 0x6c obj/flash_sdmmc_mci.o
+ .text.MMC_GetBootSizeKB
+ 0x0000000000000000 0x78 obj/flash_sdmmc_mci.o
+ .text.SDIO_DisplayCardInformation
+ 0x0000000000000000 0x280 obj/flash_sdmmc_mci.o
+ .text.SD_DisplayRegisterCID
+ 0x0000000000000000 0x28 obj/flash_sdmmc_mci.o
+ .text.SD_DisplayRegisterCSD
+ 0x0000000000000000 0x28 obj/flash_sdmmc_mci.o
+ .text.SD_DisplayRegisterECSD
+ 0x0000000000000000 0x34 obj/flash_sdmmc_mci.o
+ .text.SD_DisplayRegisterSCR
+ 0x0000000000000000 0x28 obj/flash_sdmmc_mci.o
+ .text.SD_DisplaySdStatus
+ 0x0000000000000000 0x38 obj/flash_sdmmc_mci.o
+ .text 0x0000000000000000 0x0 obj/flash_MEDSdcard.o
+ .data 0x0000000000000000 0x0 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_Read
+ 0x0000000000000000 0xb0 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_Write
+ 0x0000000000000000 0xb8 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_Initialize
+ 0x0000000000000000 0x234 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_EraseAll
+ 0x0000000000000000 0xd8 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_EraseBlock
+ 0x0000000000000000 0x98 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_GetDriver
+ 0x0000000000000000 0x34 obj/flash_MEDSdcard.o
+ .text 0x0000000000000000 0x0 obj/flash_mci_hs.o
+ .text.MCI_Enable
+ 0x0000000000000000 0xa4 obj/flash_mci_hs.o
+ .text.MCI_Close
+ 0x0000000000000000 0x90 obj/flash_mci_hs.o
+ .text.MCI_GetSpeed
+ 0x0000000000000000 0xb8 obj/flash_mci_hs.o
+ .text.MCI_CheckBusy
+ 0x0000000000000000 0x7c obj/flash_mci_hs.o
+ .text.MCI_FifoTransfer
+ 0x0000000000000000 0x1c obj/flash_mci_hs.o
+ .text 0x0000000000000000 0x0 obj/flash_dma.o
+ .data 0x0000000000000000 0x0 obj/flash_dma.o
+ .bss 0x0000000000000000 0x0 obj/flash_dma.o
+ .text.DMA_Config
+ 0x0000000000000000 0x20 obj/flash_dma.o
+ .text.DMA_Disable
+ 0x0000000000000000 0x18 obj/flash_dma.o
+ .text.DMA_GetMaskedStatus
+ 0x0000000000000000 0x30 obj/flash_dma.o
+ .text.DMA_EnableChannels
+ 0x0000000000000000 0x20 obj/flash_dma.o
+ .text.DMA_DisableChannels
+ 0x0000000000000000 0x20 obj/flash_dma.o
+ .text.DMA_SetFlowControl
+ 0x0000000000000000 0xc0 obj/flash_dma.o
+ .text 0x0000000000000000 0x0 obj/flash_dmad.o
+ .data 0x0000000000000000 0x0 obj/flash_dmad.o
+ .text.DMAD_Configure_Buffer
+ 0x0000000000000000 0xac obj/flash_dmad.o
+ .text.DMAD_Configure_TransferController
+ 0x0000000000000000 0x9c obj/flash_dmad.o
+ .text.DMAD_BufferTransfer
+ 0x0000000000000000 0xe0 obj/flash_dmad.o
+ .text.DMAD_IsFinished
+ 0x0000000000000000 0x80 obj/flash_dmad.o
+ .text 0x0000000000000000 0x0 obj/flash_MEDRamDisk.o
+ .data 0x0000000000000000 0x0 obj/flash_MEDRamDisk.o
+ .bss 0x0000000000000000 0x0 obj/flash_MEDRamDisk.o
+ .text.AlignedCopy
+ 0x0000000000000000 0x70 obj/flash_MEDRamDisk.o
+ .text.UnalignedCopy
+ 0x0000000000000000 0x44 obj/flash_MEDRamDisk.o
+ .rodata 0x0000000000000000 0x98 obj/flash_MEDRamDisk.o
+ .text.MEDRamDisk_Read
+ 0x0000000000000000 0xe4 obj/flash_MEDRamDisk.o
+ .text.MEDRamDisk_Write
+ 0x0000000000000000 0xf0 obj/flash_MEDRamDisk.o
+ .text.MEDRamDisk_Initialize
+ 0x0000000000000000 0x178 obj/flash_MEDRamDisk.o
+ .text 0x0000000000000000 0x0 obj/flash_nvic.o
+ .data 0x0000000000000000 0x0 obj/flash_nvic.o
+ .bss 0x0000000000000000 0x0 obj/flash_nvic.o
+ .text.NVIC_SetPendingIRQ
+ 0x0000000000000000 0x3c obj/flash_nvic.o
+ .text.IRQ_DisableIT
+ 0x0000000000000000 0x24 obj/flash_nvic.o
+ .text.NVIC_SetPending
+ 0x0000000000000000 0x24 obj/flash_nvic.o
+ .text.NVIC_ClrPending
+ 0x0000000000000000 0x24 obj/flash_nvic.o
+ .text.NVIC_Swi
+ 0x0000000000000000 0x1c obj/flash_nvic.o
+ .text 0x0000000000000000 0x0 obj/flash_exceptions.o
+ .data 0x0000000000000000 0x0 obj/flash_exceptions.o
+ .bss 0x0000000000000000 0x0 obj/flash_exceptions.o
+ .text.SYS_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.PIOA_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.PIOB_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.PIOC_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.MCI0_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.TC0_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text.USBD_IrqHandler
+ 0x0000000000000000 0x8 obj/flash_exceptions.o
+ .text 0x0000000000000000 0x0 obj/flash_board_cstartup_gnu.o
+ .data 0x0000000000000000 0x0 obj/flash_board_cstartup_gnu.o
+ .bss 0x0000000000000000 0x0 obj/flash_board_cstartup_gnu.o
+ .text 0x0000000000000000 0x0 obj/flash_core_cm3.o
+ .data 0x0000000000000000 0x0 obj/flash_core_cm3.o
+ .bss 0x0000000000000000 0x0 obj/flash_core_cm3.o
+ .text.__get_PSP
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_PSP
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text.__get_MSP
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_MSP
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text.__get_BASEPRI
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_BASEPRI
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text.__get_PRIMASK
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_PRIMASK
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text.__get_FAULTMASK
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_FAULTMASK
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text.__REV 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__REV16 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__REVSH 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__RBIT 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__LDREXB
+ 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__LDREXH
+ 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__LDREXW
+ 0x0000000000000000 0x24 obj/flash_core_cm3.o
+ .text.__STREXB
+ 0x0000000000000000 0x2c obj/flash_core_cm3.o
+ .text.__STREXH
+ 0x0000000000000000 0x2c obj/flash_core_cm3.o
+ .text.__STREXW
+ 0x0000000000000000 0x28 obj/flash_core_cm3.o
+ .text.__get_CONTROL
+ 0x0000000000000000 0x20 obj/flash_core_cm3.o
+ .text.__set_CONTROL
+ 0x0000000000000000 0x18 obj/flash_core_cm3.o
+ .text 0x0000000000000000 0x0 obj/flash_systick.o
+ .data 0x0000000000000000 0x0 obj/flash_systick.o
+ .bss 0x0000000000000000 0x0 obj/flash_systick.o
+ .text.SysTick_Configure
+ 0x0000000000000000 0x58 obj/flash_systick.o
+ .text 0x0000000000000000 0x0 obj/flash_main.o
+ .text.ISR_Media
+ 0x0000000000000000 0x28 obj/flash_main.o
+ .text 0x0000000000000000 0x0 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .bss 0x0000000000000000 0x0 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .rodata 0x0000000000000000 0x4 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .data 0x0000000000000000 0x0 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+ .bss 0x0000000000000000 0x0 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+Memory Configuration
+
+Name Origin Length Attributes
+sram0 0x0000000020000100 0x0000000000007f00 w !xr
+sram1 0x0000000020080000 0x0000000000004000 w !xr
+flash0 0x0000000000080000 0x0000000000020000 w !xr
+flash1 0x0000000000100000 0x0000000000020000 w !xr
+*default* 0x0000000000000000 0xffffffffffffffff
+
+Linker script and memory map
+
+LOAD obj/flash_USBConfigurationDescriptor.o
+LOAD obj/flash_USBEndpointDescriptor.o
+LOAD obj/flash_USBFeatureRequest.o
+LOAD obj/flash_USBGenericDescriptor.o
+LOAD obj/flash_USBGenericRequest.o
+LOAD obj/flash_USBGetDescriptorRequest.o
+LOAD obj/flash_USBInterfaceRequest.o
+LOAD obj/flash_USBSetAddressRequest.o
+LOAD obj/flash_USBSetConfigurationRequest.o
+LOAD obj/flash_USBD_UDPHS.o
+LOAD obj/flash_USBDCallbacks_Initialized.o
+LOAD obj/flash_USBDCallbacks_Reset.o
+LOAD obj/flash_USBDDriver.o
+LOAD obj/flash_USBDDriverCb_IfSettingChanged.o
+LOAD obj/flash_MSDDriver.o
+LOAD obj/flash_MSDDriverDescriptors.o
+LOAD obj/flash_MSDDStateMachine.o
+LOAD obj/flash_MSDLun.o
+LOAD obj/flash_SBCMethods.o
+LOAD obj/flash_led.o
+LOAD obj/flash_math.o
+LOAD obj/flash_stdio.o
+LOAD obj/flash_dbgu.o
+LOAD obj/flash_pio.o
+LOAD obj/flash_pio_it.o
+LOAD obj/flash_pmc.o
+LOAD obj/flash_tc.o
+LOAD obj/flash_board_lowlevel.o
+LOAD obj/flash_trace.o
+LOAD obj/flash_board_memories.o
+LOAD obj/flash_Media.o
+LOAD obj/flash_sdmmc_mci.o
+LOAD obj/flash_MEDSdcard.o
+LOAD obj/flash_mci_hs.o
+LOAD obj/flash_dma.o
+LOAD obj/flash_dmad.o
+LOAD obj/flash_MEDRamDisk.o
+LOAD obj/flash_nvic.o
+LOAD obj/flash_exceptions.o
+LOAD obj/flash_board_cstartup_gnu.o
+LOAD obj/flash_core_cm3.o
+LOAD obj/flash_systick.o
+LOAD obj/flash_main.o
+START GROUP
+LOAD /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/thumb/libgcc.a
+LOAD /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a
+LOAD /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libc.a
+END GROUP
+ 0x0000000020000000 _vect_start = 0x20000000
+
+.fixed 0x0000000000080000 0xde80
+ 0x0000000000080000 . = ALIGN (0x4)
+ 0x0000000000080000 _sfixed = .
+ *(.vectors)
+ .vectors 0x0000000000080000 0xbc obj/flash_board_cstartup_gnu.o
+ 0x0000000000080000 exception_table
+ *(.text*)
+ .text.USBConfigurationDescriptor_GetTotalLength
+ 0x00000000000800bc 0x24 obj/flash_USBConfigurationDescriptor.o
+ 0x00000000000800bc USBConfigurationDescriptor_GetTotalLength
+ .text.USBConfigurationDescriptor_IsSelfPowered
+ 0x00000000000800e0 0x2c obj/flash_USBConfigurationDescriptor.o
+ 0x00000000000800e0 USBConfigurationDescriptor_IsSelfPowered
+ .text.USBConfigurationDescriptor_Parse
+ 0x000000000008010c 0xec obj/flash_USBConfigurationDescriptor.o
+ 0x000000000008010c USBConfigurationDescriptor_Parse
+ .text.USBEndpointDescriptor_GetNumber
+ 0x00000000000801f8 0x20 obj/flash_USBEndpointDescriptor.o
+ 0x00000000000801f8 USBEndpointDescriptor_GetNumber
+ .text.USBEndpointDescriptor_GetDirection
+ 0x0000000000080218 0x2c obj/flash_USBEndpointDescriptor.o
+ 0x0000000000080218 USBEndpointDescriptor_GetDirection
+ .text.USBEndpointDescriptor_GetType
+ 0x0000000000080244 0x20 obj/flash_USBEndpointDescriptor.o
+ 0x0000000000080244 USBEndpointDescriptor_GetType
+ .text.USBEndpointDescriptor_GetMaxPacketSize
+ 0x0000000000080264 0x24 obj/flash_USBEndpointDescriptor.o
+ 0x0000000000080264 USBEndpointDescriptor_GetMaxPacketSize
+ .text.USBFeatureRequest_GetFeatureSelector
+ 0x0000000000080288 0x24 obj/flash_USBFeatureRequest.o
+ 0x0000000000080288 USBFeatureRequest_GetFeatureSelector
+ .text.USBFeatureRequest_GetTestSelector
+ 0x00000000000802ac 0x28 obj/flash_USBFeatureRequest.o
+ 0x00000000000802ac USBFeatureRequest_GetTestSelector
+ .text.USBGenericDescriptor_GetLength
+ 0x00000000000802d4 0x18 obj/flash_USBGenericDescriptor.o
+ 0x00000000000802d4 USBGenericDescriptor_GetLength
+ .text.USBGenericDescriptor_GetType
+ 0x00000000000802ec 0x18 obj/flash_USBGenericDescriptor.o
+ 0x00000000000802ec USBGenericDescriptor_GetType
+ .text.USBGenericDescriptor_GetNextDescriptor
+ 0x0000000000080304 0x24 obj/flash_USBGenericDescriptor.o
+ 0x0000000000080304 USBGenericDescriptor_GetNextDescriptor
+ .text.USBGenericRequest_GetRequest
+ 0x0000000000080328 0x18 obj/flash_USBGenericRequest.o
+ 0x0000000000080328 USBGenericRequest_GetRequest
+ .text.USBGenericRequest_GetValue
+ 0x0000000000080340 0x18 obj/flash_USBGenericRequest.o
+ 0x0000000000080340 USBGenericRequest_GetValue
+ .text.USBGenericRequest_GetIndex
+ 0x0000000000080358 0x18 obj/flash_USBGenericRequest.o
+ 0x0000000000080358 USBGenericRequest_GetIndex
+ .text.USBGenericRequest_GetLength
+ 0x0000000000080370 0x18 obj/flash_USBGenericRequest.o
+ 0x0000000000080370 USBGenericRequest_GetLength
+ .text.USBGenericRequest_GetEndpointNumber
+ 0x0000000000080388 0x28 obj/flash_USBGenericRequest.o
+ 0x0000000000080388 USBGenericRequest_GetEndpointNumber
+ .text.USBGenericRequest_GetRecipient
+ 0x00000000000803b0 0x20 obj/flash_USBGenericRequest.o
+ 0x00000000000803b0 USBGenericRequest_GetRecipient
+ .text.USBGetDescriptorRequest_GetDescriptorType
+ 0x00000000000803d0 0x28 obj/flash_USBGetDescriptorRequest.o
+ 0x00000000000803d0 USBGetDescriptorRequest_GetDescriptorType
+ .text.USBGetDescriptorRequest_GetDescriptorIndex
+ 0x00000000000803f8 0x24 obj/flash_USBGetDescriptorRequest.o
+ 0x00000000000803f8 USBGetDescriptorRequest_GetDescriptorIndex
+ .text.USBInterfaceRequest_GetInterface
+ 0x000000000008041c 0x24 obj/flash_USBInterfaceRequest.o
+ 0x000000000008041c USBInterfaceRequest_GetInterface
+ .text.USBInterfaceRequest_GetAlternateSetting
+ 0x0000000000080440 0x24 obj/flash_USBInterfaceRequest.o
+ 0x0000000000080440 USBInterfaceRequest_GetAlternateSetting
+ .text.USBSetAddressRequest_GetAddress
+ 0x0000000000080464 0x28 obj/flash_USBSetAddressRequest.o
+ 0x0000000000080464 USBSetAddressRequest_GetAddress
+ .text.USBSetConfigurationRequest_GetConfiguration
+ 0x000000000008048c 0x24 obj/flash_USBSetConfigurationRequest.o
+ 0x000000000008048c USBSetConfigurationRequest_GetConfiguration
+ .text.UDPHS_DisableBIAS
+ 0x00000000000804b0 0x24 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_EnableBIAS
+ 0x00000000000804d4 0x28 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_EnablePeripheral
+ 0x00000000000804fc 0x18 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_EnableUsbClock
+ 0x0000000000080514 0x44 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_DisableUsbClock
+ 0x0000000000080558 0x30 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_EndOfTransfer
+ 0x0000000000080588 0x124 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_ClearRxFlag
+ 0x00000000000806ac 0x30 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_MblUpdate
+ 0x00000000000806dc 0xc4 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_MblWriteFifo
+ 0x00000000000807a0 0x1f0 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_WritePayload
+ 0x0000000000080990 0xa4 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_ReadPayload
+ 0x0000000000080a34 0xb4 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_ReadRequest
+ 0x0000000000080ae8 0x44 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_ResetEndpoints
+ 0x0000000000080b2c 0x88 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_DisableEndpoints
+ 0x0000000000080bb4 0x4c obj/flash_USBD_UDPHS.o
+ .text.UDPHS_EndpointHandler
+ 0x0000000000080c00 0x4e4 obj/flash_USBD_UDPHS.o
+ .text.UDPHS_DmaHandler
+ 0x00000000000810e4 0x3cc obj/flash_USBD_UDPHS.o
+ .text.USBD_IrqHandler
+ 0x00000000000814b0 0x2d0 obj/flash_USBD_UDPHS.o
+ 0x00000000000814b0 USBD_IrqHandler
+ .text.USBD_ConfigureEndpoint
+ 0x0000000000081780 0x3c4 obj/flash_USBD_UDPHS.o
+ 0x0000000000081780 USBD_ConfigureEndpoint
+ .text.USBD_Write
+ 0x0000000000081b44 0x22c obj/flash_USBD_UDPHS.o
+ 0x0000000000081b44 USBD_Write
+ .text.USBD_Read
+ 0x0000000000081d70 0x1c4 obj/flash_USBD_UDPHS.o
+ 0x0000000000081d70 USBD_Read
+ .text.USBD_Halt
+ 0x0000000000081f34 0xd0 obj/flash_USBD_UDPHS.o
+ 0x0000000000081f34 USBD_Halt
+ .text.USBD_Unhalt
+ 0x0000000000082004 0x68 obj/flash_USBD_UDPHS.o
+ 0x0000000000082004 USBD_Unhalt
+ .text.USBD_IsHalted
+ 0x000000000008206c 0x40 obj/flash_USBD_UDPHS.o
+ 0x000000000008206c USBD_IsHalted
+ .text.USBD_IsHighSpeed
+ 0x00000000000820ac 0x34 obj/flash_USBD_UDPHS.o
+ 0x00000000000820ac USBD_IsHighSpeed
+ .text.USBD_Stall
+ 0x00000000000820e0 0x6c obj/flash_USBD_UDPHS.o
+ 0x00000000000820e0 USBD_Stall
+ .text.USBD_SetAddress
+ 0x000000000008214c 0x70 obj/flash_USBD_UDPHS.o
+ 0x000000000008214c USBD_SetAddress
+ .text.USBD_SetConfiguration
+ 0x00000000000821bc 0x40 obj/flash_USBD_UDPHS.o
+ 0x00000000000821bc USBD_SetConfiguration
+ .text.USBD_Connect
+ 0x00000000000821fc 0x3c obj/flash_USBD_UDPHS.o
+ 0x00000000000821fc USBD_Connect
+ .text.USBD_Disconnect
+ 0x0000000000082238 0x74 obj/flash_USBD_UDPHS.o
+ 0x0000000000082238 USBD_Disconnect
+ .text.USBD_Test
+ 0x00000000000822ac 0x16c obj/flash_USBD_UDPHS.o
+ 0x00000000000822ac USBD_Test
+ .text.USBD_Init
+ 0x0000000000082418 0x200 obj/flash_USBD_UDPHS.o
+ 0x0000000000082418 USBD_Init
+ .text.USBD_GetState
+ 0x0000000000082618 0x18 obj/flash_USBD_UDPHS.o
+ 0x0000000000082618 USBD_GetState
+ .text.USBDCallbacks_Initialized
+ 0x0000000000082630 0x30 obj/flash_USBDCallbacks_Initialized.o
+ 0x0000000000082630 USBDCallbacks_Initialized
+ .text.USBDCallbacks_Reset
+ 0x0000000000082660 0xc obj/flash_USBDCallbacks_Reset.o
+ 0x0000000000082660 USBDCallbacks_Reset
+ .text.TerminateCtrlInWithNull
+ 0x000000000008266c 0x38 obj/flash_USBDDriver.o
+ .text.SetConfiguration
+ 0x00000000000826a4 0xd8 obj/flash_USBDDriver.o
+ .text.GetConfiguration
+ 0x000000000008277c 0x34 obj/flash_USBDDriver.o
+ .text.GetDeviceStatus
+ 0x00000000000827b0 0xbc obj/flash_USBDDriver.o
+ .text.GetEndpointStatus
+ 0x000000000008286c 0x7c obj/flash_USBDDriver.o
+ .text.GetDescriptor
+ 0x00000000000828e8 0x2f8 obj/flash_USBDDriver.o
+ .text.SetInterface
+ 0x0000000000082be0 0x80 obj/flash_USBDDriver.o
+ .text.GetInterface
+ 0x0000000000082c60 0x54 obj/flash_USBDDriver.o
+ .text.USBDDriver_Test
+ 0x0000000000082cb4 0xbc obj/flash_USBDDriver.o
+ .text.USBDDriver_Initialize
+ 0x0000000000082d70 0x34 obj/flash_USBDDriver.o
+ 0x0000000000082d70 USBDDriver_Initialize
+ .text.USBDDriver_RequestHandler
+ 0x0000000000082da4 0x3c8 obj/flash_USBDDriver.o
+ 0x0000000000082da4 USBDDriver_RequestHandler
+ .text.USBDDriverCallbacks_InterfaceSettingChanged
+ 0x000000000008316c 0x18 obj/flash_USBDDriverCb_IfSettingChanged.o
+ 0x000000000008316c USBDDriverCallbacks_InterfaceSettingChanged
+ .text.MSDDriver_Reset
+ 0x0000000000083184 0x3c obj/flash_MSDDriver.o
+ .text.USBDCallbacks_RequestReceived
+ 0x00000000000831c0 0x1c obj/flash_MSDDriver.o
+ 0x00000000000831c0 USBDCallbacks_RequestReceived
+ .text.USBDDriverCallbacks_ConfigurationChanged
+ 0x00000000000831dc 0x24 obj/flash_MSDDriver.o
+ 0x00000000000831dc USBDDriverCallbacks_ConfigurationChanged
+ .text.MSDD_Read
+ 0x0000000000083200 0x34 obj/flash_MSDDriver.o
+ 0x0000000000083200 MSDD_Read
+ .text.MSDD_Write
+ 0x0000000000083234 0x34 obj/flash_MSDDriver.o
+ 0x0000000000083234 MSDD_Write
+ .text.MSDD_Halt
+ 0x0000000000083268 0x40 obj/flash_MSDDriver.o
+ 0x0000000000083268 MSDD_Halt
+ .text.MSDD_IsHalted
+ 0x00000000000832a8 0x50 obj/flash_MSDDriver.o
+ 0x00000000000832a8 MSDD_IsHalted
+ .text.MSDDriver_Initialize
+ 0x00000000000832f8 0xa4 obj/flash_MSDDriver.o
+ 0x00000000000832f8 MSDDriver_Initialize
+ .text.MSDDriver_RequestHandler
+ 0x000000000008339c 0x198 obj/flash_MSDDriver.o
+ 0x000000000008339c MSDDriver_RequestHandler
+ .text.MSDDriver_StateMachine
+ 0x0000000000083534 0x28 obj/flash_MSDDriver.o
+ 0x0000000000083534 MSDDriver_StateMachine
+ .text.MSDDriver_Callback
+ 0x000000000008355c 0x40 obj/flash_MSDDStateMachine.o
+ .text.MSDD_GetCommandInformation
+ 0x000000000008359c 0x50 obj/flash_MSDDStateMachine.o
+ .text.MSDD_PreProcessCommand
+ 0x00000000000835ec 0x2cc obj/flash_MSDDStateMachine.o
+ .text.MSDD_PostProcessCommand
+ 0x00000000000838b8 0x88 obj/flash_MSDDStateMachine.o
+ .text.MSDD_ProcessCommand
+ 0x0000000000083940 0x1f0 obj/flash_MSDDStateMachine.o
+ .text.MSDD_StateMachine
+ 0x0000000000083b30 0x324 obj/flash_MSDDStateMachine.o
+ 0x0000000000083b30 MSDD_StateMachine
+ .text.MED_Write
+ 0x0000000000083e54 0x30 obj/flash_MSDLun.o
+ .text.MED_Read
+ 0x0000000000083e84 0x30 obj/flash_MSDLun.o
+ .text.LUN_Init
+ 0x0000000000083eb4 0x2c8 obj/flash_MSDLun.o
+ 0x0000000000083eb4 LUN_Init
+ .text.LUN_Eject
+ 0x000000000008417c 0x44 obj/flash_MSDLun.o
+ 0x000000000008417c LUN_Eject
+ .text.LUN_Write
+ 0x00000000000841c0 0x108 obj/flash_MSDLun.o
+ 0x00000000000841c0 LUN_Write
+ .text.LUN_Read
+ 0x00000000000842c8 0xf4 obj/flash_MSDLun.o
+ 0x00000000000842c8 LUN_Read
+ .text.MED_Flush
+ 0x00000000000843bc 0x2c obj/flash_SBCMethods.o
+ .text.MSDDriver_Callback
+ 0x00000000000843e8 0x40 obj/flash_SBCMethods.o
+ .text.SBCLunIsReady
+ 0x0000000000084428 0x88 obj/flash_SBCMethods.o
+ .text.SBCLunCanBeWritten
+ 0x00000000000844b0 0x84 obj/flash_SBCMethods.o
+ .text.SBC_Write10
+ 0x0000000000084534 0x74c obj/flash_SBCMethods.o
+ .text.SBC_Read10
+ 0x0000000000084c80 0x718 obj/flash_SBCMethods.o
+ .text.SBC_ReadCapacity10
+ 0x0000000000085398 0x104 obj/flash_SBCMethods.o
+ .text.SBC_Inquiry
+ 0x000000000008549c 0x10c obj/flash_SBCMethods.o
+ .text.SBC_RequestSense
+ 0x00000000000855a8 0xe8 obj/flash_SBCMethods.o
+ .text.SBC_ModeSense6
+ 0x0000000000085690 0x11c obj/flash_SBCMethods.o
+ .text.SBC_TestUnitReady
+ 0x00000000000857ac 0xac obj/flash_SBCMethods.o
+ .text.SBC_UpdateSenseData
+ 0x0000000000085858 0x38 obj/flash_SBCMethods.o
+ 0x0000000000085858 SBC_UpdateSenseData
+ .text.SBC_GetCommandInformation
+ 0x0000000000085890 0x208 obj/flash_SBCMethods.o
+ 0x0000000000085890 SBC_GetCommandInformation
+ .text.SBC_ProcessCommand
+ 0x0000000000085a98 0x1b8 obj/flash_SBCMethods.o
+ 0x0000000000085a98 SBC_ProcessCommand
+ .text.LED_Configure
+ 0x0000000000085c50 0x4c obj/flash_led.o
+ 0x0000000000085c50 LED_Configure
+ .text.LED_Set 0x0000000000085c9c 0x80 obj/flash_led.o
+ 0x0000000000085c9c LED_Set
+ .text.LED_Clear
+ 0x0000000000085d1c 0x80 obj/flash_led.o
+ 0x0000000000085d1c LED_Clear
+ .text.PutChar 0x0000000000085d9c 0x24 obj/flash_stdio.o
+ 0x0000000000085d9c PutChar
+ .text.PutString
+ 0x0000000000085dc0 0x48 obj/flash_stdio.o
+ 0x0000000000085dc0 PutString
+ .text.PutUnsignedInt
+ 0x0000000000085e08 0xc8 obj/flash_stdio.o
+ 0x0000000000085e08 PutUnsignedInt
+ .text.PutSignedInt
+ 0x0000000000085ed0 0x140 obj/flash_stdio.o
+ 0x0000000000085ed0 PutSignedInt
+ .text.PutHexa 0x0000000000086010 0x100 obj/flash_stdio.o
+ 0x0000000000086010 PutHexa
+ .text.vsnprintf
+ 0x0000000000086110 0x2d4 obj/flash_stdio.o
+ 0x0000000000086110 vsnprintf
+ .text.vsprintf
+ 0x00000000000863e4 0x2c obj/flash_stdio.o
+ 0x00000000000863e4 vsprintf
+ .text.vfprintf
+ 0x0000000000086410 0x80 obj/flash_stdio.o
+ 0x0000000000086410 vfprintf
+ .text.vprintf 0x0000000000086490 0x34 obj/flash_stdio.o
+ 0x0000000000086490 vprintf
+ .text.printf 0x00000000000864c4 0x34 obj/flash_stdio.o
+ 0x00000000000864c4 printf
+ .text.DBGU_Configure
+ 0x00000000000864f8 0x80 obj/flash_dbgu.o
+ 0x00000000000864f8 DBGU_Configure
+ .text.DBGU_PutChar
+ 0x0000000000086578 0x48 obj/flash_dbgu.o
+ 0x0000000000086578 DBGU_PutChar
+ .text.PIO_SetPeripheralA
+ 0x00000000000865c0 0x54 obj/flash_pio.o
+ .text.PIO_SetPeripheralB
+ 0x0000000000086614 0x48 obj/flash_pio.o
+ .text.PIO_SetFilter
+ 0x000000000008665c 0x3c obj/flash_pio.o
+ .text.PIO_SetInput
+ 0x0000000000086698 0x54 obj/flash_pio.o
+ .text.PIO_SetOutput
+ 0x00000000000866ec 0x68 obj/flash_pio.o
+ .text.PIO_Configure
+ 0x0000000000086754 0x15c obj/flash_pio.o
+ 0x0000000000086754 PIO_Configure
+ .text.PIO_Set 0x00000000000868b0 0x1c obj/flash_pio.o
+ 0x00000000000868b0 PIO_Set
+ .text.PIO_Clear
+ 0x00000000000868cc 0x1c obj/flash_pio.o
+ 0x00000000000868cc PIO_Clear
+ .text.PIO_Get 0x00000000000868e8 0x4c obj/flash_pio.o
+ 0x00000000000868e8 PIO_Get
+ .text.PioInterruptHandler
+ 0x0000000000086934 0xc0 obj/flash_pio_it.o
+ .text.PIO_IT_InterruptHandler
+ 0x00000000000869f4 0x48 obj/flash_pio_it.o
+ 0x00000000000869f4 PIO_IT_InterruptHandler
+ .text.PIO_InitializeInterrupts
+ 0x0000000000086a3c 0x104 obj/flash_pio_it.o
+ 0x0000000000086a3c PIO_InitializeInterrupts
+ .text.PIO_ConfigureIt
+ 0x0000000000086b40 0x6c obj/flash_pio_it.o
+ 0x0000000000086b40 PIO_ConfigureIt
+ .text.PIO_EnableIt
+ 0x0000000000086bac 0xec obj/flash_pio_it.o
+ 0x0000000000086bac PIO_EnableIt
+ .text.PIOA_IrqHandler
+ 0x0000000000086c98 0x1c obj/flash_pio_it.o
+ 0x0000000000086c98 PIOA_IrqHandler
+ .text.PIOB_IrqHandler
+ 0x0000000000086cb4 0x1c obj/flash_pio_it.o
+ 0x0000000000086cb4 PIOB_IrqHandler
+ .text.PIOC_IrqHandler
+ 0x0000000000086cd0 0x1c obj/flash_pio_it.o
+ 0x0000000000086cd0 PIOC_IrqHandler
+ .text.TC_Configure
+ 0x0000000000086cec 0x30 obj/flash_tc.o
+ 0x0000000000086cec TC_Configure
+ .text.TC_Start
+ 0x0000000000086d1c 0x1c obj/flash_tc.o
+ 0x0000000000086d1c TC_Start
+ .text.TC_FindMckDivisor
+ 0x0000000000086d38 0xd4 obj/flash_tc.o
+ 0x0000000000086d38 TC_FindMckDivisor
+ .text.LowLevelInit
+ 0x0000000000086e0c 0x2d4 obj/flash_board_lowlevel.o
+ 0x0000000000086e0c LowLevelInit
+ .text.SetDefaultMaster
+ 0x00000000000870e0 0x70 obj/flash_board_lowlevel.o
+ 0x00000000000870e0 SetDefaultMaster
+ .text.fputc 0x0000000000087150 0x50 obj/flash_trace.o
+ 0x0000000000087150 fputc
+ .text.fputs 0x00000000000871a0 0x58 obj/flash_trace.o
+ 0x00000000000871a0 fputs
+ .text.MmcGetTranSpeed
+ 0x00000000000871f8 0x70 obj/flash_sdmmc_mci.o
+ .text.GetTransSpeedValue
+ 0x0000000000087268 0x108 obj/flash_sdmmc_mci.o
+ 0x0000000000087268 GetTransSpeedValue
+ .text.ResetCommand
+ 0x0000000000087370 0x7c obj/flash_sdmmc_mci.o
+ .text.Delay 0x00000000000873ec 0x24 obj/flash_sdmmc_mci.o
+ .text.SendCommand
+ 0x0000000000087410 0x78 obj/flash_sdmmc_mci.o
+ .text.Pon 0x0000000000087488 0x48 obj/flash_sdmmc_mci.o
+ .text.Cmd0 0x00000000000874d0 0x50 obj/flash_sdmmc_mci.o
+ .text.Cmd1 0x0000000000087520 0xb0 obj/flash_sdmmc_mci.o
+ .text.Cmd2 0x00000000000875d0 0x50 obj/flash_sdmmc_mci.o
+ .text.Cmd3 0x0000000000087620 0xc0 obj/flash_sdmmc_mci.o
+ .text.Cmd5 0x00000000000876e0 0x58 obj/flash_sdmmc_mci.o
+ .text.Cmd7 0x0000000000087738 0x50 obj/flash_sdmmc_mci.o
+ .text.Cmd6 0x0000000000087788 0x1ec obj/flash_sdmmc_mci.o
+ .text.Cmd8 0x0000000000087974 0xf0 obj/flash_sdmmc_mci.o
+ .text.Cmd9 0x0000000000087a64 0x64 obj/flash_sdmmc_mci.o
+ .text.Cmd12 0x0000000000087ac8 0x74 obj/flash_sdmmc_mci.o
+ .text.Cmd13 0x0000000000087b3c 0x60 obj/flash_sdmmc_mci.o
+ .text.Cmd16 0x0000000000087b9c 0x5c obj/flash_sdmmc_mci.o
+ .text.Cmd18 0x0000000000087bf8 0x9c obj/flash_sdmmc_mci.o
+ .text.Cmd25 0x0000000000087c94 0x94 obj/flash_sdmmc_mci.o
+ .text.Cmd52 0x0000000000087d28 0x9c obj/flash_sdmmc_mci.o
+ .text.Cmd55 0x0000000000087dc4 0x60 obj/flash_sdmmc_mci.o
+ .text.Acmd6 0x0000000000087e24 0x94 obj/flash_sdmmc_mci.o
+ .text.Acmd13 0x0000000000087eb8 0xb4 obj/flash_sdmmc_mci.o
+ .text.Acmd41 0x0000000000087f6c 0xb0 obj/flash_sdmmc_mci.o
+ .text.Acmd51 0x000000000008801c 0xb4 obj/flash_sdmmc_mci.o
+ .text.ContinuousRead
+ 0x00000000000880d0 0x74 obj/flash_sdmmc_mci.o
+ .text.ContinuousWrite
+ 0x0000000000088144 0x6c obj/flash_sdmmc_mci.o
+ .text.SwReset 0x00000000000881b0 0x54 obj/flash_sdmmc_mci.o
+ .text.MoveToTransferState
+ 0x0000000000088204 0x2fc obj/flash_sdmmc_mci.o
+ .text.MmcSelectCard
+ 0x0000000000088500 0x110 obj/flash_sdmmc_mci.o
+ .text.MmcGetExtInformation
+ 0x0000000000088610 0x80 obj/flash_sdmmc_mci.o
+ .text.SdGetExtInformation
+ 0x0000000000088690 0x9c obj/flash_sdmmc_mci.o
+ .text.SdMmcUpdateInformation
+ 0x000000000008872c 0xcc obj/flash_sdmmc_mci.o
+ .text.SD_Read 0x00000000000887f8 0xb8 obj/flash_sdmmc_mci.o
+ 0x00000000000887f8 SD_Read
+ .text.SD_Write
+ 0x00000000000888b0 0xb8 obj/flash_sdmmc_mci.o
+ 0x00000000000888b0 SD_Write
+ .text.SdMmcIdentify
+ 0x0000000000088968 0x308 obj/flash_sdmmc_mci.o
+ .text.SdMmcEnum
+ 0x0000000000088c70 0x560 obj/flash_sdmmc_mci.o
+ .text.SD_Init 0x00000000000891d0 0x340 obj/flash_sdmmc_mci.o
+ 0x00000000000891d0 SD_Init
+ .text.MCI0_IrqHandler
+ 0x0000000000089510 0x18 obj/flash_MEDSdcard.o
+ 0x0000000000089510 MCI0_IrqHandler
+ .text.CardIsConnected
+ 0x0000000000089528 0x60 obj/flash_MEDSdcard.o
+ .text.CardIsProtected
+ 0x0000000000089588 0x34 obj/flash_MEDSdcard.o
+ .text.ConfigurePIO
+ 0x00000000000895bc 0x7c obj/flash_MEDSdcard.o
+ .text.SdMmcCallback
+ 0x0000000000089638 0x74 obj/flash_MEDSdcard.o
+ .text.MEDSdusb_Read
+ 0x00000000000896ac 0xc0 obj/flash_MEDSdcard.o
+ .text.MEDSdusb_Write
+ 0x000000000008976c 0xb8 obj/flash_MEDSdcard.o
+ .text.MEDSdcard_Detect
+ 0x0000000000089824 0x28 obj/flash_MEDSdcard.o
+ 0x0000000000089824 MEDSdcard_Detect
+ .text.MEDSdusb_Initialize
+ 0x000000000008984c 0x234 obj/flash_MEDSdcard.o
+ 0x000000000008984c MEDSdusb_Initialize
+ .text.AT91F_Prepare_Multiple_Transfer
+ 0x0000000000089a80 0x10c obj/flash_mci_hs.o
+ .text.DMACH_MCI_P2M
+ 0x0000000000089b8c 0x240 obj/flash_mci_hs.o
+ .text.DMACH_MCI_M2P
+ 0x0000000000089dcc 0x24c obj/flash_mci_hs.o
+ .text.DMACH_EnableIt
+ 0x000000000008a018 0x3c obj/flash_mci_hs.o
+ .text.MCI_Reset
+ 0x000000000008a054 0x84 obj/flash_mci_hs.o
+ 0x000000000008a054 MCI_Reset
+ .text.MCI_Init
+ 0x000000000008a0d8 0x18c obj/flash_mci_hs.o
+ 0x000000000008a0d8 MCI_Init
+ .text.MCI_SetSpeed
+ 0x000000000008a264 0x15c obj/flash_mci_hs.o
+ 0x000000000008a264 MCI_SetSpeed
+ .text.MCI_EnableHsMode
+ 0x000000000008a3c0 0xb0 obj/flash_mci_hs.o
+ 0x000000000008a3c0 MCI_EnableHsMode
+ .text.MCI_SetBusWidth
+ 0x000000000008a470 0xa0 obj/flash_mci_hs.o
+ 0x000000000008a470 MCI_SetBusWidth
+ .text.MCI_SendCommand
+ 0x000000000008a510 0x3c4 obj/flash_mci_hs.o
+ 0x000000000008a510 MCI_SendCommand
+ .text.MCI_Handler
+ 0x000000000008a8d4 0x488 obj/flash_mci_hs.o
+ 0x000000000008a8d4 MCI_Handler
+ .text.MCI_IsTxComplete
+ 0x000000000008ad5c 0x44 obj/flash_mci_hs.o
+ 0x000000000008ad5c MCI_IsTxComplete
+ .text.DMA_Enable
+ 0x000000000008ada0 0x18 obj/flash_dma.o
+ 0x000000000008ada0 DMA_Enable
+ .text.DMA_EnableIt
+ 0x000000000008adb8 0x20 obj/flash_dma.o
+ 0x000000000008adb8 DMA_EnableIt
+ .text.DMA_DisableIt
+ 0x000000000008add8 0x20 obj/flash_dma.o
+ 0x000000000008add8 DMA_DisableIt
+ .text.DMA_GetStatus
+ 0x000000000008adf8 0x18 obj/flash_dma.o
+ 0x000000000008adf8 DMA_GetStatus
+ .text.DMA_GetInterruptMask
+ 0x000000000008ae10 0x18 obj/flash_dma.o
+ 0x000000000008ae10 DMA_GetInterruptMask
+ .text.DMA_EnableChannel
+ 0x000000000008ae28 0x60 obj/flash_dma.o
+ 0x000000000008ae28 DMA_EnableChannel
+ .text.DMA_DisableChannel
+ 0x000000000008ae88 0x60 obj/flash_dma.o
+ 0x000000000008ae88 DMA_DisableChannel
+ .text.DMA_KeeponChannel
+ 0x000000000008aee8 0x60 obj/flash_dma.o
+ 0x000000000008aee8 DMA_KeeponChannel
+ .text.DMA_ClearAutoMode
+ 0x000000000008af48 0x7c obj/flash_dma.o
+ 0x000000000008af48 DMA_ClearAutoMode
+ .text.DMA_GetChannelStatus
+ 0x000000000008afc4 0x18 obj/flash_dma.o
+ 0x000000000008afc4 DMA_GetChannelStatus
+ .text.DMA_SetSourceAddr
+ 0x000000000008afdc 0x60 obj/flash_dma.o
+ 0x000000000008afdc DMA_SetSourceAddr
+ .text.DMA_SetDestinationAddr
+ 0x000000000008b03c 0x60 obj/flash_dma.o
+ 0x000000000008b03c DMA_SetDestinationAddr
+ .text.DMA_SetDescriptorAddr
+ 0x000000000008b09c 0x60 obj/flash_dma.o
+ 0x000000000008b09c DMA_SetDescriptorAddr
+ .text.DMA_SetSourceBufferSize
+ 0x000000000008b0fc 0xd8 obj/flash_dma.o
+ 0x000000000008b0fc DMA_SetSourceBufferSize
+ .text.DMA_SetSourceBufferMode
+ 0x000000000008b1d4 0x160 obj/flash_dma.o
+ 0x000000000008b1d4 DMA_SetSourceBufferMode
+ .text.DMA_SetDestBufferMode
+ 0x000000000008b334 0x144 obj/flash_dma.o
+ 0x000000000008b334 DMA_SetDestBufferMode
+ .text.DMA_SetConfiguration
+ 0x000000000008b478 0x60 obj/flash_dma.o
+ 0x000000000008b478 DMA_SetConfiguration
+ .text.DMAD_Handler
+ 0x000000000008b4d8 0x144 obj/flash_dmad.o
+ 0x000000000008b4d8 DMAD_Handler
+ .text.DMAD_Initialize
+ 0x000000000008b61c 0xf8 obj/flash_dmad.o
+ 0x000000000008b61c DMAD_Initialize
+ .text.NVIC_EnableIRQ
+ 0x000000000008b714 0x38 obj/flash_nvic.o
+ .text.NVIC_DisableIRQ
+ 0x000000000008b74c 0x3c obj/flash_nvic.o
+ .text.NVIC_ClearPendingIRQ
+ 0x000000000008b788 0x3c obj/flash_nvic.o
+ .text.NVIC_SetPriority
+ 0x000000000008b7c4 0x54 obj/flash_nvic.o
+ .text.IRQ_ConfigureIT
+ 0x000000000008b818 0xc4 obj/flash_nvic.o
+ 0x000000000008b818 IRQ_ConfigureIT
+ .text.IRQ_EnableIT
+ 0x000000000008b8dc 0x24 obj/flash_nvic.o
+ 0x000000000008b8dc IRQ_EnableIT
+ .text.FaultReport
+ 0x000000000008b900 0x1b8 obj/flash_exceptions.o
+ 0x000000000008b900 FaultReport
+ .text.IrqHandlerNotUsed
+ 0x000000000008bab8 0x8 obj/flash_exceptions.o
+ 0x000000000008bab8 IrqHandlerNotUsed
+ .text.NMI_Handler
+ 0x000000000008bac0 0x8 obj/flash_exceptions.o
+ 0x000000000008bac0 NMI_Handler
+ .text.HardFault_HandlerBody
+ 0x000000000008bac8 0x20 obj/flash_exceptions.o
+ 0x000000000008bac8 HardFault_HandlerBody
+ .text.HardFault_Handler
+ 0x000000000008bae8 0x20 obj/flash_exceptions.o
+ 0x000000000008bae8 HardFault_Handler
+ .text.MemManage_HandlerBody
+ 0x000000000008bb08 0x20 obj/flash_exceptions.o
+ 0x000000000008bb08 MemManage_HandlerBody
+ .text.MemManage_Handler
+ 0x000000000008bb28 0x20 obj/flash_exceptions.o
+ 0x000000000008bb28 MemManage_Handler
+ .text.BusFault_HandlerBody
+ 0x000000000008bb48 0x20 obj/flash_exceptions.o
+ 0x000000000008bb48 BusFault_HandlerBody
+ .text.BusFault_Handler
+ 0x000000000008bb68 0x20 obj/flash_exceptions.o
+ 0x000000000008bb68 BusFault_Handler
+ .text.UsageFault_HandlerBody
+ 0x000000000008bb88 0x20 obj/flash_exceptions.o
+ 0x000000000008bb88 UsageFault_HandlerBody
+ .text.UsageFault_Handler
+ 0x000000000008bba8 0x20 obj/flash_exceptions.o
+ 0x000000000008bba8 UsageFault_Handler
+ .text.SVC_Handler
+ 0x000000000008bbc8 0x8 obj/flash_exceptions.o
+ 0x000000000008bbc8 SVC_Handler
+ .text.DebugMon_Handler
+ 0x000000000008bbd0 0x8 obj/flash_exceptions.o
+ 0x000000000008bbd0 DebugMon_Handler
+ .text.PendSV_Handler
+ 0x000000000008bbd8 0x8 obj/flash_exceptions.o
+ 0x000000000008bbd8 PendSV_Handler
+ .text.SysTick_Handler
+ 0x000000000008bbe0 0x8 obj/flash_exceptions.o
+ 0x000000000008bbe0 SysTick_Handler
+ .text.SUPC_IrqHandler
+ 0x000000000008bbe8 0x8 obj/flash_exceptions.o
+ 0x000000000008bbe8 SUPC_IrqHandler
+ .text.RSTC_IrqHandler
+ 0x000000000008bbf0 0x8 obj/flash_exceptions.o
+ 0x000000000008bbf0 RSTC_IrqHandler
+ .text.RTC_IrqHandler
+ 0x000000000008bbf8 0x8 obj/flash_exceptions.o
+ 0x000000000008bbf8 RTC_IrqHandler
+ .text.RTT_IrqHandler
+ 0x000000000008bc00 0x8 obj/flash_exceptions.o
+ 0x000000000008bc00 RTT_IrqHandler
+ .text.WDT_IrqHandler
+ 0x000000000008bc08 0x8 obj/flash_exceptions.o
+ 0x000000000008bc08 WDT_IrqHandler
+ .text.PMC_IrqHandler
+ 0x000000000008bc10 0x8 obj/flash_exceptions.o
+ 0x000000000008bc10 PMC_IrqHandler
+ .text.EFC0_IrqHandler
+ 0x000000000008bc18 0x8 obj/flash_exceptions.o
+ 0x000000000008bc18 EFC0_IrqHandler
+ .text.EFC1_IrqHandler
+ 0x000000000008bc20 0x8 obj/flash_exceptions.o
+ 0x000000000008bc20 EFC1_IrqHandler
+ .text.DBGU_IrqHandler
+ 0x000000000008bc28 0x8 obj/flash_exceptions.o
+ 0x000000000008bc28 DBGU_IrqHandler
+ .text.HSMC4_IrqHandler
+ 0x000000000008bc30 0x8 obj/flash_exceptions.o
+ 0x000000000008bc30 HSMC4_IrqHandler
+ .text.USART0_IrqHandler
+ 0x000000000008bc38 0x8 obj/flash_exceptions.o
+ 0x000000000008bc38 USART0_IrqHandler
+ .text.USART1_IrqHandler
+ 0x000000000008bc40 0x8 obj/flash_exceptions.o
+ 0x000000000008bc40 USART1_IrqHandler
+ .text.USART2_IrqHandler
+ 0x000000000008bc48 0x8 obj/flash_exceptions.o
+ 0x000000000008bc48 USART2_IrqHandler
+ .text.USART3_IrqHandler
+ 0x000000000008bc50 0x8 obj/flash_exceptions.o
+ 0x000000000008bc50 USART3_IrqHandler
+ .text.TWI0_IrqHandler
+ 0x000000000008bc58 0x8 obj/flash_exceptions.o
+ 0x000000000008bc58 TWI0_IrqHandler
+ .text.TWI1_IrqHandler
+ 0x000000000008bc60 0x8 obj/flash_exceptions.o
+ 0x000000000008bc60 TWI1_IrqHandler
+ .text.SPI0_IrqHandler
+ 0x000000000008bc68 0x8 obj/flash_exceptions.o
+ 0x000000000008bc68 SPI0_IrqHandler
+ .text.SSC0_IrqHandler
+ 0x000000000008bc70 0x8 obj/flash_exceptions.o
+ 0x000000000008bc70 SSC0_IrqHandler
+ .text.TC1_IrqHandler
+ 0x000000000008bc78 0x8 obj/flash_exceptions.o
+ 0x000000000008bc78 TC1_IrqHandler
+ .text.TC2_IrqHandler
+ 0x000000000008bc80 0x8 obj/flash_exceptions.o
+ 0x000000000008bc80 TC2_IrqHandler
+ .text.PWM_IrqHandler
+ 0x000000000008bc88 0x8 obj/flash_exceptions.o
+ 0x000000000008bc88 PWM_IrqHandler
+ .text.ADCC0_IrqHandler
+ 0x000000000008bc90 0x8 obj/flash_exceptions.o
+ 0x000000000008bc90 ADCC0_IrqHandler
+ .text.ADCC1_IrqHandler
+ 0x000000000008bc98 0x8 obj/flash_exceptions.o
+ 0x000000000008bc98 ADCC1_IrqHandler
+ .text.HDMA_IrqHandler
+ 0x000000000008bca0 0x8 obj/flash_exceptions.o
+ 0x000000000008bca0 HDMA_IrqHandler
+ .text.ResetException
+ 0x000000000008bca8 0xa4 obj/flash_board_cstartup_gnu.o
+ 0x000000000008bca8 ResetException
+ .text.WakeUpHandler
+ 0x000000000008bd4c 0x24 obj/flash_main.o
+ .text.ConfigureWakeUp
+ 0x000000000008bd70 0x48 obj/flash_main.o
+ .text.ISR_Vbus
+ 0x000000000008bdb8 0x40 obj/flash_main.o
+ 0x000000000008bdb8 ISR_Vbus
+ .text.VBus_Configure
+ 0x000000000008bdf8 0x78 obj/flash_main.o
+ .text.USBDCallbacks_Resumed
+ 0x000000000008be70 0x4c obj/flash_main.o
+ 0x000000000008be70 USBDCallbacks_Resumed
+ .text.USBDCallbacks_Suspended
+ 0x000000000008bebc 0x30 obj/flash_main.o
+ 0x000000000008bebc USBDCallbacks_Suspended
+ .text.MSDCallbacks_Data
+ 0x000000000008beec 0x8c obj/flash_main.o
+ 0x000000000008beec MSDCallbacks_Data
+ .text.TC0_IrqHandler
+ 0x000000000008bf78 0x60 obj/flash_main.o
+ 0x000000000008bf78 TC0_IrqHandler
+ .text.ConfigureTc0
+ 0x000000000008bfd8 0xb4 obj/flash_main.o
+ 0x000000000008bfd8 ConfigureTc0
+ .text.SDConnectionUpdate
+ 0x000000000008c08c 0x90 obj/flash_main.o
+ .text.MemoryInitialization
+ 0x000000000008c11c 0x84 obj/flash_main.o
+ .text.LowPowerMode
+ 0x000000000008c1a0 0xc obj/flash_main.o
+ .text.NormalPowerMode
+ 0x000000000008c1ac 0xc obj/flash_main.o
+ .text.main 0x000000000008c1b8 0x3f4 obj/flash_main.o
+ 0x000000000008c1b8 main
+ .text 0x000000000008c5ac 0x98 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+ 0x000000000008c5ac memset
+ *(.rodata*)
+ .rodata 0x000000000008c644 0x1ac obj/flash_USBD_UDPHS.o
+ .rodata 0x000000000008c7f0 0xf4 obj/flash_USBDDriver.o
+ .rodata 0x000000000008c8e4 0xa4 obj/flash_MSDDriver.o
+ .rodata 0x000000000008c988 0x114 obj/flash_MSDDriverDescriptors.o
+ 0x000000000008ca74 msdDriverDescriptors
+ .rodata 0x000000000008ca9c 0x2d4 obj/flash_MSDDStateMachine.o
+ .rodata 0x000000000008cd70 0xfc obj/flash_MSDLun.o
+ .rodata 0x000000000008ce6c 0x300 obj/flash_SBCMethods.o
+ .rodata 0x000000000008d16c 0x64 obj/flash_led.o
+ .rodata 0x000000000008d1d0 0x24 obj/flash_stdio.o
+ .rodata 0x000000000008d1f4 0x14 obj/flash_tc.o
+ .rodata 0x000000000008d208 0x73c obj/flash_sdmmc_mci.o
+ .rodata 0x000000000008d944 0x164 obj/flash_MEDSdcard.o
+ .rodata 0x000000000008daa8 0x8c obj/flash_mci_hs.o
+ .rodata 0x000000000008db34 0x80 obj/flash_dma.o
+ .rodata 0x000000000008dbb4 0x7c obj/flash_dmad.o
+ .rodata 0x000000000008dc30 0xf8 obj/flash_exceptions.o
+ .rodata 0x000000000008dd28 0x154 obj/flash_main.o
+ .rodata.str1.4
+ 0x000000000008de7c 0x4 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ *(.glue_7)
+ .glue_7 0x0000000000000000 0x0 linker stubs
+ *(.glue_7t)
+ .glue_7t 0x0000000000000000 0x0 linker stubs
+ 0x000000000008de80 . = ALIGN (0x4)
+ 0x000000000008de80 _efixed = .
+
+.vfp11_veneer 0x000000000008de80 0x0
+ .vfp11_veneer 0x0000000000000000 0x0 linker stubs
+
+.v4_bx 0x000000000008de80 0x0
+ .v4_bx 0x0000000000000000 0x0 linker stubs
+
+.relocate 0x0000000020000100 0x4a8 load address 0x000000000008de80
+ 0x0000000020000100 . = ALIGN (0x4)
+ 0x0000000020000100 _srelocate = .
+ *(.ramfunc)
+ *(.data)
+ .data 0x0000000020000100 0x10 obj/flash_MSDDriverDescriptors.o
+ .data 0x0000000020000110 0x60 obj/flash_MSDLun.o
+ .data 0x0000000020000170 0x1 obj/flash_sdmmc_mci.o
+ 0x0000000020000170 gSdmmcAutoHsEnable
+ *fill* 0x0000000020000171 0x1 00
+ .data 0x0000000020000172 0x2 obj/flash_mci_hs.o
+ .data 0x0000000020000174 0x4 obj/flash_main.o
+ 0x0000000020000174 updateDelay
+ .data 0x0000000020000178 0x430 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ 0x0000000020000178 _impure_ptr
+ 0x00000000200005a8 . = ALIGN (0x4)
+ 0x00000000200005a8 _erelocate = .
+
+.bss 0x00000000200005a8 0x1ea8 load address 0x000000000008e328
+ 0x00000000200005a8 . = ALIGN (0x4)
+ 0x00000000200005a8 _szero = .
+ *(.bss)
+ .bss 0x00000000200005a8 0xe4 obj/flash_USBD_UDPHS.o
+ .bss 0x000000002000068c 0x4 obj/flash_USBDDriver.o
+ .bss 0x0000000020000690 0x68 obj/flash_MSDDriver.o
+ .bss 0x00000000200006f8 0x3c obj/flash_pio_it.o
+ .bss 0x0000000020000734 0x4 obj/flash_Media.o
+ 0x0000000020000734 numMedias
+ .bss 0x0000000020000738 0x274 obj/flash_MEDSdcard.o
+ .bss 0x00000000200009ac 0x68 obj/flash_mci_hs.o
+ .bss 0x0000000020000a14 0x40 obj/flash_dmad.o
+ .bss 0x0000000020000a54 0x10 obj/flash_main.o
+ 0x0000000020000a54 msdReadTotal
+ 0x0000000020000a58 msdWriteTotal
+ 0x0000000020000a5c msdFullCnt
+ 0x0000000020000a5e msdNullCnt
+ 0x0000000020000a60 updateView
+ 0x0000000020000a61 USBState
+ 0x0000000020000a64 . = ALIGN (0x4)
+ 0x0000000020000a64 _ezero = .
+ COMMON 0x0000000020000a64 0x19ec obj/flash_main.o
+ 0x0000000020000a64 medias
+ 0x0000000020000b30 msdBuffer
+ 0x0000000020002330 luns
+ 0x0000000020007ffc _estack = 0x20007ffc
+ 0x0000000020002450 end = .
+OUTPUT(bin/usb-device-massstorage-project-at91sam3u-ek-at91sam3u4-flash.elf elf32-littlearm)
+
+.debug_info 0x0000000000000000 0x16b4d
+ .debug_info 0x0000000000000000 0x315 obj/flash_USBConfigurationDescriptor.o
+ .debug_info 0x0000000000000315 0x183 obj/flash_USBEndpointDescriptor.o
+ .debug_info 0x0000000000000498 0x100 obj/flash_USBFeatureRequest.o
+ .debug_info 0x0000000000000598 0xfd obj/flash_USBGenericDescriptor.o
+ .debug_info 0x0000000000000695 0x208 obj/flash_USBGenericRequest.o
+ .debug_info 0x000000000000089d 0x100 obj/flash_USBGetDescriptorRequest.o
+ .debug_info 0x000000000000099d 0x100 obj/flash_USBInterfaceRequest.o
+ .debug_info 0x0000000000000a9d 0xd8 obj/flash_USBSetAddressRequest.o
+ .debug_info 0x0000000000000b75 0xd8 obj/flash_USBSetConfigurationRequest.o
+ .debug_info 0x0000000000000c4d 0x1694 obj/flash_USBD_UDPHS.o
+ .debug_info 0x00000000000022e1 0x85 obj/flash_USBDCallbacks_Initialized.o
+ .debug_info 0x0000000000002366 0x4d obj/flash_USBDCallbacks_Reset.o
+ .debug_info 0x00000000000023b3 0x8ef obj/flash_USBDDriver.o
+ .debug_info 0x0000000000002ca2 0xa9 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_info 0x0000000000002d4b 0x10a7 obj/flash_MSDDriver.o
+ .debug_info 0x0000000000003df2 0x584 obj/flash_MSDDriverDescriptors.o
+ .debug_info 0x0000000000004376 0x12cc obj/flash_MSDDStateMachine.o
+ .debug_info 0x0000000000005642 0xbec obj/flash_MSDLun.o
+ .debug_info 0x000000000000622e 0x15d8 obj/flash_SBCMethods.o
+ .debug_info 0x0000000000007806 0x6d2 obj/flash_led.o
+ .debug_info 0x0000000000007ed8 0x119 obj/flash_math.o
+ .debug_info 0x0000000000007ff1 0xeab obj/flash_stdio.o
+ .debug_info 0x0000000000008e9c 0x530 obj/flash_dbgu.o
+ .debug_info 0x00000000000093cc 0xa5f obj/flash_pio.o
+ .debug_info 0x0000000000009e2b 0xa22 obj/flash_pio_it.o
+ .debug_info 0x000000000000a84d 0x385 obj/flash_pmc.o
+ .debug_info 0x000000000000abd2 0x225 obj/flash_tc.o
+ .debug_info 0x000000000000adf7 0x7e1 obj/flash_board_lowlevel.o
+ .debug_info 0x000000000000b5d8 0xbef obj/flash_trace.o
+ .debug_info 0x000000000000c1c7 0xb92 obj/flash_board_memories.o
+ .debug_info 0x000000000000cd59 0x34f obj/flash_Media.o
+ .debug_info 0x000000000000d0a8 0x20b6 obj/flash_sdmmc_mci.o
+ .debug_info 0x000000000000f15e 0x137e obj/flash_MEDSdcard.o
+ .debug_info 0x00000000000104dc 0xfde obj/flash_mci_hs.o
+ .debug_info 0x00000000000114ba 0x6f6 obj/flash_dma.o
+ .debug_info 0x0000000000011bb0 0x62e obj/flash_dmad.o
+ .debug_info 0x00000000000121de 0x591 obj/flash_MEDRamDisk.o
+ .debug_info 0x000000000001276f 0xbb4 obj/flash_nvic.o
+ .debug_info 0x0000000000013323 0x6a7 obj/flash_exceptions.o
+ .debug_info 0x00000000000139ca 0x65c obj/flash_board_cstartup_gnu.o
+ .debug_info 0x0000000000014026 0x554 obj/flash_core_cm3.o
+ .debug_info 0x000000000001457a 0x5ce obj/flash_systick.o
+ .debug_info 0x0000000000014b48 0x1589 obj/flash_main.o
+ .debug_info 0x00000000000160d1 0x966 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .debug_info 0x0000000000016a37 0x116 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_abbrev 0x0000000000000000 0x32fe
+ .debug_abbrev 0x0000000000000000 0xb3 obj/flash_USBConfigurationDescriptor.o
+ .debug_abbrev 0x00000000000000b3 0x99 obj/flash_USBEndpointDescriptor.o
+ .debug_abbrev 0x000000000000014c 0x9f obj/flash_USBFeatureRequest.o
+ .debug_abbrev 0x00000000000001eb 0x82 obj/flash_USBGenericDescriptor.o
+ .debug_abbrev 0x000000000000026d 0x9f obj/flash_USBGenericRequest.o
+ .debug_abbrev 0x000000000000030c 0x9f obj/flash_USBGetDescriptorRequest.o
+ .debug_abbrev 0x00000000000003ab 0x9f obj/flash_USBInterfaceRequest.o
+ .debug_abbrev 0x000000000000044a 0x88 obj/flash_USBSetAddressRequest.o
+ .debug_abbrev 0x00000000000004d2 0x88 obj/flash_USBSetConfigurationRequest.o
+ .debug_abbrev 0x000000000000055a 0x237 obj/flash_USBD_UDPHS.o
+ .debug_abbrev 0x0000000000000791 0x41 obj/flash_USBDCallbacks_Initialized.o
+ .debug_abbrev 0x00000000000007d2 0x36 obj/flash_USBDCallbacks_Reset.o
+ .debug_abbrev 0x0000000000000808 0x14f obj/flash_USBDDriver.o
+ .debug_abbrev 0x0000000000000957 0x50 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_abbrev 0x00000000000009a7 0x198 obj/flash_MSDDriver.o
+ .debug_abbrev 0x0000000000000b3f 0x99 obj/flash_MSDDriverDescriptors.o
+ .debug_abbrev 0x0000000000000bd8 0x1fa obj/flash_MSDDStateMachine.o
+ .debug_abbrev 0x0000000000000dd2 0x1ae obj/flash_MSDLun.o
+ .debug_abbrev 0x0000000000000f80 0x20d obj/flash_SBCMethods.o
+ .debug_abbrev 0x000000000000118d 0x115 obj/flash_led.o
+ .debug_abbrev 0x00000000000012a2 0xa2 obj/flash_math.o
+ .debug_abbrev 0x0000000000001344 0x226 obj/flash_stdio.o
+ .debug_abbrev 0x000000000000156a 0xba obj/flash_dbgu.o
+ .debug_abbrev 0x0000000000001624 0x194 obj/flash_pio.o
+ .debug_abbrev 0x00000000000017b8 0x1cf obj/flash_pio_it.o
+ .debug_abbrev 0x0000000000001987 0xe4 obj/flash_pmc.o
+ .debug_abbrev 0x0000000000001a6b 0xcb obj/flash_tc.o
+ .debug_abbrev 0x0000000000001b36 0xd6 obj/flash_board_lowlevel.o
+ .debug_abbrev 0x0000000000001c0c 0x220 obj/flash_trace.o
+ .debug_abbrev 0x0000000000001e2c 0x131 obj/flash_board_memories.o
+ .debug_abbrev 0x0000000000001f5d 0x103 obj/flash_Media.o
+ .debug_abbrev 0x0000000000002060 0x218 obj/flash_sdmmc_mci.o
+ .debug_abbrev 0x0000000000002278 0x1fc obj/flash_MEDSdcard.o
+ .debug_abbrev 0x0000000000002474 0x1da obj/flash_mci_hs.o
+ .debug_abbrev 0x000000000000264e 0x14c obj/flash_dma.o
+ .debug_abbrev 0x000000000000279a 0x159 obj/flash_dmad.o
+ .debug_abbrev 0x00000000000028f3 0x114 obj/flash_MEDRamDisk.o
+ .debug_abbrev 0x0000000000002a07 0x15b obj/flash_nvic.o
+ .debug_abbrev 0x0000000000002b62 0x121 obj/flash_exceptions.o
+ .debug_abbrev 0x0000000000002c83 0xd3 obj/flash_board_cstartup_gnu.o
+ .debug_abbrev 0x0000000000002d56 0xa5 obj/flash_core_cm3.o
+ .debug_abbrev 0x0000000000002dfb 0xbe obj/flash_systick.o
+ .debug_abbrev 0x0000000000002eb9 0x252 obj/flash_main.o
+ .debug_abbrev 0x000000000000310b 0x166 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .debug_abbrev 0x0000000000003271 0x8d /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_loc 0x0000000000000000 0x58ba
+ .debug_loc 0x0000000000000000 0xe0 obj/flash_USBConfigurationDescriptor.o
+ .debug_loc 0x00000000000000e0 0x118 obj/flash_USBEndpointDescriptor.o
+ .debug_loc 0x00000000000001f8 0x70 obj/flash_USBFeatureRequest.o
+ .debug_loc 0x0000000000000268 0xa8 obj/flash_USBGenericDescriptor.o
+ .debug_loc 0x0000000000000310 0x1c0 obj/flash_USBGenericRequest.o
+ .debug_loc 0x00000000000004d0 0x70 obj/flash_USBGetDescriptorRequest.o
+ .debug_loc 0x0000000000000540 0x70 obj/flash_USBInterfaceRequest.o
+ .debug_loc 0x00000000000005b0 0x38 obj/flash_USBSetAddressRequest.o
+ .debug_loc 0x00000000000005e8 0x38 obj/flash_USBSetConfigurationRequest.o
+ .debug_loc 0x0000000000000620 0x778 obj/flash_USBD_UDPHS.o
+ .debug_loc 0x0000000000000d98 0x2c obj/flash_USBDCallbacks_Initialized.o
+ .debug_loc 0x0000000000000dc4 0x2c obj/flash_USBDCallbacks_Reset.o
+ .debug_loc 0x0000000000000df0 0x2a4 obj/flash_USBDDriver.o
+ .debug_loc 0x0000000000001094 0x38 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_loc 0x00000000000010cc 0x244 obj/flash_MSDDriver.o
+ .debug_loc 0x0000000000001310 0x150 obj/flash_MSDDStateMachine.o
+ .debug_loc 0x0000000000001460 0x150 obj/flash_MSDLun.o
+ .debug_loc 0x00000000000015b0 0x310 obj/flash_SBCMethods.o
+ .debug_loc 0x00000000000018c0 0xe0 obj/flash_led.o
+ .debug_loc 0x00000000000019a0 0xa8 obj/flash_math.o
+ .debug_loc 0x0000000000001a48 0x342 obj/flash_stdio.o
+ .debug_loc 0x0000000000001d8a 0xc8 obj/flash_dbgu.o
+ .debug_loc 0x0000000000001e52 0x230 obj/flash_pio.o
+ .debug_loc 0x0000000000002082 0x1c8 obj/flash_pio_it.o
+ .debug_loc 0x000000000000224a 0x184 obj/flash_pmc.o
+ .debug_loc 0x00000000000023ce 0xe0 obj/flash_tc.o
+ .debug_loc 0x00000000000024ae 0xa8 obj/flash_board_lowlevel.o
+ .debug_loc 0x0000000000002556 0x1f8 obj/flash_trace.o
+ .debug_loc 0x000000000000274e 0x72 obj/flash_board_memories.o
+ .debug_loc 0x00000000000027c0 0x70 obj/flash_Media.o
+ .debug_loc 0x0000000000002830 0xd99 obj/flash_sdmmc_mci.o
+ .debug_loc 0x00000000000035c9 0x342 obj/flash_MEDSdcard.o
+ .debug_loc 0x000000000000390b 0x3be obj/flash_mci_hs.o
+ .debug_loc 0x0000000000003cc9 0x4cc obj/flash_dma.o
+ .debug_loc 0x0000000000004195 0x150 obj/flash_dmad.o
+ .debug_loc 0x00000000000042e5 0x118 obj/flash_MEDRamDisk.o
+ .debug_loc 0x00000000000043fd 0x268 obj/flash_nvic.o
+ .debug_loc 0x0000000000004665 0x824 obj/flash_exceptions.o
+ .debug_loc 0x0000000000004e89 0x38 obj/flash_board_cstartup_gnu.o
+ .debug_loc 0x0000000000004ec1 0x4d0 obj/flash_core_cm3.o
+ .debug_loc 0x0000000000005391 0x38 obj/flash_systick.o
+ .debug_loc 0x00000000000053c9 0x2f5 obj/flash_main.o
+ .debug_loc 0x00000000000056be 0x1fc /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_aranges 0x0000000000000000 0x10f0
+ .debug_aranges
+ 0x0000000000000000 0x38 obj/flash_USBConfigurationDescriptor.o
+ .debug_aranges
+ 0x0000000000000038 0x40 obj/flash_USBEndpointDescriptor.o
+ .debug_aranges
+ 0x0000000000000078 0x28 obj/flash_USBFeatureRequest.o
+ .debug_aranges
+ 0x00000000000000a0 0x30 obj/flash_USBGenericDescriptor.o
+ .debug_aranges
+ 0x00000000000000d0 0x58 obj/flash_USBGenericRequest.o
+ .debug_aranges
+ 0x0000000000000128 0x28 obj/flash_USBGetDescriptorRequest.o
+ .debug_aranges
+ 0x0000000000000150 0x28 obj/flash_USBInterfaceRequest.o
+ .debug_aranges
+ 0x0000000000000178 0x20 obj/flash_USBSetAddressRequest.o
+ .debug_aranges
+ 0x0000000000000198 0x20 obj/flash_USBSetConfigurationRequest.o
+ .debug_aranges
+ 0x00000000000001b8 0x138 obj/flash_USBD_UDPHS.o
+ .debug_aranges
+ 0x00000000000002f0 0x20 obj/flash_USBDCallbacks_Initialized.o
+ .debug_aranges
+ 0x0000000000000310 0x20 obj/flash_USBDCallbacks_Reset.o
+ .debug_aranges
+ 0x0000000000000330 0x78 obj/flash_USBDDriver.o
+ .debug_aranges
+ 0x00000000000003a8 0x20 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_aranges
+ 0x00000000000003c8 0x70 obj/flash_MSDDriver.o
+ .debug_aranges
+ 0x0000000000000438 0x48 obj/flash_MSDDStateMachine.o
+ .debug_aranges
+ 0x0000000000000480 0x48 obj/flash_MSDLun.o
+ .debug_aranges
+ 0x00000000000004c8 0x88 obj/flash_SBCMethods.o
+ .debug_aranges
+ 0x0000000000000550 0x38 obj/flash_led.o
+ .debug_aranges
+ 0x0000000000000588 0x30 obj/flash_math.o
+ .debug_aranges
+ 0x00000000000005b8 0x88 obj/flash_stdio.o
+ .debug_aranges
+ 0x0000000000000640 0x38 obj/flash_dbgu.o
+ .debug_aranges
+ 0x0000000000000678 0x68 obj/flash_pio.o
+ .debug_aranges
+ 0x00000000000006e0 0x60 obj/flash_pio_it.o
+ .debug_aranges
+ 0x0000000000000740 0x58 obj/flash_pmc.o
+ .debug_aranges
+ 0x0000000000000798 0x38 obj/flash_tc.o
+ .debug_aranges
+ 0x00000000000007d0 0x30 obj/flash_board_lowlevel.o
+ .debug_aranges
+ 0x0000000000000800 0x60 obj/flash_trace.o
+ .debug_aranges
+ 0x0000000000000860 0x28 obj/flash_board_memories.o
+ .debug_aranges
+ 0x0000000000000888 0x28 obj/flash_Media.o
+ .debug_aranges
+ 0x00000000000008b0 0x208 obj/flash_sdmmc_mci.o
+ .debug_aranges
+ 0x0000000000000ab8 0x90 obj/flash_MEDSdcard.o
+ .debug_aranges
+ 0x0000000000000b48 0xa0 obj/flash_mci_hs.o
+ .debug_aranges
+ 0x0000000000000be8 0xd0 obj/flash_dma.o
+ .debug_aranges
+ 0x0000000000000cb8 0x48 obj/flash_dmad.o
+ .debug_aranges
+ 0x0000000000000d00 0x40 obj/flash_MEDRamDisk.o
+ .debug_aranges
+ 0x0000000000000d40 0x70 obj/flash_nvic.o
+ .debug_aranges
+ 0x0000000000000db0 0x188 obj/flash_exceptions.o
+ .debug_aranges
+ 0x0000000000000f38 0x20 obj/flash_board_cstartup_gnu.o
+ .debug_aranges
+ 0x0000000000000f58 0xc8 obj/flash_core_cm3.o
+ .debug_aranges
+ 0x0000000000001020 0x20 obj/flash_systick.o
+ .debug_aranges
+ 0x0000000000001040 0x90 obj/flash_main.o
+ .debug_aranges
+ 0x00000000000010d0 0x20 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_ranges 0x0000000000000000 0xe60
+ .debug_ranges 0x0000000000000000 0x28 obj/flash_USBConfigurationDescriptor.o
+ .debug_ranges 0x0000000000000028 0x30 obj/flash_USBEndpointDescriptor.o
+ .debug_ranges 0x0000000000000058 0x18 obj/flash_USBFeatureRequest.o
+ .debug_ranges 0x0000000000000070 0x20 obj/flash_USBGenericDescriptor.o
+ .debug_ranges 0x0000000000000090 0x48 obj/flash_USBGenericRequest.o
+ .debug_ranges 0x00000000000000d8 0x18 obj/flash_USBGetDescriptorRequest.o
+ .debug_ranges 0x00000000000000f0 0x18 obj/flash_USBInterfaceRequest.o
+ .debug_ranges 0x0000000000000108 0x10 obj/flash_USBSetAddressRequest.o
+ .debug_ranges 0x0000000000000118 0x10 obj/flash_USBSetConfigurationRequest.o
+ .debug_ranges 0x0000000000000128 0x128 obj/flash_USBD_UDPHS.o
+ .debug_ranges 0x0000000000000250 0x10 obj/flash_USBDCallbacks_Initialized.o
+ .debug_ranges 0x0000000000000260 0x10 obj/flash_USBDCallbacks_Reset.o
+ .debug_ranges 0x0000000000000270 0x68 obj/flash_USBDDriver.o
+ .debug_ranges 0x00000000000002d8 0x10 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_ranges 0x00000000000002e8 0x60 obj/flash_MSDDriver.o
+ .debug_ranges 0x0000000000000348 0x38 obj/flash_MSDDStateMachine.o
+ .debug_ranges 0x0000000000000380 0x38 obj/flash_MSDLun.o
+ .debug_ranges 0x00000000000003b8 0x78 obj/flash_SBCMethods.o
+ .debug_ranges 0x0000000000000430 0x28 obj/flash_led.o
+ .debug_ranges 0x0000000000000458 0x20 obj/flash_math.o
+ .debug_ranges 0x0000000000000478 0x78 obj/flash_stdio.o
+ .debug_ranges 0x00000000000004f0 0x28 obj/flash_dbgu.o
+ .debug_ranges 0x0000000000000518 0x58 obj/flash_pio.o
+ .debug_ranges 0x0000000000000570 0x50 obj/flash_pio_it.o
+ .debug_ranges 0x00000000000005c0 0x48 obj/flash_pmc.o
+ .debug_ranges 0x0000000000000608 0x28 obj/flash_tc.o
+ .debug_ranges 0x0000000000000630 0x20 obj/flash_board_lowlevel.o
+ .debug_ranges 0x0000000000000650 0x50 obj/flash_trace.o
+ .debug_ranges 0x00000000000006a0 0x18 obj/flash_board_memories.o
+ .debug_ranges 0x00000000000006b8 0x18 obj/flash_Media.o
+ .debug_ranges 0x00000000000006d0 0x228 obj/flash_sdmmc_mci.o
+ .debug_ranges 0x00000000000008f8 0x80 obj/flash_MEDSdcard.o
+ .debug_ranges 0x0000000000000978 0x90 obj/flash_mci_hs.o
+ .debug_ranges 0x0000000000000a08 0xc0 obj/flash_dma.o
+ .debug_ranges 0x0000000000000ac8 0x38 obj/flash_dmad.o
+ .debug_ranges 0x0000000000000b00 0x30 obj/flash_MEDRamDisk.o
+ .debug_ranges 0x0000000000000b30 0x60 obj/flash_nvic.o
+ .debug_ranges 0x0000000000000b90 0x178 obj/flash_exceptions.o
+ .debug_ranges 0x0000000000000d08 0x10 obj/flash_board_cstartup_gnu.o
+ .debug_ranges 0x0000000000000d18 0xb8 obj/flash_core_cm3.o
+ .debug_ranges 0x0000000000000dd0 0x10 obj/flash_systick.o
+ .debug_ranges 0x0000000000000de0 0x80 obj/flash_main.o
+
+.debug_line 0x0000000000000000 0x5c0b
+ .debug_line 0x0000000000000000 0x134 obj/flash_USBConfigurationDescriptor.o
+ .debug_line 0x0000000000000134 0xcc obj/flash_USBEndpointDescriptor.o
+ .debug_line 0x0000000000000200 0x8c obj/flash_USBFeatureRequest.o
+ .debug_line 0x000000000000028c 0xa5 obj/flash_USBGenericDescriptor.o
+ .debug_line 0x0000000000000331 0xf9 obj/flash_USBGenericRequest.o
+ .debug_line 0x000000000000042a 0x92 obj/flash_USBGetDescriptorRequest.o
+ .debug_line 0x00000000000004bc 0x8e obj/flash_USBInterfaceRequest.o
+ .debug_line 0x000000000000054a 0x7d obj/flash_USBSetAddressRequest.o
+ .debug_line 0x00000000000005c7 0x83 obj/flash_USBSetConfigurationRequest.o
+ .debug_line 0x000000000000064a 0x97d obj/flash_USBD_UDPHS.o
+ .debug_line 0x0000000000000fc7 0x6e obj/flash_USBDCallbacks_Initialized.o
+ .debug_line 0x0000000000001035 0x64 obj/flash_USBDCallbacks_Reset.o
+ .debug_line 0x0000000000001099 0x331 obj/flash_USBDDriver.o
+ .debug_line 0x00000000000013ca 0x6e obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_line 0x0000000000001438 0x2b1 obj/flash_MSDDriver.o
+ .debug_line 0x00000000000016e9 0x145 obj/flash_MSDDriverDescriptors.o
+ .debug_line 0x000000000000182e 0x239 obj/flash_MSDDStateMachine.o
+ .debug_line 0x0000000000001a67 0x19e obj/flash_MSDLun.o
+ .debug_line 0x0000000000001c05 0x4ca obj/flash_SBCMethods.o
+ .debug_line 0x00000000000020cf 0xfa obj/flash_led.o
+ .debug_line 0x00000000000021c9 0x7e obj/flash_math.o
+ .debug_line 0x0000000000002247 0x34f obj/flash_stdio.o
+ .debug_line 0x0000000000002596 0xe8 obj/flash_dbgu.o
+ .debug_line 0x000000000000267e 0x1a5 obj/flash_pio.o
+ .debug_line 0x0000000000002823 0x1aa obj/flash_pio_it.o
+ .debug_line 0x00000000000029cd 0x149 obj/flash_pmc.o
+ .debug_line 0x0000000000002b16 0xe8 obj/flash_tc.o
+ .debug_line 0x0000000000002bfe 0x14e obj/flash_board_lowlevel.o
+ .debug_line 0x0000000000002d4c 0x331 obj/flash_trace.o
+ .debug_line 0x000000000000307d 0xf7 obj/flash_board_memories.o
+ .debug_line 0x0000000000003174 0x81 obj/flash_Media.o
+ .debug_line 0x00000000000031f5 0xb74 obj/flash_sdmmc_mci.o
+ .debug_line 0x0000000000003d69 0x2f1 obj/flash_MEDSdcard.o
+ .debug_line 0x000000000000405a 0x5f0 obj/flash_mci_hs.o
+ .debug_line 0x000000000000464a 0x328 obj/flash_dma.o
+ .debug_line 0x0000000000004972 0x167 obj/flash_dmad.o
+ .debug_line 0x0000000000004ad9 0x168 obj/flash_MEDRamDisk.o
+ .debug_line 0x0000000000004c41 0x233 obj/flash_nvic.o
+ .debug_line 0x0000000000004e74 0x4c1 obj/flash_exceptions.o
+ .debug_line 0x0000000000005335 0xcc obj/flash_board_cstartup_gnu.o
+ .debug_line 0x0000000000005401 0x25f obj/flash_core_cm3.o
+ .debug_line 0x0000000000005660 0xcd obj/flash_systick.o
+ .debug_line 0x000000000000572d 0x28f obj/flash_main.o
+ .debug_line 0x00000000000059bc 0x103 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .debug_line 0x0000000000005abf 0x14c /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_str 0x0000000000000000 0x5664
+ .debug_str 0x0000000000000000 0x2f2 obj/flash_USBConfigurationDescriptor.o
+ 0x304 (size before relaxing)
+ .debug_str 0x00000000000002f2 0xe9 obj/flash_USBEndpointDescriptor.o
+ 0x1c9 (size before relaxing)
+ .debug_str 0x00000000000003db 0xc0 obj/flash_USBFeatureRequest.o
+ 0x13b (size before relaxing)
+ .debug_str 0x000000000000049b 0x98 obj/flash_USBGenericDescriptor.o
+ 0x145 (size before relaxing)
+ .debug_str 0x0000000000000533 0x11d obj/flash_USBGenericRequest.o
+ 0x1df (size before relaxing)
+ .debug_str 0x0000000000000650 0x8d obj/flash_USBGetDescriptorRequest.o
+ 0x14f (size before relaxing)
+ .debug_str 0x00000000000006dd 0x7d obj/flash_USBInterfaceRequest.o
+ 0x13f (size before relaxing)
+ .debug_str 0x000000000000075a 0x55 obj/flash_USBSetAddressRequest.o
+ 0x117 (size before relaxing)
+ .debug_str 0x00000000000007af 0x67 obj/flash_USBSetConfigurationRequest.o
+ 0x129 (size before relaxing)
+ .debug_str 0x0000000000000816 0x91e obj/flash_USBD_UDPHS.o
+ 0xb49 (size before relaxing)
+ .debug_str 0x0000000000001134 0x54 obj/flash_USBDCallbacks_Initialized.o
+ 0x132 (size before relaxing)
+ .debug_str 0x0000000000001188 0x48 obj/flash_USBDCallbacks_Reset.o
+ 0xc3 (size before relaxing)
+ .debug_str 0x00000000000011d0 0x31c obj/flash_USBDDriver.o
+ 0x5a5 (size before relaxing)
+ .debug_str 0x00000000000014ec 0x74 obj/flash_USBDDriverCb_IfSettingChanged.o
+ 0x15f (size before relaxing)
+ .debug_str 0x0000000000001560 0x6ab obj/flash_MSDDriver.o
+ 0xabf (size before relaxing)
+ .debug_str 0x0000000000001c0b 0x159 obj/flash_MSDDriverDescriptors.o
+ 0x4ca (size before relaxing)
+ .debug_str 0x0000000000001d64 0x2cd obj/flash_MSDDStateMachine.o
+ 0x9cb (size before relaxing)
+ .debug_str 0x0000000000002031 0xac obj/flash_MSDLun.o
+ 0x688 (size before relaxing)
+ .debug_str 0x00000000000020dd 0x1f7 obj/flash_SBCMethods.o
+ 0xaaa (size before relaxing)
+ .debug_str 0x00000000000022d4 0x32c obj/flash_led.o
+ 0x3ed (size before relaxing)
+ .debug_str 0x0000000000002600 0x28 obj/flash_math.o
+ 0x118 (size before relaxing)
+ .debug_str 0x0000000000002628 0x44b obj/flash_stdio.o
+ 0x5c6 (size before relaxing)
+ .debug_str 0x0000000000002a73 0x191 obj/flash_dbgu.o
+ 0x324 (size before relaxing)
+ .debug_str 0x0000000000002c04 0xf7 obj/flash_pio.o
+ 0x581 (size before relaxing)
+ .debug_str 0x0000000000002cfb 0xfb obj/flash_pio_it.o
+ 0x614 (size before relaxing)
+ .debug_str 0x0000000000002df6 0xd9 obj/flash_pmc.o
+ 0x2da (size before relaxing)
+ .debug_str 0x0000000000002ecf 0xb2 obj/flash_tc.o
+ 0x145 (size before relaxing)
+ .debug_str 0x0000000000002f81 0x3df obj/flash_board_lowlevel.o
+ 0x5b2 (size before relaxing)
+ .debug_str 0x0000000000003360 0xb4 obj/flash_trace.o
+ 0x586 (size before relaxing)
+ .debug_str 0x0000000000003414 0x2d8 obj/flash_board_memories.o
+ 0x763 (size before relaxing)
+ .debug_str 0x00000000000036ec 0x54 obj/flash_Media.o
+ 0x222 (size before relaxing)
+ .debug_str 0x0000000000003740 0x76e obj/flash_sdmmc_mci.o
+ 0x945 (size before relaxing)
+ .debug_str 0x0000000000003eae 0x178 obj/flash_MEDSdcard.o
+ 0x92d (size before relaxing)
+ .debug_str 0x0000000000004026 0x2f3 obj/flash_mci_hs.o
+ 0x72e (size before relaxing)
+ .debug_str 0x0000000000004319 0x339 obj/flash_dma.o
+ 0x47b (size before relaxing)
+ .debug_str 0x0000000000004652 0x177 obj/flash_dmad.o
+ 0x42c (size before relaxing)
+ .debug_str 0x00000000000047c9 0xbf obj/flash_MEDRamDisk.o
+ 0x2e8 (size before relaxing)
+ .debug_str 0x0000000000004888 0x596 obj/flash_nvic.o
+ 0x750 (size before relaxing)
+ .debug_str 0x0000000000004e1e 0x2f2 obj/flash_exceptions.o
+ 0x484 (size before relaxing)
+ .debug_str 0x0000000000005110 0x9d obj/flash_board_cstartup_gnu.o
+ 0x3cd (size before relaxing)
+ .debug_str 0x00000000000051ad 0x152 obj/flash_core_cm3.o
+ 0x263 (size before relaxing)
+ .debug_str 0x00000000000052ff 0x60 obj/flash_systick.o
+ 0x407 (size before relaxing)
+ .debug_str 0x000000000000535f 0x1d4 obj/flash_main.o
+ 0xc2a (size before relaxing)
+ .debug_str 0x0000000000005533 0x9d /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ 0x4ed (size before relaxing)
+ .debug_str 0x00000000000055d0 0x94 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+ 0x137 (size before relaxing)
+
+.comment 0x0000000000000000 0x11
+ .comment 0x0000000000000000 0x11 obj/flash_USBConfigurationDescriptor.o
+ 0x12 (size before relaxing)
+ .comment 0x0000000000000000 0x12 obj/flash_USBEndpointDescriptor.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBFeatureRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBGenericDescriptor.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBGenericRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBGetDescriptorRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBInterfaceRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBSetAddressRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBSetConfigurationRequest.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBD_UDPHS.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBDCallbacks_Initialized.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBDCallbacks_Reset.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBDDriver.o
+ .comment 0x0000000000000000 0x12 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .comment 0x0000000000000000 0x12 obj/flash_MSDDriver.o
+ .comment 0x0000000000000000 0x12 obj/flash_MSDDriverDescriptors.o
+ .comment 0x0000000000000000 0x12 obj/flash_MSDDStateMachine.o
+ .comment 0x0000000000000000 0x12 obj/flash_MSDLun.o
+ .comment 0x0000000000000000 0x12 obj/flash_SBCMethods.o
+ .comment 0x0000000000000000 0x12 obj/flash_led.o
+ .comment 0x0000000000000000 0x12 obj/flash_math.o
+ .comment 0x0000000000000000 0x12 obj/flash_stdio.o
+ .comment 0x0000000000000000 0x12 obj/flash_dbgu.o
+ .comment 0x0000000000000000 0x12 obj/flash_pio.o
+ .comment 0x0000000000000000 0x12 obj/flash_pio_it.o
+ .comment 0x0000000000000000 0x12 obj/flash_pmc.o
+ .comment 0x0000000000000000 0x12 obj/flash_tc.o
+ .comment 0x0000000000000000 0x12 obj/flash_board_lowlevel.o
+ .comment 0x0000000000000000 0x12 obj/flash_trace.o
+ .comment 0x0000000000000000 0x12 obj/flash_board_memories.o
+ .comment 0x0000000000000000 0x12 obj/flash_Media.o
+ .comment 0x0000000000000000 0x12 obj/flash_sdmmc_mci.o
+ .comment 0x0000000000000000 0x12 obj/flash_MEDSdcard.o
+ .comment 0x0000000000000000 0x12 obj/flash_mci_hs.o
+ .comment 0x0000000000000000 0x12 obj/flash_dma.o
+ .comment 0x0000000000000000 0x12 obj/flash_dmad.o
+ .comment 0x0000000000000000 0x12 obj/flash_MEDRamDisk.o
+ .comment 0x0000000000000000 0x12 obj/flash_nvic.o
+ .comment 0x0000000000000000 0x12 obj/flash_exceptions.o
+ .comment 0x0000000000000000 0x12 obj/flash_board_cstartup_gnu.o
+ .comment 0x0000000000000000 0x12 obj/flash_core_cm3.o
+ .comment 0x0000000000000000 0x12 obj/flash_systick.o
+ .comment 0x0000000000000000 0x12 obj/flash_main.o
+ .comment 0x0000000000000000 0x12 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .comment 0x0000000000000000 0x12 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.ARM.attributes
+ 0x0000000000000000 0x33
+ .ARM.attributes
+ 0x0000000000000000 0x31 obj/flash_USBConfigurationDescriptor.o
+ .ARM.attributes
+ 0x0000000000000031 0x31 obj/flash_USBEndpointDescriptor.o
+ .ARM.attributes
+ 0x0000000000000062 0x31 obj/flash_USBFeatureRequest.o
+ .ARM.attributes
+ 0x0000000000000093 0x31 obj/flash_USBGenericDescriptor.o
+ .ARM.attributes
+ 0x00000000000000c4 0x31 obj/flash_USBGenericRequest.o
+ .ARM.attributes
+ 0x00000000000000f5 0x31 obj/flash_USBGetDescriptorRequest.o
+ .ARM.attributes
+ 0x0000000000000126 0x31 obj/flash_USBInterfaceRequest.o
+ .ARM.attributes
+ 0x0000000000000157 0x31 obj/flash_USBSetAddressRequest.o
+ .ARM.attributes
+ 0x0000000000000188 0x31 obj/flash_USBSetConfigurationRequest.o
+ .ARM.attributes
+ 0x00000000000001b9 0x31 obj/flash_USBD_UDPHS.o
+ .ARM.attributes
+ 0x00000000000001ea 0x31 obj/flash_USBDCallbacks_Initialized.o
+ .ARM.attributes
+ 0x000000000000021b 0x31 obj/flash_USBDCallbacks_Reset.o
+ .ARM.attributes
+ 0x000000000000024c 0x31 obj/flash_USBDDriver.o
+ .ARM.attributes
+ 0x000000000000027d 0x31 obj/flash_USBDDriverCb_IfSettingChanged.o
+ .ARM.attributes
+ 0x00000000000002ae 0x31 obj/flash_MSDDriver.o
+ .ARM.attributes
+ 0x00000000000002df 0x31 obj/flash_MSDDriverDescriptors.o
+ .ARM.attributes
+ 0x0000000000000310 0x31 obj/flash_MSDDStateMachine.o
+ .ARM.attributes
+ 0x0000000000000341 0x31 obj/flash_MSDLun.o
+ .ARM.attributes
+ 0x0000000000000372 0x31 obj/flash_SBCMethods.o
+ .ARM.attributes
+ 0x00000000000003a3 0x31 obj/flash_led.o
+ .ARM.attributes
+ 0x00000000000003d4 0x31 obj/flash_math.o
+ .ARM.attributes
+ 0x0000000000000405 0x31 obj/flash_stdio.o
+ .ARM.attributes
+ 0x0000000000000436 0x31 obj/flash_dbgu.o
+ .ARM.attributes
+ 0x0000000000000467 0x31 obj/flash_pio.o
+ .ARM.attributes
+ 0x0000000000000498 0x31 obj/flash_pio_it.o
+ .ARM.attributes
+ 0x00000000000004c9 0x31 obj/flash_pmc.o
+ .ARM.attributes
+ 0x00000000000004fa 0x31 obj/flash_tc.o
+ .ARM.attributes
+ 0x000000000000052b 0x31 obj/flash_board_lowlevel.o
+ .ARM.attributes
+ 0x000000000000055c 0x31 obj/flash_trace.o
+ .ARM.attributes
+ 0x000000000000058d 0x31 obj/flash_board_memories.o
+ .ARM.attributes
+ 0x00000000000005be 0x31 obj/flash_Media.o
+ .ARM.attributes
+ 0x00000000000005ef 0x31 obj/flash_sdmmc_mci.o
+ .ARM.attributes
+ 0x0000000000000620 0x31 obj/flash_MEDSdcard.o
+ .ARM.attributes
+ 0x0000000000000651 0x31 obj/flash_mci_hs.o
+ .ARM.attributes
+ 0x0000000000000682 0x31 obj/flash_dma.o
+ .ARM.attributes
+ 0x00000000000006b3 0x31 obj/flash_dmad.o
+ .ARM.attributes
+ 0x00000000000006e4 0x31 obj/flash_MEDRamDisk.o
+ .ARM.attributes
+ 0x0000000000000715 0x31 obj/flash_nvic.o
+ .ARM.attributes
+ 0x0000000000000746 0x31 obj/flash_exceptions.o
+ .ARM.attributes
+ 0x0000000000000777 0x31 obj/flash_board_cstartup_gnu.o
+ .ARM.attributes
+ 0x00000000000007a8 0x31 obj/flash_core_cm3.o
+ .ARM.attributes
+ 0x00000000000007d9 0x31 obj/flash_systick.o
+ .ARM.attributes
+ 0x000000000000080a 0x31 obj/flash_main.o
+ .ARM.attributes
+ 0x000000000000083b 0x32 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ .ARM.attributes
+ 0x000000000000086d 0x32 /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+.debug_frame 0x0000000000000000 0x3294
+ .debug_frame 0x0000000000000000 0x84 obj/flash_USBConfigurationDescriptor.o
+ .debug_frame 0x0000000000000084 0x9c obj/flash_USBEndpointDescriptor.o
+ .debug_frame 0x0000000000000120 0x50 obj/flash_USBFeatureRequest.o
+ .debug_frame 0x0000000000000170 0x68 obj/flash_USBGenericDescriptor.o
+ .debug_frame 0x00000000000001d8 0xf4 obj/flash_USBGenericRequest.o
+ .debug_frame 0x00000000000002cc 0x50 obj/flash_USBGetDescriptorRequest.o
+ .debug_frame 0x000000000000031c 0x50 obj/flash_USBInterfaceRequest.o
+ .debug_frame 0x000000000000036c 0x30 obj/flash_USBSetAddressRequest.o
+ .debug_frame 0x000000000000039c 0x30 obj/flash_USBSetConfigurationRequest.o
+ .debug_frame 0x00000000000003cc 0x41c obj/flash_USBD_UDPHS.o
+ .debug_frame 0x00000000000007e8 0x2c obj/flash_USBDCallbacks_Initialized.o
+ .debug_frame 0x0000000000000814 0x28 obj/flash_USBDCallbacks_Reset.o
+ .debug_frame 0x000000000000083c 0x188 obj/flash_USBDDriver.o
+ .debug_frame 0x00000000000009c4 0x2c obj/flash_USBDDriverCb_IfSettingChanged.o
+ .debug_frame 0x00000000000009f0 0x160 obj/flash_MSDDriver.o
+ .debug_frame 0x0000000000000b50 0xc8 obj/flash_MSDDStateMachine.o
+ .debug_frame 0x0000000000000c18 0xc8 obj/flash_MSDLun.o
+ .debug_frame 0x0000000000000ce0 0x1c4 obj/flash_SBCMethods.o
+ .debug_frame 0x0000000000000ea4 0x90 obj/flash_led.o
+ .debug_frame 0x0000000000000f34 0x64 obj/flash_math.o
+ .debug_frame 0x0000000000000f98 0x1ec obj/flash_stdio.o
+ .debug_frame 0x0000000000001184 0x78 obj/flash_dbgu.o
+ .debug_frame 0x00000000000011fc 0x12c obj/flash_pio.o
+ .debug_frame 0x0000000000001328 0x114 obj/flash_pio_it.o
+ .debug_frame 0x000000000000143c 0xe8 obj/flash_pmc.o
+ .debug_frame 0x0000000000001524 0x84 obj/flash_tc.o
+ .debug_frame 0x00000000000015a8 0x68 obj/flash_board_lowlevel.o
+ .debug_frame 0x0000000000001610 0x130 obj/flash_trace.o
+ .debug_frame 0x0000000000001740 0x4c obj/flash_board_memories.o
+ .debug_frame 0x000000000000178c 0x50 obj/flash_Media.o
+ .debug_frame 0x00000000000017dc 0x7a8 obj/flash_sdmmc_mci.o
+ .debug_frame 0x0000000000001f84 0x1e4 obj/flash_MEDSdcard.o
+ .debug_frame 0x0000000000002168 0x220 obj/flash_mci_hs.o
+ .debug_frame 0x0000000000002388 0x2b0 obj/flash_dma.o
+ .debug_frame 0x0000000000002638 0xd0 obj/flash_dmad.o
+ .debug_frame 0x0000000000002708 0xa8 obj/flash_MEDRamDisk.o
+ .debug_frame 0x00000000000027b0 0x158 obj/flash_nvic.o
+ .debug_frame 0x0000000000002908 0x488 obj/flash_exceptions.o
+ .debug_frame 0x0000000000002d90 0x30 obj/flash_board_cstartup_gnu.o
+ .debug_frame 0x0000000000002dc0 0x2b8 obj/flash_core_cm3.o
+ .debug_frame 0x0000000000003078 0x2c obj/flash_systick.o
+ .debug_frame 0x00000000000030a4 0x1c4 obj/flash_main.o
+ .debug_frame 0x0000000000003268 0x2c /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+
+Cross Reference Table
+
+Symbol File
+ADCC0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+ADCC1_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+BOARD_ConfigureNandFlash obj/flash_board_memories.o
+BOARD_ConfigurePsram obj/flash_board_memories.o
+BusFault_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+BusFault_HandlerBody obj/flash_exceptions.o
+ConfigureTc0 obj/flash_main.o
+DBGU_Configure obj/flash_dbgu.o
+ obj/flash_main.o
+DBGU_GetChar obj/flash_dbgu.o
+ obj/flash_trace.o
+DBGU_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+DBGU_IsRxReady obj/flash_dbgu.o
+DBGU_PutChar obj/flash_dbgu.o
+ obj/flash_sdmmc_mci.o
+ obj/flash_trace.o
+DMAD_BufferTransfer obj/flash_dmad.o
+DMAD_Configure_Buffer obj/flash_dmad.o
+DMAD_Configure_TransferController obj/flash_dmad.o
+DMAD_Handler obj/flash_dmad.o
+DMAD_Initialize obj/flash_dmad.o
+ obj/flash_MEDSdcard.o
+DMAD_IsFinished obj/flash_dmad.o
+DMA_ClearAutoMode obj/flash_dma.o
+ obj/flash_dmad.o
+DMA_Config obj/flash_dma.o
+DMA_Disable obj/flash_dma.o
+DMA_DisableChannel obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_DisableChannels obj/flash_dma.o
+DMA_DisableIt obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_Enable obj/flash_dma.o
+ obj/flash_dmad.o
+DMA_EnableChannel obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_EnableChannels obj/flash_dma.o
+DMA_EnableIt obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_GetChannelStatus obj/flash_dma.o
+ obj/flash_dmad.o
+DMA_GetInterruptMask obj/flash_dma.o
+ obj/flash_mci_hs.o
+DMA_GetMaskedStatus obj/flash_dma.o
+DMA_GetStatus obj/flash_dma.o
+ obj/flash_dmad.o
+DMA_KeeponChannel obj/flash_dma.o
+ obj/flash_dmad.o
+DMA_SetConfiguration obj/flash_dma.o
+ obj/flash_mci_hs.o
+DMA_SetDescriptorAddr obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_SetDestBufferMode obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_SetDestinationAddr obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_SetFlowControl obj/flash_dma.o
+DMA_SetSourceAddr obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_SetSourceBufferMode obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DMA_SetSourceBufferSize obj/flash_dma.o
+ obj/flash_dmad.o
+ obj/flash_mci_hs.o
+DebugMon_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+DecodeR1 obj/flash_sdmmc_mci.o
+DecodeR2 obj/flash_sdmmc_mci.o
+EFC0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+EFC1_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+FaultReport obj/flash_exceptions.o
+GetTransSpeedValue obj/flash_sdmmc_mci.o
+HDMA_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+HSMC4_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+HardFault_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+HardFault_HandlerBody obj/flash_exceptions.o
+IRQ_ConfigureIT obj/flash_nvic.o
+ obj/flash_main.o
+ obj/flash_dmad.o
+ obj/flash_MEDSdcard.o
+ obj/flash_pio_it.o
+ obj/flash_USBDCallbacks_Initialized.o
+IRQ_DisableIT obj/flash_nvic.o
+IRQ_EnableIT obj/flash_nvic.o
+ obj/flash_main.o
+ obj/flash_dmad.o
+ obj/flash_MEDSdcard.o
+ obj/flash_pio_it.o
+ obj/flash_USBDCallbacks_Initialized.o
+ISR_Media obj/flash_main.o
+ISR_Vbus obj/flash_main.o
+IrqHandlerNotUsed obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+LED_Clear obj/flash_led.o
+ obj/flash_main.o
+ obj/flash_USBD_UDPHS.o
+LED_Configure obj/flash_led.o
+ obj/flash_main.o
+LED_Set obj/flash_led.o
+ obj/flash_main.o
+ obj/flash_USBD_UDPHS.o
+LED_Toggle obj/flash_led.o
+LUN_Eject obj/flash_MSDLun.o
+ obj/flash_main.o
+LUN_Init obj/flash_MSDLun.o
+ obj/flash_main.o
+LUN_Read obj/flash_MSDLun.o
+ obj/flash_SBCMethods.o
+LUN_Write obj/flash_MSDLun.o
+ obj/flash_SBCMethods.o
+LowLevelInit obj/flash_board_lowlevel.o
+ obj/flash_board_cstartup_gnu.o
+MCI0_IrqHandler obj/flash_MEDSdcard.o
+ obj/flash_board_cstartup_gnu.o
+MCI_CheckBusy obj/flash_mci_hs.o
+MCI_Close obj/flash_mci_hs.o
+ obj/flash_sdmmc_mci.o
+MCI_Enable obj/flash_mci_hs.o
+MCI_EnableHsMode obj/flash_mci_hs.o
+ obj/flash_sdmmc_mci.o
+MCI_FifoTransfer obj/flash_mci_hs.o
+MCI_GetSpeed obj/flash_mci_hs.o
+MCI_Handler obj/flash_mci_hs.o
+ obj/flash_MEDSdcard.o
+MCI_Init obj/flash_mci_hs.o
+ obj/flash_MEDSdcard.o
+MCI_IsTxComplete obj/flash_mci_hs.o
+ obj/flash_sdmmc_mci.o
+MCI_Reset obj/flash_mci_hs.o
+MCI_SendCommand obj/flash_mci_hs.o
+ obj/flash_sdmmc_mci.o
+MCI_SetBusWidth obj/flash_mci_hs.o
+ obj/flash_sdmmc_mci.o
+MCI_SetSpeed obj/flash_mci_hs.o
+ obj/flash_MEDSdcard.o
+MEDRamDisk_Initialize obj/flash_MEDRamDisk.o
+MEDSdcard_Detect obj/flash_MEDSdcard.o
+ obj/flash_main.o
+MEDSdcard_EraseAll obj/flash_MEDSdcard.o
+MEDSdcard_EraseBlock obj/flash_MEDSdcard.o
+MEDSdcard_GetDriver obj/flash_MEDSdcard.o
+MEDSdcard_Initialize obj/flash_MEDSdcard.o
+MEDSdusb_Initialize obj/flash_MEDSdcard.o
+ obj/flash_main.o
+MED_HandleAll obj/flash_Media.o
+ obj/flash_main.o
+MMC_GetBootSizeKB obj/flash_sdmmc_mci.o
+MMC_GetTotalSizeKB obj/flash_sdmmc_mci.o
+MSDCallbacks_Data obj/flash_main.o
+MSDD_Halt obj/flash_MSDDriver.o
+ obj/flash_MSDDStateMachine.o
+MSDD_IsHalted obj/flash_MSDDriver.o
+ obj/flash_MSDDStateMachine.o
+MSDD_Read obj/flash_MSDDriver.o
+ obj/flash_SBCMethods.o
+ obj/flash_MSDDStateMachine.o
+MSDD_StateMachine obj/flash_MSDDStateMachine.o
+ obj/flash_MSDDriver.o
+MSDD_Write obj/flash_MSDDriver.o
+ obj/flash_SBCMethods.o
+ obj/flash_MSDDStateMachine.o
+MSDDriver_Initialize obj/flash_MSDDriver.o
+ obj/flash_main.o
+MSDDriver_RemoteWakeUp obj/flash_MSDDriver.o
+MSDDriver_RequestHandler obj/flash_MSDDriver.o
+MSDDriver_StateMachine obj/flash_MSDDriver.o
+ obj/flash_main.o
+MemManage_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+MemManage_HandlerBody obj/flash_exceptions.o
+NMI_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+NVIC_ClrPending obj/flash_nvic.o
+NVIC_SetPending obj/flash_nvic.o
+NVIC_Swi obj/flash_nvic.o
+PIOA_IrqHandler obj/flash_pio_it.o
+ obj/flash_board_cstartup_gnu.o
+PIOB_IrqHandler obj/flash_pio_it.o
+ obj/flash_board_cstartup_gnu.o
+PIOC_IrqHandler obj/flash_pio_it.o
+ obj/flash_board_cstartup_gnu.o
+PIO_Clear obj/flash_pio.o
+ obj/flash_led.o
+PIO_Configure obj/flash_pio.o
+ obj/flash_main.o
+ obj/flash_MEDSdcard.o
+ obj/flash_board_memories.o
+ obj/flash_led.o
+PIO_ConfigureIt obj/flash_pio_it.o
+ obj/flash_main.o
+PIO_DisableIt obj/flash_pio_it.o
+PIO_EnableIt obj/flash_pio_it.o
+ obj/flash_main.o
+PIO_Get obj/flash_pio.o
+ obj/flash_main.o
+ obj/flash_MEDSdcard.o
+PIO_GetOutputDataStatus obj/flash_pio.o
+ obj/flash_led.o
+PIO_IT_InterruptHandler obj/flash_pio_it.o
+PIO_InitializeInterrupts obj/flash_pio_it.o
+ obj/flash_main.o
+PIO_Set obj/flash_pio.o
+ obj/flash_led.o
+PMC_CPUInIdleMode obj/flash_pmc.o
+PMC_DisableAllPeripherals obj/flash_pmc.o
+PMC_DisablePeripheral obj/flash_pmc.o
+PMC_DisableProcessorClock obj/flash_pmc.o
+PMC_EnableAllPeripherals obj/flash_pmc.o
+PMC_EnablePeripheral obj/flash_pmc.o
+PMC_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+PMC_IsAllPeriphEnabled obj/flash_pmc.o
+PMC_IsPeriphEnabled obj/flash_pmc.o
+PWM_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+PendSV_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+PutChar obj/flash_stdio.o
+PutHexa obj/flash_stdio.o
+PutSignedInt obj/flash_stdio.o
+PutString obj/flash_stdio.o
+PutUnsignedInt obj/flash_stdio.o
+RSTC_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+RTC_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+RTT_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+ResetException obj/flash_board_cstartup_gnu.o
+SBC_GetCommandInformation obj/flash_SBCMethods.o
+ obj/flash_MSDDStateMachine.o
+SBC_ProcessCommand obj/flash_SBCMethods.o
+ obj/flash_MSDDStateMachine.o
+SBC_UpdateSenseData obj/flash_SBCMethods.o
+ obj/flash_MSDDStateMachine.o
+SDIO_DisplayCardInformation obj/flash_sdmmc_mci.o
+SDIO_ReadBytes obj/flash_sdmmc_mci.o
+SDIO_ReadDirect obj/flash_sdmmc_mci.o
+SDIO_WriteBytes obj/flash_sdmmc_mci.o
+SDIO_WriteDirect obj/flash_sdmmc_mci.o
+SD_BusWidth obj/flash_sdmmc_mci.o
+SD_DisplayRegisterCID obj/flash_sdmmc_mci.o
+SD_DisplayRegisterCSD obj/flash_sdmmc_mci.o
+SD_DisplayRegisterECSD obj/flash_sdmmc_mci.o
+SD_DisplayRegisterSCR obj/flash_sdmmc_mci.o
+SD_DisplaySdStatus obj/flash_sdmmc_mci.o
+SD_HighSpeedMode obj/flash_sdmmc_mci.o
+SD_Init obj/flash_sdmmc_mci.o
+ obj/flash_MEDSdcard.o
+SD_Read obj/flash_sdmmc_mci.o
+ obj/flash_MEDSdcard.o
+SD_ReadBlock obj/flash_sdmmc_mci.o
+ obj/flash_MEDSdcard.o
+SD_Stop obj/flash_sdmmc_mci.o
+SD_Write obj/flash_sdmmc_mci.o
+ obj/flash_MEDSdcard.o
+SD_WriteBlock obj/flash_sdmmc_mci.o
+ obj/flash_MEDSdcard.o
+SPI0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+SSC0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+SUPC_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+SVC_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+SYS_IrqHandler obj/flash_exceptions.o
+SetDefaultMaster obj/flash_board_lowlevel.o
+SetFlashWaitState obj/flash_board_lowlevel.o
+SysTick_Configure obj/flash_systick.o
+SysTick_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+TC0_IrqHandler obj/flash_main.o
+ obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+TC1_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+TC2_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+TC_Configure obj/flash_tc.o
+ obj/flash_main.o
+TC_FindMckDivisor obj/flash_tc.o
+ obj/flash_main.o
+TC_Start obj/flash_tc.o
+ obj/flash_main.o
+TC_Stop obj/flash_tc.o
+TRACE_DumpFrame obj/flash_trace.o
+TRACE_DumpMemory obj/flash_trace.o
+TRACE_GetHexa32 obj/flash_trace.o
+TRACE_GetInteger obj/flash_trace.o
+TRACE_GetIntegerMinMax obj/flash_trace.o
+TWI0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+TWI1_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+USART0_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+USART1_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+USART2_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+USART3_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+USBConfigurationDescriptor_GetNumInterfaces obj/flash_USBConfigurationDescriptor.o
+USBConfigurationDescriptor_GetTotalLength obj/flash_USBConfigurationDescriptor.o
+ obj/flash_USBDDriver.o
+USBConfigurationDescriptor_IsSelfPowered obj/flash_USBConfigurationDescriptor.o
+ obj/flash_USBDDriver.o
+USBConfigurationDescriptor_Parse obj/flash_USBConfigurationDescriptor.o
+ obj/flash_USBDDriver.o
+USBDCallbacks_Initialized obj/flash_USBDCallbacks_Initialized.o
+ obj/flash_USBD_UDPHS.o
+USBDCallbacks_RequestReceived obj/flash_MSDDriver.o
+ obj/flash_USBD_UDPHS.o
+USBDCallbacks_Reset obj/flash_USBDCallbacks_Reset.o
+ obj/flash_USBD_UDPHS.o
+USBDCallbacks_Resumed obj/flash_main.o
+ obj/flash_USBD_UDPHS.o
+USBDCallbacks_Suspended obj/flash_main.o
+ obj/flash_USBD_UDPHS.o
+USBDDriverCallbacks_ConfigurationChanged obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBDDriverCallbacks_InterfaceSettingChanged obj/flash_USBDDriverCb_IfSettingChanged.o
+ obj/flash_USBDDriver.o
+USBDDriver_Initialize obj/flash_USBDDriver.o
+ obj/flash_MSDDriver.o
+USBDDriver_IsRemoteWakeUpEnabled obj/flash_USBDDriver.o
+ obj/flash_MSDDriver.o
+USBDDriver_RequestHandler obj/flash_USBDDriver.o
+ obj/flash_MSDDriver.o
+USBD_ConfigureEndpoint obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_ConfigureSpeed obj/flash_USBD_UDPHS.o
+USBD_Connect obj/flash_USBD_UDPHS.o
+ obj/flash_main.o
+USBD_Disconnect obj/flash_USBD_UDPHS.o
+ obj/flash_main.o
+USBD_GetState obj/flash_USBD_UDPHS.o
+ obj/flash_main.o
+ obj/flash_MSDDriver.o
+USBD_Halt obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBD_Init obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+USBD_IrqHandler obj/flash_USBD_UDPHS.o
+ obj/flash_board_cstartup_gnu.o
+ obj/flash_USBDCallbacks_Initialized.o
+USBD_IsHalted obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBD_IsHighSpeed obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_MblReuse obj/flash_USBD_UDPHS.o
+USBD_MblWrite obj/flash_USBD_UDPHS.o
+USBD_Read obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+USBD_RemoteWakeUp obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+USBD_SetAddress obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_SetConfiguration obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_Stall obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBD_Test obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_Unhalt obj/flash_USBD_UDPHS.o
+ obj/flash_USBDDriver.o
+USBD_Write obj/flash_USBD_UDPHS.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBEndpointDescriptor_GetDirection obj/flash_USBEndpointDescriptor.o
+ obj/flash_USBD_UDPHS.o
+USBEndpointDescriptor_GetInterval obj/flash_USBEndpointDescriptor.o
+USBEndpointDescriptor_GetMaxPacketSize obj/flash_USBEndpointDescriptor.o
+ obj/flash_USBD_UDPHS.o
+USBEndpointDescriptor_GetNumber obj/flash_USBEndpointDescriptor.o
+ obj/flash_USBD_UDPHS.o
+USBEndpointDescriptor_GetType obj/flash_USBEndpointDescriptor.o
+ obj/flash_USBD_UDPHS.o
+USBFeatureRequest_GetFeatureSelector obj/flash_USBFeatureRequest.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBFeatureRequest_GetTestSelector obj/flash_USBFeatureRequest.o
+ obj/flash_USBDDriver.o
+USBGenericDescriptor_GetLength obj/flash_USBGenericDescriptor.o
+ obj/flash_USBDDriver.o
+ obj/flash_USBConfigurationDescriptor.o
+USBGenericDescriptor_GetNextDescriptor obj/flash_USBGenericDescriptor.o
+ obj/flash_USBConfigurationDescriptor.o
+USBGenericDescriptor_GetType obj/flash_USBGenericDescriptor.o
+ obj/flash_USBConfigurationDescriptor.o
+USBGenericRequest_GetDirection obj/flash_USBGenericRequest.o
+USBGenericRequest_GetEndpointNumber obj/flash_USBGenericRequest.o
+ obj/flash_USBDDriver.o
+USBGenericRequest_GetIndex obj/flash_USBGenericRequest.o
+ obj/flash_USBDDriver.o
+ obj/flash_USBInterfaceRequest.o
+ obj/flash_USBFeatureRequest.o
+USBGenericRequest_GetLength obj/flash_USBGenericRequest.o
+ obj/flash_USBDDriver.o
+USBGenericRequest_GetRecipient obj/flash_USBGenericRequest.o
+ obj/flash_USBDDriver.o
+USBGenericRequest_GetRequest obj/flash_USBGenericRequest.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+USBGenericRequest_GetType obj/flash_USBGenericRequest.o
+USBGenericRequest_GetValue obj/flash_USBGenericRequest.o
+ obj/flash_USBSetConfigurationRequest.o
+ obj/flash_USBSetAddressRequest.o
+ obj/flash_USBInterfaceRequest.o
+ obj/flash_USBGetDescriptorRequest.o
+ obj/flash_USBFeatureRequest.o
+USBGetDescriptorRequest_GetDescriptorIndex obj/flash_USBGetDescriptorRequest.o
+ obj/flash_USBDDriver.o
+USBGetDescriptorRequest_GetDescriptorType obj/flash_USBGetDescriptorRequest.o
+ obj/flash_USBDDriver.o
+USBInterfaceRequest_GetAlternateSetting obj/flash_USBInterfaceRequest.o
+ obj/flash_USBDDriver.o
+USBInterfaceRequest_GetInterface obj/flash_USBInterfaceRequest.o
+ obj/flash_USBDDriver.o
+USBSetAddressRequest_GetAddress obj/flash_USBSetAddressRequest.o
+ obj/flash_USBDDriver.o
+USBSetConfigurationRequest_GetConfiguration obj/flash_USBSetConfigurationRequest.o
+ obj/flash_USBDDriver.o
+USBState obj/flash_main.o
+UsageFault_Handler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+UsageFault_HandlerBody obj/flash_exceptions.o
+WDT_IrqHandler obj/flash_exceptions.o
+ obj/flash_board_cstartup_gnu.o
+__LDREXB obj/flash_core_cm3.o
+__LDREXH obj/flash_core_cm3.o
+__LDREXW obj/flash_core_cm3.o
+__RBIT obj/flash_core_cm3.o
+__REV obj/flash_core_cm3.o
+__REV16 obj/flash_core_cm3.o
+__REVSH obj/flash_core_cm3.o
+__STREXB obj/flash_core_cm3.o
+__STREXH obj/flash_core_cm3.o
+__STREXW obj/flash_core_cm3.o
+__get_BASEPRI obj/flash_core_cm3.o
+__get_CONTROL obj/flash_core_cm3.o
+__get_FAULTMASK obj/flash_core_cm3.o
+__get_MSP obj/flash_core_cm3.o
+__get_PRIMASK obj/flash_core_cm3.o
+__get_PSP obj/flash_core_cm3.o
+__set_BASEPRI obj/flash_core_cm3.o
+__set_CONTROL obj/flash_core_cm3.o
+__set_FAULTMASK obj/flash_core_cm3.o
+__set_MSP obj/flash_core_cm3.o
+__set_PRIMASK obj/flash_core_cm3.o
+__set_PSP obj/flash_core_cm3.o
+_efixed obj/flash_board_cstartup_gnu.o
+_erelocate obj/flash_board_cstartup_gnu.o
+_estack obj/flash_board_cstartup_gnu.o
+_ezero obj/flash_board_cstartup_gnu.o
+_global_impure_ptr /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+_impure_ptr /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-impure.o)
+ obj/flash_trace.o
+ obj/flash_stdio.o
+_sfixed obj/flash_board_cstartup_gnu.o
+_srelocate obj/flash_board_cstartup_gnu.o
+_szero obj/flash_board_cstartup_gnu.o
+absv obj/flash_math.o
+exception_table obj/flash_board_cstartup_gnu.o
+fprintf obj/flash_stdio.o
+fputc obj/flash_trace.o
+fputs obj/flash_trace.o
+ obj/flash_stdio.o
+gSdmmcAutoHsEnable obj/flash_sdmmc_mci.o
+luns obj/flash_main.o
+main obj/flash_main.o
+ obj/flash_board_cstartup_gnu.o
+medias obj/flash_main.o
+memset /usr/local/arm-cortex-toolchain/bin/../lib/gcc/arm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-memset.o)
+ obj/flash_MEDSdcard.o
+ obj/flash_board_memories.o
+min obj/flash_math.o
+msdBuffer obj/flash_main.o
+msdDriverDescriptors obj/flash_MSDDriverDescriptors.o
+ obj/flash_MSDDriver.o
+msdFullCnt obj/flash_main.o
+msdNullCnt obj/flash_main.o
+msdReadTotal obj/flash_main.o
+msdWriteTotal obj/flash_main.o
+numMedias obj/flash_Media.o
+ obj/flash_main.o
+power obj/flash_math.o
+printf obj/flash_stdio.o
+ obj/flash_main.o
+ obj/flash_exceptions.o
+ obj/flash_MEDRamDisk.o
+ obj/flash_dmad.o
+ obj/flash_dma.o
+ obj/flash_mci_hs.o
+ obj/flash_MEDSdcard.o
+ obj/flash_sdmmc_mci.o
+ obj/flash_trace.o
+ obj/flash_pmc.o
+ obj/flash_SBCMethods.o
+ obj/flash_MSDLun.o
+ obj/flash_MSDDStateMachine.o
+ obj/flash_MSDDriver.o
+ obj/flash_USBDDriver.o
+ obj/flash_USBD_UDPHS.o
+putchar obj/flash_trace.o
+puts obj/flash_stdio.o
+r obj/flash_stdio.o
+snprintf obj/flash_stdio.o
+sprintf obj/flash_stdio.o
+updateDelay obj/flash_main.o
+updateView obj/flash_main.o
+vfprintf obj/flash_stdio.o
+vprintf obj/flash_stdio.o
+vsnprintf obj/flash_stdio.o
+vsprintf obj/flash_stdio.o
diff --git a/usb-device-massstorage-project/main.c b/usb-device-massstorage-project/main.c
new file mode 100644
index 0000000..2af5346
--- /dev/null
+++ b/usb-device-massstorage-project/main.c
@@ -0,0 +1,1154 @@
+/*----------------------------------------------------------------------------
+ * ATMEL Microcontroller Software Support
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2008, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+//-----------------------------------------------------------------------------
+/// \dir "USB Device Mass Storage Project"
+///
+/// !!!Purpose
+///
+/// The USB Massstorage Project will help you to get familiar with the
+/// USB Device Port(UDP) on AT91SAM microcontrollers. Also
+/// it can help you to be familiar with the USB Framework that is used for
+/// rapid development of USB-compliant class drivers such as USB Mass
+/// Storage class (MSD).
+///
+/// You can find following information depends on your needs:
+/// - Sample usage of USB MSD driver.
+/// - USB MSD driver development based on the AT91 USB Framework.
+/// - USB enumerate sequence, the standard and class-specific descriptors and
+/// requests handling.
+/// - The initialize sequence and usage of UDP interface.
+///
+/// !See
+/// - memories: Storage Media interface for MSD
+/// - usb: USB Framework, USB MSD driver and UDP interface driver
+/// - "AT91 USB device framework"
+/// - "USBD API"
+/// - "massstorage"
+/// - "USB MSD Driver"
+///
+/// !!!Requirements
+///
+/// This package can be used with all Atmel evaluation kits that have USB interface
+///
+/// !!!Description
+///
+/// When an EK running this program connected to a host (PC for example), with
+/// USB cable, the EK appears as a USB Disk for the host. Then the host can
+/// format/read/write on the disk.
+///
+/// If there is SDRAM on the EK, the disk can be up to 10M so that read/write
+/// speed can be tested.
+///
+/// If there is no SDRAM but only internal flash, the disk is about 30K and
+/// only small file can be tested.
+///
+/// !!!Usage
+///
+/// -# Build the program and download it inside the evaluation board. Please
+/// refer to the
+/// <a href="http://www.atmel.com/dyn/resources/prod_documents/doc6224.pdf">
+/// SAM-BA User Guide</a>, the
+/// <a href="http://www.atmel.com/dyn/resources/prod_documents/doc6310.pdf">
+/// GNU-Based Software Development</a> application note or to the
+/// <a href="ftp://ftp.iar.se/WWWfiles/arm/Guides/EWARM_UserGuide.ENU.pdf">
+/// IAR EWARM User Guide</a>, depending on your chosen solution.
+/// -# On the computer, open and configure a terminal application
+/// (e.g. HyperTerminal on Microsoft Windows) with these settings:
+/// - 115200 bauds
+/// - 8 bits of data
+/// - No parity
+/// - 1 stop bit
+/// - No flow control
+/// -# Start the application.
+/// -# In the terminal window, the following text should appear:
+/// \code
+/// -- USB Device Mass Storage Project xxx --
+/// -- AT91xxxxxx-xx
+/// -- Compiled: xxx xx xxxx xx:xx:xx --
+/// \endcode
+/// -# When connecting USB cable to windows, the LED blinks, and the host
+/// reports a new USB %device attachment and Disk installation.
+/// . Then new "USB Mass Storage Device" and
+/// "ATMEL Mass Storage MSD USB Device" and "Generic volume" appear in
+/// hardware %device list.
+/// -# You can find the new disk on host, and to create/write file to it.
+///
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+/// \unit
+///
+/// !Purpose
+///
+/// This file contains all the specific code for the
+/// usb-device-massstorage-project
+///
+/// !Contents
+///
+/// The code can be roughly broken down as follows:
+/// - Configuration functions
+/// - VBus_Configure
+/// - ConfigurePit
+/// - ConfigureWakeUp
+/// - PIO & Timer configurations in start of main
+/// - Interrupt handlers
+/// - ISR_Vbus
+/// - ISR_Pit
+/// - WakeUpHandler
+/// - ISR_Media
+/// - The main function, which implements the program behavior
+///
+/// Please refer to the list of functions in the #Overview# tab of this unit
+/// for more detailed information.
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// Headers
+//------------------------------------------------------------------------------
+
+#include <board.h>
+#include <board_lowlevel.h>
+#include <board_memories.h>
+#include <pio/pio.h>
+#include <pio/pio_it.h>
+#ifdef AT91C_BASE_PITC
+#include <pit/pit.h>
+#endif
+#include <irq/irq.h>
+#include <tc/tc.h>
+#include <dbgu/dbgu.h>
+#include <utility/trace.h>
+#include <utility/assert.h>
+#include <utility/led.h>
+#include <usb/common/core/USBConfigurationDescriptor.h>
+#include <usb/device/core/USBD.h>
+#include <usb/device/massstorage/MSDDriver.h>
+#include <usb/device/massstorage/MSDLun.h>
+#include <usb/device/core/USBDCallbacks.h>
+#include <memories/Media.h>
+#if defined(AT91C_EBI_SDRAM)
+#include <memories/MEDSdram.h>
+#endif
+#if defined(AT91C_BASE_DDR2C)
+#include <memories/MEDDdram.h>
+#endif
+#if defined(BOARD_SD_MCI_BASE)
+#include <memories/MEDSdcard.h>
+#endif
+#if defined(CHIP_FLASH_EFC) || defined(CHIP_FLASH_EEFC) && !defined(cortexm3)
+#include <memories/MEDFlash.h>
+#endif
+#if defined(at91sam3uek)
+#include <memories/MEDRamDisk.h>
+#endif
+#if 0
+#include <memories/MEDNandFlash.h>
+#include <memories/nandflash/RawNandFlash.h>
+#include <memories/nandflash/TranslatedNandFlash.h>
+#endif
+
+#include <pmc/pmc.h>
+
+#include <string.h>
+
+//------------------------------------------------------------------------------
+// Internal definitions
+//------------------------------------------------------------------------------
+
+/// Maximum number of LUNs which can be defined.
+#define MAX_LUNS 3
+
+/// Media index for different disks
+#define DRV_RAMDISK 0 /// RAM disk
+#define DRV_IFLASH 0 /// Internal flash, if no RAM disk
+#define DRV_SDMMC 1 /// SD card, if there is
+#define DRV_NAND 2 /// Nand flash, if there is
+
+/// Delay for pushbutton debouncing (ms)
+#define DEBOUNCE_TIME 10
+
+/// PIT period value (seconds)
+#define PIT_PERIOD 1000
+
+/// Delay for display view update (*250ms)
+#define UPDATE_DELAY 4
+
+/// Delay for waiting DBGU input (*250ms)
+#define INPUT_DELAY 20
+
+#if defined(at91sam3uek)
+/// No reserved space for code in PSRAM
+#define CODE_SIZE (0)
+/// Size of the RAM disk in bytes (512K).
+#define RAMDISK_SIZE (512*1024)
+#else
+/// Maximum code size 100K reserved for running in SDRAM and FLASH
+#define CODE_SIZE (100*1024)
+/// Size of the RAM disk in bytes (10M).
+#define RAMDISK_SIZE (10*1024*1024)
+#endif
+
+/// Size of the reserved Nand Flash (4M)
+#define NF_RESERVE_SIZE (4*1024*1024)
+
+/// Size of the managed Nand Flash (128M)
+#define NF_MANAGED_SIZE (128*1024*1024)
+
+/// Size of one block in bytes.
+#define BLOCK_SIZE 512
+
+/// Size of the MSD IO buffer in bytes (2K, more the better).
+#define MSD_BUFFER_SIZE (12*BLOCK_SIZE)
+
+/// Use for power management
+#define STATE_IDLE 0
+/// The USB device is in suspend state
+#define STATE_SUSPEND 4
+/// The USB device is in resume state
+#define STATE_RESUME 5
+
+/// Retry 3 times when SD is inserted
+#define SD_INIT_RETRY 3
+
+//------------------------------------------------------------------------------
+// Global variables
+//------------------------------------------------------------------------------
+
+/// Available medias.
+Media medias[MAX_LUNS];
+
+//------------------------------------------------------------------------------
+// Internal variables
+//------------------------------------------------------------------------------
+
+/// Device LUNs.
+MSDLun luns[MAX_LUNS];
+
+/// LUN read/write buffer.
+unsigned char msdBuffer[MSD_BUFFER_SIZE];
+
+/// Total data read/write by MSD
+unsigned int msdReadTotal = 0;
+unsigned int msdWriteTotal = 0;
+unsigned short msdFullCnt = 0;
+unsigned short msdNullCnt = 0;
+
+/// Update delay counter, tick is 250ms
+unsigned int updateDelay = UPDATE_DELAY;
+
+/// Flag to update Display View
+unsigned char updateView = 0;
+
+/// State of USB, for suspend and resume
+unsigned char USBState = STATE_IDLE;
+
+#if 0//#ifdef PINS_NANDFLASH
+/// Pins used to access to nandflash.
+static const Pin pPinsNf[] = {PINS_NANDFLASH};
+/// Nandflash device structure.
+static struct TranslatedNandFlash translatedNf;
+/// Address for transferring command bytes to the nandflash.
+static unsigned int cmdBytesAddr = BOARD_NF_COMMAND_ADDR;
+/// Address for transferring address bytes to the nandflash.
+static unsigned int addrBytesAddr = BOARD_NF_ADDRESS_ADDR;
+/// Address for transferring data bytes to the nandflash.
+static unsigned int dataBytesAddr = BOARD_NF_DATA_ADDR;
+/// Nandflash chip enable pin.
+static const Pin nfCePin = BOARD_NF_CE_PIN;
+/// Nandflash ready/busy pin.
+static const Pin nfRbPin = BOARD_NF_RB_PIN;
+#endif
+
+//------------------------------------------------------------------------------
+// Remote wake-up support (optional)
+//------------------------------------------------------------------------------
+#if (BOARD_USB_BMATTRIBUTES == USBConfigurationDescriptor_BUSPOWERED_RWAKEUP) \
+ || (BOARD_USB_BMATTRIBUTES == USBConfigurationDescriptor_SELFPOWERED_RWAKEUP)
+
+#define WAKEUP_CONFIGURE() ConfigureWakeUp()
+
+/// Button for Wake-UP the USB device.
+static const Pin pinWakeUp = PIN_PUSHBUTTON_1;
+
+//------------------------------------------------------------------------------
+/// Interrupt service routine for the PIT. Debounces the wake-up pin input.
+//------------------------------------------------------------------------------
+#if defined (AT91C_BASE_PITC)
+static void ISR_Pit(void)
+{
+ static unsigned long debounceCounter = DEBOUNCE_TIME;
+ unsigned long pisr = 0;
+
+ // Read the PISR
+ pisr = PIT_GetStatus() & AT91C_PITC_PITS;
+
+ if (pisr != 0) {
+
+ // Read the PIVR. It acknowledges the IT
+ PIT_GetPIVR();
+ }
+
+ // Button released
+ if (PIO_Get(&pinWakeUp)) {
+
+ debounceCounter = DEBOUNCE_TIME;
+ }
+ // Button still pressed
+ else {
+
+ debounceCounter--;
+ }
+
+ // End of debounce time
+ if (debounceCounter == 0) {
+
+ debounceCounter = DEBOUNCE_TIME;
+ PIT_DisableIT();
+ AT91C_BASE_PITC->PITC_PIMR &= ~AT91C_PITC_PITEN;
+ MSDDriver_RemoteWakeUp();
+ }
+}
+
+//------------------------------------------------------------------------------
+/// Configures the PIT to generate 1ms ticks.
+//------------------------------------------------------------------------------
+static void ConfigurePit(void)
+{
+ // Initialize and enable the PIT
+ PIT_Init(PIT_PERIOD, BOARD_MCK / 1000000);
+
+ // Disable the interrupt on the interrupt controller
+ IRQ_DisableIT(AT91C_ID_SYS);
+
+ // Configure the AIC for PIT interrupts
+ IRQ_ConfigureIT(AT91C_ID_SYS, 0, ISR_Pit);
+
+ // Enable the interrupt on the interrupt controller
+ IRQ_EnableIT(AT91C_ID_SYS);
+
+ // Enable the interrupt on the pit
+ PIT_EnableIT();
+
+ // Enable the pit
+ PIT_Enable();
+}
+#endif // AT91C_BASE_PITC
+
+//------------------------------------------------------------------------------
+/// Interrupt service routine for the remote wake-up pin. Starts the debouncing
+/// sequence.
+//------------------------------------------------------------------------------
+static void WakeUpHandler(const Pin *pin)
+{
+ TRACE_DEBUG("Wake-up handler\n\r");
+
+ // Check current level on the remote wake-up pin
+ if (!PIO_Get(&pinWakeUp)) {
+#ifdef AT91C_BASE_PITC
+ ConfigurePit();
+#endif // AT91C_BASE_PITC
+ }
+}
+
+//------------------------------------------------------------------------------
+/// Configures the wake-up pin to generate interrupts.
+//------------------------------------------------------------------------------
+static void ConfigureWakeUp(void)
+{
+ TRACE_INFO("Wake-up configuration\n\r");
+
+ // Configure PIO
+ PIO_Configure(&pinWakeUp, 1);
+ PIO_ConfigureIt(&pinWakeUp, WakeUpHandler);
+ PIO_EnableIt(&pinWakeUp);
+}
+
+#else
+ #define WAKEUP_CONFIGURE()
+#endif
+
+//------------------------------------------------------------------------------
+// VBus monitoring (optional)
+//------------------------------------------------------------------------------
+#if defined(PIN_USB_VBUS)
+
+#define VBUS_CONFIGURE() VBus_Configure()
+
+/// VBus pin instance.
+static const Pin pinVbus = PIN_USB_VBUS;
+
+//------------------------------------------------------------------------------
+/// Handles interrupts coming from PIO controllers.
+//------------------------------------------------------------------------------
+void ISR_Vbus(const Pin *pPin)
+{
+ // Check current level on VBus
+ if (PIO_Get(&pinVbus)) {
+
+ TRACE_INFO("VBUS conn\n\r");
+ USBD_Connect();
+ }
+ else {
+
+ TRACE_INFO("VBUS discon\n\r");
+ USBD_Disconnect();
+ }
+}
+
+//------------------------------------------------------------------------------
+/// Configures the VBus pin to trigger an interrupt when the level on that pin
+/// changes.
+//------------------------------------------------------------------------------
+static void VBus_Configure( void )
+{
+ TRACE_INFO("VBus configuration\n\r");
+
+ // Configure PIO
+ PIO_Configure(&pinVbus, 1);
+ PIO_ConfigureIt(&pinVbus, ISR_Vbus);
+ PIO_EnableIt(&pinVbus);
+
+ // Check current level on VBus
+ if (PIO_Get(&pinVbus)) {
+
+ // if VBUS present, force the connect
+ TRACE_INFO("conn\n\r");
+ USBD_Connect();
+ }
+ else {
+ USBD_Disconnect();
+ }
+}
+
+#else
+ #define VBUS_CONFIGURE() USBD_Connect()
+#endif //#if defined(PIN_USB_VBUS)
+
+
+//------------------------------------------------------------------------------
+// Callbacks (re)-implementation
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+/// Invoked when the USB device leaves the Suspended state. By default,
+/// configures the LEDs.
+//------------------------------------------------------------------------------
+void USBDCallbacks_Resumed(void)
+{
+ // Initialize LEDs
+ LED_Configure(USBD_LEDPOWER);
+ LED_Set(USBD_LEDPOWER);
+ LED_Configure(USBD_LEDUSB);
+ LED_Clear(USBD_LEDUSB);
+ USBState = STATE_RESUME;
+}
+
+//------------------------------------------------------------------------------
+/// Invoked when the USB device gets suspended. By default, turns off all LEDs.
+//------------------------------------------------------------------------------
+void USBDCallbacks_Suspended(void)
+{
+ // Turn off LEDs
+ LED_Clear(USBD_LEDPOWER);
+ LED_Clear(USBD_LEDUSB);
+ USBState = STATE_SUSPEND;
+}
+
+//------------------------------------------------------------------------------
+/// Invoked when the MSD finish a READ/WRITE.
+/// \param flowDirection 1 - device to host (READ10)
+/// 0 - host to device (WRITE10)
+/// \param dataLength Length of data transferred in bytes.
+/// \param fifoNullCount Times that FIFO is NULL to wait
+/// \param fifoFullCount Times that FIFO is filled to wait
+//------------------------------------------------------------------------------
+void MSDCallbacks_Data(unsigned char flowDirection,
+ unsigned int dataLength,
+ unsigned int fifoNullCount,
+ unsigned int fifoFullCount)
+{
+ if (flowDirection) {
+
+ msdReadTotal += dataLength;
+ }
+ else {
+
+ msdWriteTotal += dataLength;
+ }
+
+ msdFullCnt += fifoFullCount;
+ msdNullCnt += fifoNullCount;
+}
+
+//------------------------------------------------------------------------------
+// Internal functions
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+/// Interrupt handler for timer.
+//------------------------------------------------------------------------------
+void TC0_IrqHandler(void)
+{
+ volatile unsigned int dummy;
+ // Clear status bit to acknowledge interrupt
+ dummy = AT91C_BASE_TC0->TC_SR;
+
+ if (-- updateDelay == 0) {
+
+ updateDelay = UPDATE_DELAY;
+ updateView = 1;
+ }
+}
+
+//------------------------------------------------------------------------------
+/// Configure Timer Counter 0 to generate an interrupt every 250ms.
+//------------------------------------------------------------------------------
+void ConfigureTc0(void)
+{
+ unsigned int div;
+ unsigned int tcclks;
+
+ // Enable peripheral clock
+ AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0;
+
+ // Configure TC for a 4Hz frequency and trigger on RC compare
+ TC_FindMckDivisor(4, BOARD_MCK, &div, &tcclks);
+ TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG);
+ AT91C_BASE_TC0->TC_RC = (BOARD_MCK / div) / 4; // timerFreq / desiredFreq
+
+ // Configure and enable interrupt on RC compare
+ IRQ_ConfigureIT(AT91C_ID_TC0, 3, TC0_IrqHandler);
+ AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;
+ IRQ_EnableIT(AT91C_ID_TC0);
+
+ TC_Start(AT91C_BASE_TC0);
+}
+
+//------------------------------------------------------------------------------
+/// Interrupt handler for all media types.
+//------------------------------------------------------------------------------
+void ISR_Media(void)
+{
+ MED_HandleAll(medias, numMedias);
+}
+
+#if defined(BOARD_SD_MCI_BASE)
+//------------------------------------------------------------------------------
+/// SD card connection/disconnection handler, to initialize and link SD Media
+/// to corresponding LUN or unlink it.
+/// \param inserted SD card is inserted/ejected.
+//------------------------------------------------------------------------------
+static unsigned char SDConnectionUpdate(unsigned char inserted)
+{
+ unsigned char rc;
+ if (inserted) {
+ #if 1
+ // Faster, non-blocked SD access function
+ rc = MEDSdusb_Initialize(&(medias[DRV_SDMMC]), 0);
+ #else
+ // Blocked SD access function
+ rc = MEDSdcard_Initialize(&(medias[DRV_SDMMC]), 0);
+ #endif
+ if(rc) {
+ LUN_Init(&(luns[DRV_SDMMC]), &(medias[DRV_SDMMC]),
+ msdBuffer, MSD_BUFFER_SIZE,
+ 0, 0, 0, 0,
+ MSDCallbacks_Data);
+ return 1;
+ }
+ }
+ else {
+ LUN_Eject(&luns[DRV_SDMMC]);
+ }
+ return 0;
+}
+#endif
+
+#if 0//defined(PINS_NANDFLASH)
+#define NandFlash_Configure(nfBusWidth) BOARD_ConfigureNandFlash(nfBusWidth)
+
+//------------------------------------------------------------------------------
+/// Initialize Nand Flash for LUN
+//------------------------------------------------------------------------------
+static void NandFlashInitialize(void)
+{
+ unsigned char nfBusWidth = 16, nfRc;
+ unsigned short nfBaseBlock = 0;
+ struct RawNandFlash *pRaw = (struct RawNandFlash*)&translatedNf;
+ struct NandFlashModel *pModel = (struct NandFlashModel*)&translatedNf;
+ unsigned int nfMamagedSize;
+
+ // Configure SMC for NandFlash
+ NandFlash_Configure(nfBusWidth);
+ // Configure PIO for Nand Flash
+ PIO_Configure(pPinsNf, PIO_LISTSIZE(pPinsNf));
+
+ // Nand Flash Initialize (ALL flash mapped)
+ nfRc = RawNandFlash_Initialize(pRaw,
+ 0,
+ cmdBytesAddr,
+ addrBytesAddr,
+ dataBytesAddr,
+ nfCePin,
+ nfRbPin);
+ if (nfRc) {
+ printf("Nand not found\n\r");
+ return;
+ }
+ else {
+ printf("NF\tNb Blocks %d\n\r",
+ NandFlashModel_GetDeviceSizeInBlocks(pModel));
+ printf("\tBlock Size %dK\n\r",
+ NandFlashModel_GetBlockSizeInBytes(pModel)/1024);
+ printf("\tPage Size %d\n\r",
+ NandFlashModel_GetPageDataSize(pModel));
+ nfBaseBlock =
+ NF_RESERVE_SIZE / NandFlashModel_GetBlockSizeInBytes(pModel);
+ }
+ printf("NF disk will use area from %dM(B%d)\n\r",
+ NF_RESERVE_SIZE/1024/1024, nfBaseBlock);
+ printf("!! Erase the NF Disk? (y/n):");
+ updateDelay = INPUT_DELAY;
+ updateView = 0;
+ while(1) {
+ if(DBGU_IsRxReady()) {
+ char key = DBGU_GetChar();
+ DBGU_PutChar(key);
+ if (key == 'y') {
+ if (nfRc == 0) {
+ unsigned int block;
+ printf(" Erase from %d ... ", nfBaseBlock);
+ for (block = nfBaseBlock;
+ block < NandFlashModel_GetDeviceSizeInBlocks(pModel);
+ block ++) {
+ RawNandFlash_EraseBlock(pRaw, block);
+ }
+ printf("OK");
+ }
+ }
+ printf("\n\r");
+ break;
+ }
+ if (updateView) {
+ printf("No\n\r");
+ break;
+ }
+ }
+ nfMamagedSize = ((NandFlashModel_GetDeviceSizeInMBytes(pModel) - NF_RESERVE_SIZE/1024/1024) > NF_MANAGED_SIZE/1024/1024) ? \
+ NF_MANAGED_SIZE/1024/1024 : (NandFlashModel_GetDeviceSizeInMBytes(pModel) - NF_RESERVE_SIZE/1024/1024);
+ if (TranslatedNandFlash_Initialize(&translatedNf,
+ 0,
+ cmdBytesAddr,
+ addrBytesAddr,
+ dataBytesAddr,
+ nfCePin,
+ nfRbPin,
+ nfBaseBlock, nfMamagedSize * 1024 * 1024/NandFlashModel_GetBlockSizeInBytes(pModel))) {
+ printf("Nand init error\n\r");
+ return;
+ }
+ // Check the data bus width of the NandFlash
+ nfBusWidth =
+ NandFlashModel_GetDataBusWidth(pModel);
+ NandFlash_Configure(nfBusWidth);
+
+ // Media initialize
+ MEDNandFlash_Initialize(&medias[DRV_NAND], &translatedNf);
+
+ // Initialize LUN
+ LUN_Init(&(luns[DRV_NAND]), &(medias[DRV_NAND]),
+ msdBuffer, MSD_BUFFER_SIZE,
+ 0, 0, 0, 0,
+ MSDCallbacks_Data);
+
+ numMedias ++;
+}
+#endif
+
+#if !defined(cortexm3)
+
+//------------------------------------------------------------------------------
+/// Initialize memory for LUN
+//------------------------------------------------------------------------------
+static void MemoryInitialization(void)
+{
+ unsigned int i;
+ for (i = 0; i < MAX_LUNS; i ++)
+ LUN_Init(&luns[i], 0, 0, 0, 0, 0, 0, 0, 0);
+
+ // Memory initialization
+#if defined(AT91C_BASE_DDR2C)
+ TRACE_INFO("MEM: DDR2\n\r");
+ BOARD_ConfigureDdram(0, BOARD_DDRAM_BUSWIDTH); // Micron, 16 bit data bus size
+
+ MEDDdram_Initialize(&(medias[DRV_RAMDISK]),
+ BLOCK_SIZE,
+ (unsigned int)(AT91C_DDR2 + CODE_SIZE) / BLOCK_SIZE,
+ RAMDISK_SIZE / BLOCK_SIZE);
+ LUN_Init(&(luns[DRV_RAMDISK]), &(medias[DRV_RAMDISK]),
+ msdBuffer, MSD_BUFFER_SIZE,
+ 0, 0, 0, 0,
+ MSDCallbacks_Data);
+ numMedias = 1;
+
+#elif defined(AT91C_EBI_SDRAM)
+
+ TRACE_INFO("MEM: SDRAM\n\r");
+#if !defined(sdram)
+ BOARD_ConfigureSdram(BOARD_SDRAM_BUSWIDTH);
+#endif
+
+ MEDSdram_Initialize(&(medias[DRV_RAMDISK]),
+ BLOCK_SIZE,
+ (unsigned int)(AT91C_EBI_SDRAM + CODE_SIZE)/BLOCK_SIZE,
+ RAMDISK_SIZE / BLOCK_SIZE);
+ LUN_Init(&(luns[DRV_RAMDISK]),
+ &(medias[DRV_RAMDISK]),
+ msdBuffer, MSD_BUFFER_SIZE,
+ 0, 0, 0, 0,
+ MSDCallbacks_Data);
+ numMedias = 1;
+
+#endif // AT91C_EBI_SDRAM
+
+ // SD Card
+#if defined(BOARD_SD_MCI_BASE)
+ TRACE_DEBUG("MEM: SD Card\n\r");
+ SDConnectionUpdate(1);
+ numMedias = 2;
+#endif
+
+ // Flash
+#if defined(CHIP_FLASH_EFC) || defined(CHIP_FLASH_EEFC)
+ TRACE_INFO("MEM: Flash\n\r");
+ if (numMedias == 0) {
+
+ FLA_Initialize(&(medias[DRV_IFLASH]), AT91C_BASE_EFC);
+ LUN_Init(&(luns[DRV_IFLASH]),
+ &(medias[DRV_IFLASH]),
+ msdBuffer, MSD_BUFFER_SIZE,
+ CODE_SIZE,
+ AT91C_IFLASH_SIZE - CODE_SIZE,
+ BLOCK_SIZE,
+ 0,
+ MSDCallbacks_Data);
+ numMedias = 1;
+ }
+#endif // #if defined(CHIP_FLASH_EFC) || defined(CHIP_FLASH_EEFC)
+}
+#else
+static void MemoryInitialization(void)
+{
+ unsigned int i;
+ for (i = 0; i < MAX_LUNS; i ++)
+ LUN_Init(&luns[i], 0, 0, 0, 0, 0, 0, 0, 0);
+
+ #if defined(AT91C_EBI_PSRAM)
+ // Currently working on Sam3u-PSRAM
+ BOARD_ConfigurePsram();
+
+ // Initialize 10M for ram disk & code.
+ if (1 != MEDRamDisk_Initialize(&(medias[DRV_RAMDISK]),
+ BLOCK_SIZE,
+ (AT91C_EBI_PSRAM + CODE_SIZE) / BLOCK_SIZE,
+ RAMDISK_SIZE / BLOCK_SIZE)) {
+ TRACE_ERROR("FAIL!\n\r");
+ return;
+ }
+ // 512k Disk
+ LUN_Init(&(luns[DRV_RAMDISK]), &(medias[DRV_RAMDISK]), msdBuffer,
+ MSD_BUFFER_SIZE, 0, 0, 0, 0 , MSDCallbacks_Data);
+ #endif
+
+ // SD Disk
+ // SDConnectionUpdate(1);
+ numMedias = 2;
+
+ // Nand flash
+ //NandFlashInitialize();
+}
+#endif
+
+#if defined (CP15_PRESENT)
+//------------------------------------------------------------------------------
+/// Put the CPU in 32kHz, disable PLL, main oscillator
+/// Put voltage regulator in standby mode
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+ PMC_CPUInIdleMode();
+}
+//------------------------------------------------------------------------------
+/// Put voltage regulator in normal mode
+/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+}
+
+#elif defined(at91sam7a3)
+//------------------------------------------------------------------------------
+/// Put the CPU in 32kHz, disable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+ // MCK=48MHz to MCK=32kHz
+ // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=SLCK : then change prescaler
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // disable PLL
+ AT91C_BASE_PMC->PMC_PLLR = 0;
+ // Disable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = 0;
+
+ PMC_DisableProcessorClock();
+}
+//------------------------------------------------------------------------------
+/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+ // MCK=32kHz to MCK=48MHz
+ // enable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = (( (AT91C_CKGR_OSCOUNT & (0x06 <<8)) | AT91C_CKGR_MOSCEN ));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) );
+
+ // enable PLL@96MHz
+ AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x0E) |
+ (AT91C_CKGR_PLLCOUNT & (28<<8)) |
+ (AT91C_CKGR_MUL & (0x48<<16)));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) );
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ;
+ // MCK=SLCK/2 : change prescaler first
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=PLLCK/2 : then change source
+ AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+}
+
+#elif defined (at91sam7se)
+//------------------------------------------------------------------------------
+/// Put the CPU in 32kHz, disable PLL, main oscillator
+/// Put voltage regulator in standby mode
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+ // MCK=48MHz to MCK=32kHz
+ // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=SLCK : then change prescaler
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // disable PLL
+ AT91C_BASE_PMC->PMC_PLLR = 0;
+ // Disable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = 0;
+
+ // Voltage regulator in standby mode : Enable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR |= AT91C_VREG_PSTDBY;
+
+ PMC_DisableProcessorClock();
+}
+//------------------------------------------------------------------------------
+/// Put voltage regulator in normal mode
+/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+ // Voltage regulator in normal mode : Disable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR &= ~AT91C_VREG_PSTDBY;
+
+ // MCK=32kHz to MCK=48MHz
+ // enable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = (( (AT91C_CKGR_OSCOUNT & (0x06 <<8)) | AT91C_CKGR_MOSCEN ));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) );
+
+ // enable PLL@96MHz
+ AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x0E) |
+ (AT91C_CKGR_PLLCOUNT & (28<<8)) |
+ (AT91C_CKGR_MUL & (0x48<<16)));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) );
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ;
+ // MCK=SLCK/2 : change prescaler first
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=PLLCK/2 : then change source
+ AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+}
+
+#elif defined (at91sam7s)
+//------------------------------------------------------------------------------
+/// Put the CPU in 32kHz, disable PLL, main oscillator
+/// Put voltage regulator in standby mode
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+ // MCK=48MHz to MCK=32kHz
+ // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=SLCK : then change prescaler
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // disable PLL
+ AT91C_BASE_PMC->PMC_PLLR = 0;
+ // Disable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = 0;
+
+ // Voltage regulator in standby mode : Enable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR |= AT91C_VREG_PSTDBY;
+
+ PMC_DisableProcessorClock();
+}
+
+//------------------------------------------------------------------------------
+/// Put voltage regulator in normal mode
+/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+ // Voltage regulator in normal mode : Disable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR &= ~AT91C_VREG_PSTDBY;
+
+ // MCK=32kHz to MCK=48MHz
+ // enable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = (( (AT91C_CKGR_OSCOUNT & (0x06 <<8)) | AT91C_CKGR_MOSCEN ));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) );
+
+ // enable PLL@96MHz
+ AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x0E) |
+ (AT91C_CKGR_PLLCOUNT & (28<<8)) |
+ (AT91C_CKGR_MUL & (0x48<<16)));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) );
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ;
+ // MCK=SLCK/2 : change prescaler first
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=PLLCK/2 : then change source
+ AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+
+}
+
+#elif defined (at91sam7x) || defined (at91sam7xc)
+//------------------------------------------------------------------------------
+/// Put the CPU in 32kHz, disable PLL, main oscillator
+/// Put voltage regulator in standby mode
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+ // MCK=48MHz to MCK=32kHz
+ // MCK = SLCK/2 : change source first from 48 000 000 to 18. / 2 = 9M
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=SLCK : then change prescaler
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // disable PLL
+ AT91C_BASE_PMC->PMC_PLLR = 0;
+ // Disable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = 0;
+
+ // Voltage regulator in standby mode : Enable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR |= AT91C_VREG_PSTDBY;
+
+ PMC_DisableProcessorClock();
+}
+
+//------------------------------------------------------------------------------
+/// Put voltage regulator in normal mode
+/// Return the CPU to normal speed 48MHz, enable PLL, main oscillator
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+ // Voltage regulator in normal mode : Disable VREG Low Power Mode
+ AT91C_BASE_VREG->VREG_MR &= ~AT91C_VREG_PSTDBY;
+
+ // MCK=32kHz to MCK=48MHz
+ // enable Main Oscillator
+ AT91C_BASE_PMC->PMC_MOR = (( (AT91C_CKGR_OSCOUNT & (0x06 <<8)) | AT91C_CKGR_MOSCEN ));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS ) );
+
+ // enable PLL@96MHz
+ AT91C_BASE_PMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x0E) |
+ (AT91C_CKGR_PLLCOUNT & (28<<8)) |
+ (AT91C_CKGR_MUL & (0x48<<16)));
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK ) );
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ;
+ // MCK=SLCK/2 : change prescaler first
+ AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+ // MCK=PLLCK/2 : then change source
+ AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
+ while( !( AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY ) );
+}
+#else
+//------------------------------------------------------------------------------
+/// Put the CPU in low power mode (for customer)
+//------------------------------------------------------------------------------
+static void LowPowerMode(void)
+{
+}
+
+//------------------------------------------------------------------------------
+/// Return the CPU to normal speed (for customer)
+//------------------------------------------------------------------------------
+static void NormalPowerMode(void)
+{
+}
+#endif
+
+//------------------------------------------------------------------------------
+/// Initializes the Mass Storage driver and runs it.
+//------------------------------------------------------------------------------
+int main(void)
+{
+ unsigned char sdConnected = 0;
+ unsigned char sdInitErrorCnt = 0, sdInitExecDelay = 0;
+
+ TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK);
+ printf("-- USB Device Mass Storage Project %s --\n\r", SOFTPACK_VERSION);
+ printf("-- %s\n\r", BOARD_NAME);
+ printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);
+
+ // If they are present, configure Vbus & Wake-up pins
+ PIO_InitializeInterrupts(0);
+
+ // If there is on board power, switch it off
+ #ifdef PIN_USB_POWER_ENB
+ { const Pin pinUsbPwr = PIN_USB_POWER_ENB;
+ PIO_Configure(&pinUsbPwr, 1);
+ }
+ #endif
+
+ WAKEUP_CONFIGURE();
+
+ // Start TC for timing & status update
+ ConfigureTc0();
+
+ MemoryInitialization();
+
+ ASSERT(numMedias > 0, "Error: No media defined.\n\r");
+ TRACE_INFO("%u medias defined\n\r", numMedias);
+
+ // BOT driver initialization
+ MSDDriver_Initialize(luns, numMedias);
+
+ // connect if needed
+ VBUS_CONFIGURE();
+
+ while (USBD_GetState() < USBD_STATE_CONFIGURED);
+
+
+ // Infinite loop
+ updateDelay = UPDATE_DELAY;
+ updateView = 0;
+ while (1) {
+
+ #if defined(BOARD_SD_MCI_BASE)
+ // SD Card disconnection
+ if (MEDSdcard_Detect(&medias[DRV_SDMMC], 0)) {
+ if (sdConnected == 0) {
+ // Try several times
+ if (sdInitExecDelay == 0) {
+ sdInitExecDelay = sdInitErrorCnt + 1;
+ }
+ }
+ }
+ else if (sdConnected) {
+ sdConnected = 0;
+ sdInitErrorCnt = 0;
+ SDConnectionUpdate(0);
+ printf("\n\r** SD removed!\n\r");
+ }
+ #endif
+
+ // Mass storage state machine
+ if (USBD_GetState() < USBD_STATE_CONFIGURED){}
+ else MSDDriver_StateMachine();
+
+ if( USBState == STATE_SUSPEND ) {
+ TRACE_DEBUG("suspend !\n\r");
+ LowPowerMode();
+ USBState = STATE_IDLE;
+ }
+ if( USBState == STATE_RESUME ) {
+ // Return in normal MODE
+ TRACE_DEBUG("resume !\n\r");
+ NormalPowerMode();
+ USBState = STATE_IDLE;
+ }
+
+ // Update status view
+ if (updateView) {
+
+ updateView = 0;
+ #if 0
+ if (msdWriteTotal < 50 * 1000)
+ MED_Flush(&medias[DRV_NAND]);
+ #endif
+
+ printf("Read %5dK, Write %5dK, IO %5dK; Null %4d, Full %4d\r",
+ msdReadTotal/(UPDATE_DELAY*250),
+ msdWriteTotal/(UPDATE_DELAY*250),
+ (msdReadTotal+msdWriteTotal)/(UPDATE_DELAY*250),
+ msdNullCnt, msdFullCnt);
+
+ msdReadTotal = 0;
+ msdWriteTotal = 0;
+ msdNullCnt = 0;
+ msdFullCnt = 0;
+
+ #if defined(BOARD_SD_MCI_BASE)
+ if (sdInitExecDelay) {
+ if (0 == --sdInitExecDelay) {
+ sdConnected = SDConnectionUpdate(1);
+ if (!sdConnected) {
+ if (SD_INIT_RETRY <= sdInitErrorCnt++) {
+ printf("\n\r** SD inserted but init fail!\n\r");
+ sdConnected = 1;
+ }
+ }
+ }
+ }
+ #endif
+ }
+ }
+}
+
diff --git a/usb-device-massstorage-project/obj/.empty_dir b/usb-device-massstorage-project/obj/.empty_dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/usb-device-massstorage-project/obj/.empty_dir
personal git repositories of Harald Welte. Your mileage may vary