From 40e04e3772726829d66c12e69f24b03920d79c67 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 25 Jan 2017 22:24:18 +0100 Subject: o Moving tinyprintf and stm libraries under thirdparty. --- .../Composite_Example/EWARM/stm32f10x_flash.icf | 31 + .../Composite_Example/EWARM/stm32f30x_flash.icf | 31 + .../Composite_Example/EWARM/stm32l1xx_flash.icf | 31 + .../MDK-ARM/Composite_Example.uvopt | 2649 ++++ .../MDK-ARM/Composite_Example.uvproj | 13585 +++++++++++++++++++ .../Composite_Example/RIDE/Composite_Example.rprj | 4 + .../TASKING/STM3210B-EVAL/.project | 247 + .../TASKING/STM3210B-EVAL/TASKING/STM32F10x_md.lsl | 148 + .../TASKING/STM3210E-EVAL/.cproject | 112 + .../TASKING/STM3210E-EVAL/.launch | 44 + .../TASKING/STM3210E-EVAL/.project | 203 + .../TASKING/STM3210E-EVAL/STM3210E-EVAL.launch | 41 + .../TASKING/STM3210E-EVAL/TASKING/STM32F10x_hd.lsl | 165 + .../TASKING/STM3210E-EVAL_XL/.cproject | 112 + .../TASKING/STM3210E-EVAL_XL/.launch | 44 + .../TASKING/STM3210E-EVAL_XL/.project | 247 + .../STM3210E-EVAL_XL/TASKING/STM32F10x_XL.lsl | 165 + .../TASKING/STM32303C_EVAL/.cproject | 119 + .../TASKING/STM32373C_EVAL/.cproject | 123 + .../TASKING/STM32373C_EVAL/STM32373C_EVAL.launch | 41 + .../TASKING/STM32373C_EVAL/TASKING/stm32f37x.lsl | 200 + .../TASKING/STM32L152-EVAL/.cproject | 112 + .../TASKING/STM32L152-EVAL/.project | 237 + .../TASKING/STM32L152D-EVAL/.launch | 44 + .../TASKING/STM32L152D-EVAL/.project | 237 + .../STM32L152D-EVAL/TASKING/stm32l1xx_hd.lsl | 205 + .../TrueSTUDIO/STM3210B-EVAL/.cproject | 265 + .../TrueSTUDIO/STM3210B-EVAL/.project | 291 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../STM3210B-EVAL/STM3210B-EVAL.elf.launch | 43 + .../TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld | 170 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../STM3210E-EVAL/STM3210E-EVAL.elf.launch | 43 + .../TrueSTUDIO/STM3210E-EVAL/stm32_flash.ld | 170 + .../TrueSTUDIO/STM3210E-EVAL_XL/.cproject | 262 + .../TrueSTUDIO/STM3210E-EVAL_XL/.project | 296 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../TrueSTUDIO/STM3210E-EVAL_XL/stm32_flash.ld | 170 + .../TrueSTUDIO/STM32303C-EVAL/.cproject | 352 + .../TrueSTUDIO/STM32303C-EVAL/.project | 340 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../TrueSTUDIO/STM32373C-EVAL/.cproject | 352 + .../TrueSTUDIO/STM32373C-EVAL/.project | 345 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../.settings/org.eclipse.cdt.core.prefs | 4 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../STM32373C-EVAL/STM32373C-EVAL.elf.launch | 40 + .../TrueSTUDIO/STM32373C-EVAL/STM32F373VC_FLASH.ld | 170 + .../TrueSTUDIO/STM32L152-EVAL/.cproject | 265 + .../TrueSTUDIO/STM32L152-EVAL/.project | 281 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../STM32L152-EVAL/STM32L152-EVAL.elf.launch | 44 + .../TrueSTUDIO/STM32L152-EVAL/stm32_flash.ld | 171 + .../TrueSTUDIO/STM32L152D-EVAL/.cproject | 265 + .../TrueSTUDIO/STM32L152D-EVAL/.project | 286 + ....atollic.truestudio.debug.hardware_device.prefs | 12 + .../TrueSTUDIO/STM32L152D-EVAL/stm32_flash.ld | 171 + .../Projects/Composite_Example/inc/fsmc_nand.h | 112 + .../Projects/Composite_Example/inc/mass_mal.h | 49 + .../Projects/Composite_Example/inc/memory.h | 46 + .../Composite_Example/inc/platform_config.h | 224 + .../Projects/Composite_Example/inc/stm32_it.h | 57 + .../Composite_Example/inc/stm32f10x_conf.h | 85 + .../Composite_Example/inc/stm32f30x_conf.h | 82 + .../Composite_Example/inc/stm32f37x_conf.h | 83 + .../Composite_Example/inc/stm32l1xx_conf.h | 83 + .../Projects/Composite_Example/inc/usb_desc.h | 69 + .../Projects/Composite_Example/inc/usb_istr.h | 95 + .../Projects/Composite_Example/inc/usb_prop.h | 89 + .../Projects/Composite_Example/inc/usb_pwr.h | 70 + .../Projects/Composite_Example/inc/usb_scsi.h | 154 + .../Projects/Composite_Example/readme.txt | 177 + .../Projects/Composite_Example/src/fsmc_nand.c | 503 + .../Projects/Composite_Example/src/hw_config.c | 707 + .../Projects/Composite_Example/src/mass_mal.c | 233 + .../Projects/Composite_Example/src/memory.c | 175 + .../Projects/Composite_Example/src/nand_if.c | 557 + .../Projects/Composite_Example/src/scsi_data.c | 158 + .../Projects/Composite_Example/src/stm32_it.c | 426 + .../Composite_Example/src/system_stm32f10x.c | 917 ++ .../Composite_Example/src/system_stm32f30x.c | 382 + .../Composite_Example/src/system_stm32l1xx.c | 533 + .../Projects/Composite_Example/src/usb_bot.c | 343 + .../Projects/Composite_Example/src/usb_desc.c | 299 + .../Projects/Composite_Example/src/usb_endp.c | 159 + .../Projects/Composite_Example/src/usb_prop.c | 581 + .../Projects/Composite_Example/src/usb_pwr.c | 318 + 90 files changed, 31871 insertions(+) create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f10x_flash.icf create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f30x_flash.icf create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32l1xx_flash.icf create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvopt create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvproj create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/RIDE/Composite_Example.rprj create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/TASKING/STM32F10x_md.lsl create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/STM3210E-EVAL.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/TASKING/STM32F10x_hd.lsl create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/TASKING/STM32F10x_XL.lsl create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32303C_EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/STM32373C_EVAL.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/TASKING/stm32f37x.lsl create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/TASKING/stm32l1xx_hd.lsl create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/STM3210B-EVAL.elf.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/STM3210E-EVAL.elf.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/stm32_flash.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/stm32_flash.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32373C-EVAL.elf.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32F373VC_FLASH.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/STM32L152-EVAL.elf.launch create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/stm32_flash.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.cproject create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.project create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/stm32_flash.ld create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/fsmc_nand.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/mass_mal.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/memory.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/platform_config.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32_it.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f10x_conf.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f30x_conf.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f37x_conf.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32l1xx_conf.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_desc.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_istr.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_prop.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_pwr.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_scsi.h create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/readme.txt create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/fsmc_nand.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/hw_config.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/mass_mal.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/memory.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/nand_if.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/scsi_data.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/stm32_it.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f10x.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f30x.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32l1xx.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_bot.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_desc.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_endp.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_prop.c create mode 100644 thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_pwr.c (limited to 'thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example') diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f10x_flash.icf b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f10x_flash.icf new file mode 100644 index 0000000..6721a0d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f10x_flash.icf @@ -0,0 +1,31 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x400; +define symbol __ICFEDIT_size_heap__ = 0x200; +/**** End of ICF editor section. ###ICF###*/ + + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f30x_flash.icf b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f30x_flash.icf new file mode 100644 index 0000000..9d295c8 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32f30x_flash.icf @@ -0,0 +1,31 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x400; +define symbol __ICFEDIT_size_heap__ = 0x200; +/**** End of ICF editor section. ###ICF###*/ + + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; \ No newline at end of file diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32l1xx_flash.icf b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32l1xx_flash.icf new file mode 100644 index 0000000..8b7d80d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/EWARM/stm32l1xx_flash.icf @@ -0,0 +1,31 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 ; +define symbol __ICFEDIT_region_ROM_end__ = 0x0805FFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x2000BFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x400; +define symbol __ICFEDIT_size_heap__ = 0x200; +/**** End of ICF editor section. ###ICF###*/ + + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvopt b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvopt new file mode 100644 index 0000000..f161eaa --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvopt @@ -0,0 +1,2649 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + STM3210B-EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM3210B-EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103VB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103VB + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -UM0058NAE -O2190 -S0 -C0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06418041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM3210E-EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM3210E-EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103ZE + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103ZE + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(125=-1,-1,-1,-1,0)(126=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -UM0058NAE -O2190 -S0 -C0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06418041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC5000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM3210E-EVAL_XL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM3210E-EVAL_XL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + + 0 + Reference Manual + DATASHTS\ST\STM32F10xxx.PDF + + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103ZG + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103ZG + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -U -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_1024 -FS08000000 -FL0100000 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM32L152-EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM32L152-EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + + 0 + Datasheet + DATASHTS\ST\STM32L151xx_152xx_DS.PDF + + + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -U -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L15x_128 -FS08000000 -FL020000 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM32L152D-EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM32L152D-EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 255 + + + 0 + Datasheet + DATASHTS\ST\STM32L162xx_DS.PDF + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM3 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM3 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + ULP2CM3 + -O207 -S8 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L1xx_384 -FS08000000 -FL060000) + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -UV0579U9E -O2254 -S0 -C0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L15x_128 -FS08000000 -FL020000 + + + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM32373C_EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM32373C_EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 0 + + SARMCM3.DLL + + DARMSTM.DLL + + SARMCM3.DLL + + TARMSTM.DLL + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + ULP2CM3 + -O207 -S8 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L1xx_384 -FS08000000 -FL060000) + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -O14 -S0 -C0 -N00("ARM Cortex-M4") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL040000) + + + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + STM32303C_EVAL + 0x4 + ARM-ADS + + 8000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\STM32303C_EVAL\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 0 + + 0 + + SARMCM3.DLL + + DARMSTM.DLL + + SARMCM3.DLL + + TARMSTM.DLL + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + + + + + + + BIN\UL2CM3.DLL + + + + 0 + ULP2CM3 + -O207 -S8 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L1xx_384 -FS08000000 -FL060000) + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + + + 0 + UL2CM3 + -O14 -S0 -C0 -N00("ARM Cortex-M4") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL040000) + + + + + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + User + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + misc.c + + + 1 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + stm32f37x_misc.c + + + 1 + 3 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\hw_config.c + hw_config.c + + + 1 + 4 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\main.c + main.c + + + 1 + 5 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_desc.c + usb_desc.c + + + 1 + 6 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_endp.c + usb_endp.c + + + 1 + 7 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_istr.c + usb_istr.c + + + 1 + 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_prop.c + usb_prop.c + + + 1 + 9 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_pwr.c + usb_pwr.c + + + 1 + 10 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\stm32_it.c + stm32_it.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\fsmc_nand.c + fsmc_nand.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\mass_mal.c + mass_mal.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\memory.c + memory.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\nand_if.c + nand_if.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_bot.c + usb_bot.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\usb_scsi.c + usb_scsi.c + + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\scsi_data.c + scsi_data.c + + + + + CMSIS + 0 + 0 + 0 + + 2 + 11 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\system_stm32f10x.c + system_stm32f10x.c + + + 2 + 12 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\system_stm32l1xx.c + system_stm32l1xx.c + + + 2 + 13 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + startup_stm32f10x_hd.s + + + 2 + 14 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + startup_stm32f10x_ld.s + + + 2 + 15 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + startup_stm32f10x_ld_vl.s + + + 2 + 16 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + startup_stm32f10x_md.s + + + 2 + 17 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + startup_stm32f10x_md_vl.s + + + 2 + 18 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + startup_stm32f10x_xl.s + + + 2 + 19 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + startup_stm32l1xx_hd.s + + + 2 + 20 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + startup_stm32l1xx_md.s + + + 2 + 21 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + startup_stm32l1xx_mdp.s + + + 2 + 22 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + startup_stm32f37x.s + + + 2 + 23 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\system_stm32f37x.c + system_stm32f37x.c + + + 2 + 24 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\src\system_stm32f30x.c + system_stm32f30x.c + + + 2 + 25 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + startup_stm32f30x.s + + + + + USB-FS-Device_Driver + 0 + 0 + 0 + + 3 + 26 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + usb_init.c + + + 3 + 27 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + usb_int.c + + + 3 + 28 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + usb_mem.c + + + 3 + 29 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + usb_regs.c + + + 3 + 30 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + usb_core.c + + + 3 + 31 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + 0 + 0 + 0 + + 4 + 32 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + stm32f10x_rcc.c + + + 4 + 33 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + stm32f10x_gpio.c + + + 4 + 34 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + stm32f10x_adc.c + + + 4 + 35 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + stm32f10x_dma.c + + + 4 + 36 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + stm32f10x_exti.c + + + 4 + 37 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + stm32f10x_flash.c + + + 4 + 38 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + stm32f10x_usart.c + + + 4 + 39 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + stm32f10x_i2c.c + + + 4 + 40 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + stm32f10x_spi.c + + + 4 + 41 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + stm32f10x_sdio.c + + + 4 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + 0 + 0 + 0 + + 5 + 42 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + stm32l1xx_usart.c + + + 5 + 43 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + stm32l1xx_adc.c + + + 5 + 44 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + stm32l1xx_dma.c + + + 5 + 45 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + stm32l1xx_exti.c + + + 5 + 46 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + stm32l1xx_flash.c + + + 5 + 47 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + stm32l1xx_gpio.c + + + 5 + 48 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + stm32l1xx_i2c.c + + + 5 + 49 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + stm32l1xx_pwr.c + + + 5 + 50 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + stm32l1xx_rcc.c + + + 5 + 51 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + stm32l1xx_syscfg.c + + + 5 + 52 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + stm32l1xx_spi.c + + + 5 + 53 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + 0 + 0 + 0 + + 6 + 54 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + stm32f37x_adc.c + + + 6 + 55 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + stm32f37x_dac.c + + + 6 + 56 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + stm32f37x_dma.c + + + 6 + 57 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + stm32f37x_exti.c + + + 6 + 58 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + stm32f37x_flash.c + + + 6 + 59 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + stm32f37x_gpio.c + + + 6 + 60 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + stm32f37x_i2c.c + + + 6 + 61 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + stm32f37x_pwr.c + + + 6 + 62 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + stm32f37x_rcc.c + + + 6 + 63 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + stm32f37x_spi.c + + + 6 + 64 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + stm32f37x_syscfg.c + + + 6 + 65 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + 0 + 0 + 0 + + 7 + 66 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + stm32f30x_adc.c + + + 7 + 67 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + stm32f30x_can.c + + + 7 + 68 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + stm32f30x_crc.c + + + 7 + 69 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + stm32f30x_dac.c + + + 7 + 70 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + stm32f30x_dma.c + + + 7 + 71 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + stm32f30x_exti.c + + + 7 + 72 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + stm32f30x_flash.c + + + 7 + 73 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + stm32f30x_gpio.c + + + 7 + 74 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + stm32f30x_i2c.c + + + 7 + 75 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + stm32f30x_misc.c + + + 7 + 76 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + stm32f30x_pwr.c + + + 7 + 77 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + stm32f30x_rcc.c + + + 7 + 78 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + stm32f30x_rtc.c + + + 7 + 79 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + stm32f30x_spi.c + + + 7 + 80 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + stm32f30x_syscfg.c + + + 7 + 81 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + stm32f30x_usart.c + + + + + STM3210B-EVAL + 0 + 0 + 0 + + 8 + 82 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + stm3210b_eval.c + + + 8 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + 0 + 0 + 0 + + 9 + 83 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + stm3210e_eval.c + + + 9 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + 0 + 0 + 0 + + 10 + 84 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + stm32l152_eval.c + + + 10 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + 0 + 0 + 0 + + 11 + 85 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + stm32l152d_eval.c + + + 11 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + 0 + 0 + 0 + + 12 + 86 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + stm32373c_eval.c + + + 12 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + 0 + 0 + 0 + + 13 + 87 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + stm32303c_eval.c + + + 13 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + stm32303c_eval_spi_sd.c + + + + + Doc + 0 + 0 + 0 + + 14 + 88 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ..\readme.txt + readme.txt + + + +
diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvproj b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvproj new file mode 100644 index 0000000..6c36c3e --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/MDK-ARM/Composite_Example.uvproj @@ -0,0 +1,13585 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + STM3210B-EVAL + 0x4 + ARM-ADS + + + STM32F103VB + STMicroelectronics + IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32F10x.s" ("STM32 Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000) + 4223 + stm32f10x_lib.h + + + + + + + + + + + 0 + + + + ST\STM32F10x\ + ST\STM32F10x\ + + 0 + 0 + 0 + 0 + 1 + + .\STM3210B-EVAL\ + STM3210B-EVAL + 1 + 0 + 0 + 1 + 0 + .\STM3210B-EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103VB + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103VB + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x5000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32F10X_MD, USE_STM3210B_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM3210E-EVAL + 0x4 + ARM-ADS + + + STM32F103ZE + STMicroelectronics + IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x807FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32F10x.s" ("STM32 Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000) + 4216 + stm32f10x_lib.h + + + + + + + + + + + 0 + + + + ST\STM32F10x\ + ST\STM32F10x\ + + 0 + 0 + 0 + 0 + 1 + + .\STM3210E-EVAL\ + STM3210E-EVAL + 1 + 0 + 0 + 1 + 0 + .\STM3210E-EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103ZE + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103ZE + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32F10X_HD, USE_STM3210E_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM3210E-EVAL_XL + 0x4 + ARM-ADS + + + STM32F103ZG + STMicroelectronics + IRAM(0x20000000-0x20017FFF) IROM(0x8000000-0x80FFFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32F10x.s" ("STM32 Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000) + 5094 + stm32f10x_lib.h + + + + + + + + + + + 0 + + + + ST\STM32F10x\ + ST\STM32F10x\ + + 0 + 0 + 0 + 0 + 1 + + .\STM3210E-EVAL_XL\ + STM3210E-EVAL_XL + 1 + 0 + 0 + 1 + 0 + .\STM3210E-EVAL_XL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMSTM.DLL + -pSTM32F103ZG + SARMCM3.DLL + + TARMSTM.DLL + -pSTM32F103ZG + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 1 + 0x8000000 + 0x100000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x100000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x18000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32F10X_HD, USE_STM3210E_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM32L152-EVAL + 0x4 + ARM-ADS + + + STM32L152VB + STMicroelectronics + IRAM(0x20000000-0x20003FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32L1xx\startup_stm32l1xx_md.s" ("STM32L15xx Medium density Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L15x_128 -FS08000000 -FL020000) + 5249 + stm32l1xx.h + + + + + + + + + + SFD\ST\STM32L15x\STM32L15x.sfr + 0 + + + + ST\STM32L1xx\ + ST\STM32L1xx\ + + 0 + 0 + 0 + 0 + 1 + + .\STM32L152-EVAL\ + STM32L152-EVAL + 1 + 0 + 0 + 1 + 0 + .\STM32L152-EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 1 + 0x8000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x20000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x4000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32L1XX_MD, USE_STM32L152_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM32L152D-EVAL + 0x4 + ARM-ADS + + + STM32L152ZD + STMicroelectronics + IRAM(0x20000000-0x2000BFFF) IROM(0x8000000-0x805FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") + + "STARTUP\ST\STM32L1xx\startup_stm32l1xx_hd.s" ("STM32L1xx High density Startup Code") + ULP2CM3(-O207 -S8 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32L1xx_384 -FS08000000 -FL060000) + 6190 + stm32l1xx.h + + + + + + + + + + SFD\ST\STM32L15\STM32L152xD.sfr + 0 + + + + ST\STM32L1xx\ + ST\STM32L1xx\ + + 0 + 0 + 0 + 0 + 1 + + .\STM32L152D-EVAL\ + STM32L152D-EVAL + 1 + 0 + 0 + 1 + 0 + .\STM32L152D-EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + -MPU + DCM.DLL + -pCM3 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 0 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc000 + + + 1 + 0x8000000 + 0x60000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x60000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0xc000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32L1XX_HD, USE_STM32L152D_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM32373C_EVAL + 0x4 + ARM-ADS + + + STM32F373VCT6 + STMicroelectronics + IRAM(0x20000000-0x20007FFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) CPUTYPE("Cortex-M4")ESEL ELITTLE FPU2 + + "STARTUP\ARM\startup_MPS_CM0.s" ("STM32 Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M4") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL040000) + 0 + + + + + + + + + + + + 0 + + + + ST\STM32L1xx\ + ST\STM32L1xx\ + + 0 + 0 + 0 + 0 + 1 + + .\STM32373C_EVAL\ + STM32373C_EVAL + 1 + 0 + 0 + 1 + 0 + .\STM32373C_EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMSTM.DLL + + SARMCM3.DLL + + TARMSTM.DLL + + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + "" () + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 1 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 1 + 0x8000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32F37X, USE_STM32373C_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\\STM32F37x\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32F37x_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + STM32303C_EVAL + 0x4 + ARM-ADS + + + STM32F303VC + STMicroelectronics + IRAM(0x20000000-0x20007FFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) CPUTYPE("Cortex-M4")ESEL ELITTLE FPU2 + + "STARTUP\ARM\startup_MPS_CM4.s" ("STM32 Startup Code") + UL2CM3(-O14 -S0 -C0 -N00("ARM Cortex-M4") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F3xx_256 -FS08000000 -FL040000) + 0 + + + + + + + + + + + + 0 + + + + ST\STM32L1xx\ + ST\STM32L1xx\ + + 0 + 0 + 0 + 0 + 1 + + .\STM32303C_EVAL\ + STM32303C_EVAL + 1 + 0 + 0 + 1 + 0 + .\STM32303C_EVAL\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + + + SARMCM3.DLL + + DARMSTM.DLL + + SARMCM3.DLL + + TARMSTM.DLL + + + + + 1 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + 0 + 1 + + + + + + + + + + + + + + BIN\UL2CM3.DLL + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + BIN\UL2CM3.DLL + + + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 1 + 1 + 0 + 3 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 1 + 0x8000000 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x8000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + + + USE_STDPERIPH_DRIVER, STM32F30X, USE_STM32303C_EVAL + + ..\inc;..\..\..\Libraries\CMSIS\Device\ST\\STM32F30x\Include;..\..\..\Libraries\STM32_USB-FS-Device_Driver\inc;..\..\..\Libraries\STM32F30x_StdPeriph_Driver\inc;..\..\..\Utilities\STM32_EVAL;..\..\..\Utilities\STM32_EVAL\Common;..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 1 + 0 + 0x8000000 + 0x20000000 + + + + + + + + + + + + User + + + misc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + stm32f37x_misc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_misc.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + hw_config.c + 1 + ..\src\hw_config.c + + + main.c + 1 + ..\src\main.c + + + usb_desc.c + 1 + ..\src\usb_desc.c + + + usb_endp.c + 1 + ..\src\usb_endp.c + + + usb_istr.c + 1 + ..\src\usb_istr.c + + + usb_prop.c + 1 + ..\src\usb_prop.c + + + usb_pwr.c + 1 + ..\src\usb_pwr.c + + + stm32_it.c + 1 + ..\src\stm32_it.c + + + fsmc_nand.c + 1 + ..\src\fsmc_nand.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + mass_mal.c + 1 + ..\src\mass_mal.c + + + memory.c + 1 + ..\src\memory.c + + + nand_if.c + 1 + ..\src\nand_if.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + usb_bot.c + 1 + ..\src\usb_bot.c + + + usb_scsi.c + 1 + ..\src\usb_scsi.c + + + scsi_data.c + 1 + ..\src\scsi_data.c + + + + + CMSIS + + + system_stm32f10x.c + 1 + ..\src\system_stm32f10x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32l1xx.c + 1 + ..\src\system_stm32l1xx.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + startup_stm32f10x_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_ld_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_ld_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_md_vl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_md_vl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f10x_xl.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F10x\Source\Templates\arm\startup_stm32f10x_xl.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_hd.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_hd.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_md.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_md.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32l1xx_mdp.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32L1xx\Source\Templates\arm\startup_stm32l1xx_mdp.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + startup_stm32f37x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F37x\Source\Templates\arm\startup_stm32f37x.s + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + system_stm32f37x.c + 1 + ..\src\system_stm32f37x.c + + + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + + + + system_stm32f30x.c + 1 + ..\src\system_stm32f30x.c + + + startup_stm32f30x.s + 2 + ..\..\..\Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates\arm\startup_stm32f30x.s + + + + + USB-FS-Device_Driver + + + usb_init.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_init.c + + + usb_int.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_int.c + + + usb_mem.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_mem.c + + + usb_regs.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_regs.c + + + usb_core.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_core.c + + + usb_sil.c + 1 + ..\..\..\Libraries\STM32_USB-FS-Device_Driver\src\usb_sil.c + + + + + STM32F10x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f10x_rcc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + stm32f10x_gpio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + stm32f10x_adc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + stm32f10x_dma.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + stm32f10x_exti.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + stm32f10x_flash.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + stm32f10x_usart.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + stm32f10x_i2c.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + stm32f10x_spi.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + stm32f10x_sdio.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + stm32f10x_fsmc.c + 1 + ..\..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + + + STM32L1xx_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l1xx_usart.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_usart.c + + + stm32l1xx_adc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_adc.c + + + stm32l1xx_dma.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_dma.c + + + stm32l1xx_exti.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_exti.c + + + stm32l1xx_flash.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_flash.c + + + stm32l1xx_gpio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_gpio.c + + + stm32l1xx_i2c.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_i2c.c + + + stm32l1xx_pwr.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_pwr.c + + + stm32l1xx_rcc.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_rcc.c + + + stm32l1xx_syscfg.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_syscfg.c + + + stm32l1xx_spi.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_spi.c + + + stm32l1xx_sdio.c + 1 + ..\..\..\Libraries\STM32L1xx_StdPeriph_Driver\src\stm32l1xx_sdio.c + + + + + STM32F37x_StdPeriph_Driver + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32f37x_adc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_adc.c + + + stm32f37x_dac.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dac.c + + + stm32f37x_dma.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_dma.c + + + stm32f37x_exti.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_exti.c + + + stm32f37x_flash.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_flash.c + + + stm32f37x_gpio.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_gpio.c + + + stm32f37x_i2c.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_i2c.c + + + stm32f37x_pwr.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_pwr.c + + + stm32f37x_rcc.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_rcc.c + + + stm32f37x_spi.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_spi.c + + + stm32f37x_syscfg.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_syscfg.c + + + stm32f37x_usart.c + 1 + ..\..\..\Libraries\STM32F37x_StdPeriph_Driver\src\stm32f37x_usart.c + + + + + STM32F30x_StdPeriph_Driver + + + stm32f30x_adc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_adc.c + + + stm32f30x_can.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_can.c + + + stm32f30x_crc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_crc.c + + + stm32f30x_dac.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dac.c + + + stm32f30x_dma.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_dma.c + + + stm32f30x_exti.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_exti.c + + + stm32f30x_flash.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_flash.c + + + stm32f30x_gpio.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_gpio.c + + + stm32f30x_i2c.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_i2c.c + + + stm32f30x_misc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_misc.c + + + stm32f30x_pwr.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_pwr.c + + + stm32f30x_rcc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rcc.c + + + stm32f30x_rtc.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_rtc.c + + + stm32f30x_spi.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_spi.c + + + stm32f30x_syscfg.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_syscfg.c + + + stm32f30x_usart.c + 1 + ..\..\..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_usart.c + + + + + STM3210B-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210b_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval.c + + + stm3210b_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210B_EVAL\stm3210b_eval_spi_sd.c + + + + + STM3210E-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm3210e_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval.c + + + stm3210e_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM3210E_EVAL\stm3210e_eval_sdio_sd.c + + + + + STM32L152-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval.c + + + stm32l152_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152_EVAL\stm32l152_eval_spi_sd.c + + + + + STM32L152D-EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32l152d_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval.c + + + stm32l152d_eval_sdio_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32L152D_EVAL\stm32l152d_eval_sdio_sd.c + + + + + STM32373C_EVAL + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 11 + + + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + + + + + + + + + 2 + 2 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + + + stm32373c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval.c + + + stm32373c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32373C_EVAL\stm32373c_eval_spi_sd.c + + + + + STM32303C_EVAL + + + stm32303c_eval.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval.c + + + stm32303c_eval_spi_sd.c + 1 + ..\..\..\Utilities\STM32_EVAL\STM32303C_EVAL\stm32303c_eval_spi_sd.c + + + + + Doc + + + readme.txt + 5 + ..\readme.txt + + + + + + + +
diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/RIDE/Composite_Example.rprj b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/RIDE/Composite_Example.rprj new file mode 100644 index 0000000..20bcdb6 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/RIDE/Composite_Example.rprj @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/.project new file mode 100644 index 0000000..8f1ba33 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/.project @@ -0,0 +1,247 @@ + + + STM3210B-EVAL + + + + + + com.tasking.arm.TskManagedBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + com.tasking.arm.target + + + + Doc + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + User + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32F10x/CMSIS + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x/STM3210B_EVAL + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x/STM32F10x_StdPeriph_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/fsmc_nand.c + 1 + PARENT-2-PROJECT_LOC/src/fsmc_nand.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/nand_if.c + 1 + PARENT-2-PROJECT_LOC/src/nand_if.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + STM32F10x/CMSIS/system_stm32f10x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f10x.c + + + STM32F10x/STM3210B_EVAL/stm3210b_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210B_EVAL/stm3210b_eval.c + + + STM32F10x/STM3210B_EVAL/stm3210b_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210B_EVAL/stm3210b_eval_spi_sd.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_fsmc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/TASKING/STM32F10x_md.lsl b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/TASKING/STM32F10x_md.lsl new file mode 100644 index 0000000..2d09c3d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210B-EVAL/TASKING/STM32F10x_md.lsl @@ -0,0 +1,148 @@ +//////////////////////////////////////////////////////////////////////////// +// +// File : stm32f103_cmsis.lsl +// +// Version : @(#)stm32f103_cmsis.lsl 1.2 09/06/04 +// +// Description : LSL file for the STMicroelectronics STM32F103, CMSIS version +// +// Copyright 2009 Altium BV +// +// NOTE: +// This file is derived from cm3.lsl and stm32f103.lsl. +// It is assumed that the user works with the ARMv7M architecture. +// Other architectures will not work with this lsl file. +// +//////////////////////////////////////////////////////////////////////////// + +// +// We do not want the vectors as defined in arm_arch.lsl +// +#define __NO_DEFAULT_AUTO_VECTORS 1 +#define __NR_OF_VECTORS 76 + + +#ifndef __STACK +# define __STACK 8k +#endif +#ifndef __HEAP +# define __HEAP 2k +#endif +#ifndef __VECTOR_TABLE_ROM_ADDR +# define __VECTOR_TABLE_ROM_ADDR 0x08000000 +#endif +#ifndef __XVWBUF +#define __XVWBUF 256 /* buffer used by CrossView */ +#endif + +#include + +//////////////////////////////////////////////////////////////////////////// +// +// In the STM32F10x, 3 different boot modes can be selected +// - User Flash memory is selected as boot space +// - SystemMemory is selected as boot space +// - Embedded SRAM is selected as boot space +// +// This aliases the physical memory associated with each boot mode to Block +// 000 (0x00000000 boot memory). Even when aliased in the boot memory space, +// the related memory (Flash memory or SRAM) is still accessible at its +// original memory space. +// +// If no memory is defined yet use the following memory settings +// +#ifndef __MEMORY + +memory stm32f103flash +{ + mau = 8; + type = rom; + size = 128k; + map ( size = 128k, dest_offset=0x08000000, dest=bus:ARM:local_bus); +} + +memory stm32f103ram +{ + mau = 8; + type = ram; + size = 20k; + map ( size = 20k, dest_offset=0x20000000, dest=bus:ARM:local_bus); +} + +#endif /* __MEMORY */ + + +// +// Custom vector table defines interrupts according to CMSIS standard +// +# if defined(__CPU_ARMV7M__) +section_setup ::linear +{ + // vector table with handler addresses + vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_ROM_ADDR, + template = ".text.handler_address", + template_symbol = "_lc_vector_handler", + vector_prefix = "_vector_", + fill = loop, + no_inline + ) + { + vector ( id = 0, fill = "_lc_ub_stack" ); // Top of Stack + vector ( id = 1, fill = "Reset_Handler" ); /* Reset Handler */ + vector( id = 2, optional, fill = "NMI_Handler" ); /* 2 Non Maskable Interrupt */ + vector ( id = 4, optional, fill = "MemManage_Handler" ); + vector ( id = 5, optional, fill = "BusFault_Handler" ); + vector ( id = 6, optional, fill = "UsageFault_Handler" ); + vector ( id = 11, optional, fill = "SVC_Handler" ); + vector ( id = 12, optional, fill = "DebugMon_Handler" ); + vector ( id = 14, optional, fill = "PendSV_Handler" ); + vector ( id = 15, optional, fill = "SysTick_Handler" ); + + // External Interrupts : + vector ( id = 16, optional, fill = "WWDG_IRQHandler" ); // Window Watchdog + vector ( id = 17, optional, fill = "PVD_IRQHandler" ); // PVD through EXTI Line detect + vector ( id = 18, optional, fill = "TAMPER_IRQHandler" ); // Tamper + vector ( id = 19, optional, fill = "RTC_IRQHandler" ); // RTC + vector ( id = 20, optional, fill = "FLASH_IRQHandler" ); // Flash + vector ( id = 21, optional, fill = "RCC_IRQHandler" ); // RCC + vector ( id = 22, optional, fill = "EXTI0_IRQHandler" ); // EXTI Line 0 + vector ( id = 23, optional, fill = "EXTI1_IRQHandler" ); // EXTI Line 1 + vector ( id = 24, optional, fill = "EXTI2_IRQHandler" ); // EXTI Line 2 + vector ( id = 25, optional, fill = "EXTI3_IRQHandler" ); // EXTI Line 3 + vector ( id = 26, optional, fill = "EXTI4_IRQHandler" ); // EXTI Line 4 + vector ( id = 27, optional, fill = "DMA1_Channel1_IRQHandler" ); // DMA Channel 1 + vector ( id = 28, optional, fill = "DMA1_Channel2_IRQHandler" ); // DMA Channel 2 + vector ( id = 29, optional, fill = "DMA1_Channel3_IRQHandler" ); // DMA Channel 3 + vector ( id = 30, optional, fill = "DMA1_Channel4_IRQHandler" ); // DMA Channel 4 + vector ( id = 31, optional, fill = "DMA1_Channel5_IRQHandler" ); // DMA Channel 5 + vector ( id = 32, optional, fill = "DMA1_Channel6_IRQHandler" ); // DMA Channel 6 + vector ( id = 33, optional, fill = "DMA1_Channel7_IRQHandler" ); // DMA Channel 7 + vector ( id = 34, optional, fill = "ADC1_2_IRQHandler" ); // ADC1 and ADC2 + vector ( id = 35, optional, fill = "USB_HP_CAN1_TX_IRQHandler" ); // USB High Priority or CAN1 TX + vector ( id = 36, optional, fill = "USB_LP_CAN1_RX0_IRQHandler" ); // USB LowPriority or CAN RX0 + vector ( id = 37, optional, fill = "CAN_RX1_IRQHandler" ); // CAN RX1 + vector ( id = 38, optional, fill = "CAN_SCE_IRQHandler" ); // CAN SCE + vector ( id = 39, optional, fill = "EXTI9_5_IRQHandler" ); // EXTI Line 9..5 + vector ( id = 40, optional, fill = "TIM1_BRK_IRQHandler" ); // TIM1 Break + vector ( id = 41, optional, fill = "TIM1_UP_IRQHandler" ); // TIM1 Update + vector ( id = 42, optional, fill = "TIM1_TRG_COM_IRQHandler" ); // TIM1 Trigger and Commutation + vector ( id = 43, optional, fill = "TIM1_CC_IRQHandler" ); // TIM1 Capture Compare + vector ( id = 44, optional, fill = "TIM2_IRQHandler" ); // TIM2 + vector ( id = 45, optional, fill = "TIM3_IRQHandler" ); // TIM3 + vector ( id = 46, optional, fill = "TIM4_IRQHandler" ); // TIM4 + vector ( id = 47, optional, fill = "I2C1_EV_IRQHandler" ); // I2C1 Event + vector ( id = 48, optional, fill = "I2C1_ER_IRQHandler" ); // I2C1 Error + vector ( id = 49, optional, fill = "I2C2_EV_IRQHandler" ); // I2C2 Event + vector ( id = 50, optional, fill = "I2C2_ER_IRQHandler" ); // I2C2 Error + vector ( id = 51, optional, fill = "SPI1_IRQHandler" ); // SPI1 + vector ( id = 52, optional, fill = "SPI2_IRQHandler" ); // SPI2 + vector ( id = 53, optional, fill = "USART1_IRQHandler" ); // USART1 + vector ( id = 54, optional, fill = "USART2_IRQHandler" ); // USART2 + vector ( id = 55, optional, fill = "USART3_IRQHandler" ); // USART3 + vector ( id = 56, optional, fill = "EXTI15_10_IRQHandler" ); // EXTI Line 15..10 + vector ( id = 57, optional, fill = "RTCAlarm_IRQHandler" ); // RTC Alarm through EXTI Line + vector ( id = 58, optional, fill = "USBWakeUp_IRQHandler" ); // USB Wakeup from suspend + + } +} +# endif diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.cproject new file mode 100644 index 0000000..a479212 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.cproject @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + TASKING VX-toolset for ARM Cortex: object linker (TRIAL VERS v4.3r1 Build 142 + TASKING program builder v4.3r1 Build 068 + TASKING VX-toolset for ARM Cortex: assembler v4.3r1 Build 148 + TASKING VX-toolset for ARM Cortex: control program v4.3r1 Build 120 + TASKING VX-toolset for ARM Cortex: C compiler (TRIAL VERSION v4.3r1 Build 683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.launch new file mode 100644 index 0000000..4635ffb --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.launch @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.project new file mode 100644 index 0000000..1295c9c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/.project @@ -0,0 +1,203 @@ + + + STM3210E-EVAL + + + + + + com.tasking.arm.TskManagedBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + com.tasking.arm.target + + + + Doc + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + STM32F10x + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + STM32F10x/CMSIS + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + STM32F10x/CMSIS/system_stm32f10x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f10x.c + + STM32F10x/STM3210E_EVAL + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + STM32F10x/STM3210E_EVAL/stm3210e_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval.c + + STM32F10x/STM3210E_EVAL/stm3210e_eval_sdio_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval_sdio_sd.c + + STM32F10x/STM32F10x_StdPeriph_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + STM32F10x/STM32F10x_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_fsmc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c + + USB-FS-Device_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + User + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + User/fsmc_nand.c + 1 + PARENT-2-PROJECT_LOC/src/fsmc_nand.c + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + User/nand_if.c + 1 + PARENT-2-PROJECT_LOC/src/nand_if.c + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/STM3210E-EVAL.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/STM3210E-EVAL.launch new file mode 100644 index 0000000..af72174 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/STM3210E-EVAL.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/TASKING/STM32F10x_hd.lsl b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/TASKING/STM32F10x_hd.lsl new file mode 100644 index 0000000..f1bb71e --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL/TASKING/STM32F10x_hd.lsl @@ -0,0 +1,165 @@ +//////////////////////////////////////////////////////////////////////////// +// +// File : stm32f103_cmsis.lsl +// +// Version : @(#)stm32f103_cmsis.lsl 1.2 09/06/04 +// +// Description : LSL file for the STMicroelectronics STM32F103, CMSIS version +// +// Copyright 2009 Altium BV +// +// NOTE: +// This file is derived from cm3.lsl and stm32f103.lsl. +// It is assumed that the user works with the ARMv7M architecture. +// Other architectures will not work with this lsl file. +// +//////////////////////////////////////////////////////////////////////////// + +// +// We do not want the vectors as defined in arm_arch.lsl +// +#define __NO_DEFAULT_AUTO_VECTORS 1 +#define __NR_OF_VECTORS 76 + + +#ifndef __STACK +# define __STACK 8k +#endif +#ifndef __HEAP +# define __HEAP 2k +#endif +#ifndef __VECTOR_TABLE_ROM_ADDR +# define __VECTOR_TABLE_ROM_ADDR 0x08000000 +#endif +#ifndef __XVWBUF +#define __XVWBUF 256 /* buffer used by CrossView */ +#endif + +#include + +//////////////////////////////////////////////////////////////////////////// +// +// In the STM32F10x, 3 different boot modes can be selected +// - User Flash memory is selected as boot space +// - SystemMemory is selected as boot space +// - Embedded SRAM is selected as boot space +// +// This aliases the physical memory associated with each boot mode to Block +// 000 (0x00000000 boot memory). Even when aliased in the boot memory space, +// the related memory (Flash memory or SRAM) is still accessible at its +// original memory space. +// +// If no memory is defined yet use the following memory settings +// +#ifndef __MEMORY + +memory stm32f103flash +{ + mau = 8; + type = rom; + size = 512k; + map ( size = 512k, dest_offset=0x08000000, dest=bus:ARM:local_bus); +} + +memory stm32f103ram +{ + mau = 8; + type = ram; + size = 64k; + map ( size = 64k, dest_offset=0x20000000, dest=bus:ARM:local_bus); +} + +#endif /* __MEMORY */ + + +// +// Custom vector table defines interrupts according to CMSIS standard +// +# if defined(__CPU_ARMV7M__) +section_setup ::linear +{ + // vector table with handler addresses + vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_ROM_ADDR, + template = ".text.handler_address", + template_symbol = "_lc_vector_handler", + vector_prefix = "_vector_", + fill = loop, + no_inline + ) + { + vector ( id = 0, fill = "_lc_ub_stack" ); // Top of Stack + vector ( id = 1, fill = "Reset_Handler" ); /* Reset Handler */ + vector( id = 2, optional, fill = "NMI_Handler" ); /* 2 Non Maskable Interrupt */ + vector ( id = 3, optional, fill = "HardFault_Handler" ); + vector ( id = 4, optional, fill = "MemManage_Handler" ); + vector ( id = 5, optional, fill = "BusFault_Handler" ); + vector ( id = 6, optional, fill = "UsageFault_Handler" ); + vector ( id = 11, optional, fill = "SVC_Handler" ); + vector ( id = 12, optional, fill = "DebugMon_Handler" ); + vector ( id = 14, optional, fill = "PendSV_Handler" ); + vector ( id = 15, optional, fill = "SysTick_Handler" ); + + // External Interrupts : + vector ( id = 16, optional, fill = "WWDG_IRQHandler" ); // Window Watchdog + vector ( id = 17, optional, fill = "PVD_IRQHandler" ); // PVD through EXTI Line detect + vector ( id = 18, optional, fill = "TAMPER_IRQHandler" ); // Tamper + vector ( id = 19, optional, fill = "RTC_IRQHandler" ); // RTC + vector ( id = 20, optional, fill = "FLASH_IRQHandler" ); // Flash + vector ( id = 21, optional, fill = "RCC_IRQHandler" ); // RCC + vector ( id = 22, optional, fill = "EXTI0_IRQHandler" ); // EXTI Line 0 + vector ( id = 23, optional, fill = "EXTI1_IRQHandler" ); // EXTI Line 1 + vector ( id = 24, optional, fill = "EXTI2_IRQHandler" ); // EXTI Line 2 + vector ( id = 25, optional, fill = "EXTI3_IRQHandler" ); // EXTI Line 3 + vector ( id = 26, optional, fill = "EXTI4_IRQHandler" ); // EXTI Line 4 + vector ( id = 27, optional, fill = "DMA1_Channel1_IRQHandler" ); // DMA Channel 1 + vector ( id = 28, optional, fill = "DMA1_Channel2_IRQHandler" ); // DMA Channel 2 + vector ( id = 29, optional, fill = "DMA1_Channel3_IRQHandler" ); // DMA Channel 3 + vector ( id = 30, optional, fill = "DMA1_Channel4_IRQHandler" ); // DMA Channel 4 + vector ( id = 31, optional, fill = "DMA1_Channel5_IRQHandler" ); // DMA Channel 5 + vector ( id = 32, optional, fill = "DMA1_Channel6_IRQHandler" ); // DMA Channel 6 + vector ( id = 33, optional, fill = "DMA1_Channel7_IRQHandler" ); // DMA Channel 7 + vector ( id = 34, optional, fill = "ADC1_2_IRQHandler" ); // ADC1 and ADC2 + vector ( id = 35, optional, fill = "USB_HP_CAN1_TX_IRQHandler" ); // USB High Priority or CAN1 TX + vector ( id = 36, optional, fill = "USB_LP_CAN1_RX0_IRQHandler" ); // USB LowPriority or CAN1 RX0 + vector ( id = 37, optional, fill = "CAN_RX1_IRQHandler" ); // CAN RX1 + vector ( id = 38, optional, fill = "CAN_SCE_IRQHandler" ); // CAN SCE + vector ( id = 39, optional, fill = "EXTI9_5_IRQHandler" ); // EXTI Line 9..5 + vector ( id = 40, optional, fill = "TIM1_BRK_IRQHandler" ); // TIM1 Break + vector ( id = 41, optional, fill = "TIM1_UP_IRQHandler" ); // TIM1 Update + vector ( id = 42, optional, fill = "TIM1_TRG_COM_IRQHandler" ); // TIM1 Trigger and Commutation + vector ( id = 43, optional, fill = "TIM1_CC_IRQHandler" ); // TIM1 Capture Compare + vector ( id = 44, optional, fill = "TIM2_IRQHandler" ); // TIM2 + vector ( id = 45, optional, fill = "TIM3_IRQHandler" ); // TIM3 + vector ( id = 46, optional, fill = "TIM4_IRQHandler" ); // TIM4 + vector ( id = 47, optional, fill = "I2C1_EV_IRQHandler" ); // I2C1 Event + vector ( id = 48, optional, fill = "I2C1_ER_IRQHandler" ); // I2C1 Error + vector ( id = 49, optional, fill = "I2C2_EV_IRQHandler" ); // I2C2 Event + vector ( id = 50, optional, fill = "I2C2_ER_IRQHandler" ); // I2C2 Error + vector ( id = 51, optional, fill = "SPI1_IRQHandler" ); // SPI1 + vector ( id = 52, optional, fill = "SPI2_IRQHandler" ); // SPI2 + vector ( id = 53, optional, fill = "USART1_IRQHandler" ); // USART1 + vector ( id = 54, optional, fill = "USART2_IRQHandler" ); // USART2 + vector ( id = 55, optional, fill = "USART3_IRQHandler" ); // USART3 + vector ( id = 56, optional, fill = "EXTI15_10_IRQHandler" ); // EXTI Line 15..10 + vector ( id = 57, optional, fill = "RTCAlarm_IRQHandler" ); // RTC Alarm through EXTI Line + vector ( id = 58, optional, fill = "USBWakeUp_IRQHandler" ); // USB Wakeup from suspend + vector ( id = 59, optional, fill = "TIM8_BRK_IRQHandler" ); // TIM8 Break + vector ( id = 60, optional, fill = "TIM8_UP_IRQHandler" ); // TIM8 Update + vector ( id = 61, optional, fill = "TIM8_TRG_COM_IRQHandler" ); // TIM8 Trigger and Commutation + vector ( id = 62, optional, fill = "TIM8_CC_IRQHandler" ); // TIM8 Capture Compare + vector ( id = 63, optional, fill = "ADC3_IRQHandler" ); // ADC3 + vector ( id = 64, optional, fill = "FSMC_IRQHandler" ); // FSMC + vector ( id = 65, optional, fill = "SDIO_IRQHandler" ); // SDIO + vector ( id = 66, optional, fill = "TIM5_IRQHandler" ); // TIM5 + vector ( id = 67, optional, fill = "SPI3_IRQHandler" ); // SPI3 + vector ( id = 68, optional, fill = "UART4_IRQHandler" ); // UART4 + vector ( id = 69, optional, fill = "UART5_IRQHandler" ); // UART5 + vector ( id = 70, optional, fill = "TIM6_IRQHandler" ); // TIM6 + vector ( id = 71, optional, fill = "TIM7_IRQHandler" ); // TIM7 + vector ( id = 72, optional, fill = "DMA2_Channel1_IRQHandler" ); // DMA2 Channel1 + vector ( id = 73, optional, fill = "DMA2_Channel2_IRQHandler" ); // DMA2 Channel2 + vector ( id = 74, optional, fill = "DMA2_Channel3_IRQHandler" ); // DMA2 Channel3 + vector ( id = 75, optional, fill = "DMA2_Channel4_5_IRQHandler" ); // DMA2 Channel4 and DMA2 Channel5 + } +} +# endif diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.cproject new file mode 100644 index 0000000..2f3a8e2 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.cproject @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + TASKING VX-toolset for ARM Cortex: object linker (TRIAL VERS v4.3r1 Build 142 + TASKING program builder v4.3r1 Build 068 + TASKING VX-toolset for ARM Cortex: assembler v4.3r1 Build 148 + TASKING VX-toolset for ARM Cortex: control program v4.3r1 Build 120 + TASKING VX-toolset for ARM Cortex: C compiler (TRIAL VERSION v4.3r1 Build 683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.launch new file mode 100644 index 0000000..4635ffb --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.launch @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.project new file mode 100644 index 0000000..93a6438 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/.project @@ -0,0 +1,247 @@ + + + STM3210E-EVAL_XL + + + + + + com.tasking.arm.TskManagedBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + com.tasking.arm.target + + + + Doc + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + User + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32F10x/CMSIS + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x/STM3210E_EVAL + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32F10x/STM32F10x_StdPeriph_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/fsmc_nand.c + 1 + PARENT-2-PROJECT_LOC/src/fsmc_nand.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/nand_if.c + 1 + PARENT-2-PROJECT_LOC/src/nand_if.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + STM32F10x/CMSIS/system_stm32f10x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f10x.c + + + STM32F10x/STM3210E_EVAL/stm3210e_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval.c + + + STM32F10x/STM3210E_EVAL/stm3210e_eval_sdio_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval_sdio_sd.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_fsmc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c + + + STM32F10x/STM32F10x_StdPeriph_Driver/stm32f10x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/TASKING/STM32F10x_XL.lsl b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/TASKING/STM32F10x_XL.lsl new file mode 100644 index 0000000..a944802 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM3210E-EVAL_XL/TASKING/STM32F10x_XL.lsl @@ -0,0 +1,165 @@ +//////////////////////////////////////////////////////////////////////////// +// +// File : stm32f103_cmsis.lsl +// +// Version : @(#)stm32f103_cmsis.lsl 1.2 09/06/04 +// +// Description : LSL file for the STMicroelectronics STM32F103, CMSIS version +// +// Copyright 2009 Altium BV +// +// NOTE: +// This file is derived from cm3.lsl and stm32f103.lsl. +// It is assumed that the user works with the ARMv7M architecture. +// Other architectures will not work with this lsl file. +// +//////////////////////////////////////////////////////////////////////////// + +// +// We do not want the vectors as defined in arm_arch.lsl +// +#define __NO_DEFAULT_AUTO_VECTORS 1 +#define __NR_OF_VECTORS 76 + + +#ifndef __STACK +# define __STACK 8k +#endif +#ifndef __HEAP +# define __HEAP 2k +#endif +#ifndef __VECTOR_TABLE_ROM_ADDR +# define __VECTOR_TABLE_ROM_ADDR 0x08000000 +#endif +#ifndef __XVWBUF +#define __XVWBUF 256 /* buffer used by CrossView */ +#endif + +#include + +//////////////////////////////////////////////////////////////////////////// +// +// In the STM32F10x, 3 different boot modes can be selected +// - User Flash memory is selected as boot space +// - SystemMemory is selected as boot space +// - Embedded SRAM is selected as boot space +// +// This aliases the physical memory associated with each boot mode to Block +// 000 (0x00000000 boot memory). Even when aliased in the boot memory space, +// the related memory (Flash memory or SRAM) is still accessible at its +// original memory space. +// +// If no memory is defined yet use the following memory settings +// +#ifndef __MEMORY + +memory stm32f103flash +{ + mau = 8; + type = rom; + size = 0x100000; + map ( size = 0x100000, dest_offset=0x08000000, dest=bus:ARM:local_bus); +} + +memory stm32f103ram +{ + mau = 8; + type = ram; + size = 96k; + map ( size = 96k, dest_offset=0x20000000, dest=bus:ARM:local_bus); +} + +#endif /* __MEMORY */ + + +// +// Custom vector table defines interrupts according to CMSIS standard +// +# if defined(__CPU_ARMV7M__) +section_setup ::linear +{ + // vector table with handler addresses + vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_ROM_ADDR, + template = ".text.handler_address", + template_symbol = "_lc_vector_handler", + vector_prefix = "_vector_", + fill = loop, + no_inline + ) + { + vector ( id = 0, fill = "_lc_ub_stack" ); // Top of Stack + vector ( id = 1, fill = "Reset_Handler" ); /* Reset Handler */ + vector ( id = 2, optional, fill = "NMI_Handler" ); + vector ( id = 3, optional, fill = "HardFault_Handler" ); + vector ( id = 4, optional, fill = "MemManage_Handler" ); + vector ( id = 5, optional, fill = "BusFault_Handler" ); + vector ( id = 6, optional, fill = "UsageFault_Handler" ); + vector ( id = 11, optional, fill = "SVC_Handler" ); + vector ( id = 12, optional, fill = "DebugMon_Handler" ); + vector ( id = 14, optional, fill = "PendSV_Handler" ); + vector ( id = 15, optional, fill = "SysTick_Handler" ); + + // External Interrupts : + vector ( id = 16, optional, fill = "WWDG_IRQHandler" ); // Window Watchdog + vector ( id = 17, optional, fill = "PVD_IRQHandler" ); // PVD through EXTI Line detect + vector ( id = 18, optional, fill = "TAMPER_IRQHandler" ); // Tamper + vector ( id = 19, optional, fill = "RTC_IRQHandler" ); // RTC + vector ( id = 20, optional, fill = "FLASH_IRQHandler" ); // Flash + vector ( id = 21, optional, fill = "RCC_IRQHandler" ); // RCC + vector ( id = 22, optional, fill = "EXTI0_IRQHandler" ); // EXTI Line 0 + vector ( id = 23, optional, fill = "EXTI1_IRQHandler" ); // EXTI Line 1 + vector ( id = 24, optional, fill = "EXTI2_IRQHandler" ); // EXTI Line 2 + vector ( id = 25, optional, fill = "EXTI3_IRQHandler" ); // EXTI Line 3 + vector ( id = 26, optional, fill = "EXTI4_IRQHandler" ); // EXTI Line 4 + vector ( id = 27, optional, fill = "DMA1_Channel1_IRQHandler" ); // DMA Channel 1 + vector ( id = 28, optional, fill = "DMA1_Channel2_IRQHandler" ); // DMA Channel 2 + vector ( id = 29, optional, fill = "DMA1_Channel3_IRQHandler" ); // DMA Channel 3 + vector ( id = 30, optional, fill = "DMA1_Channel4_IRQHandler" ); // DMA Channel 4 + vector ( id = 31, optional, fill = "DMA1_Channel5_IRQHandler" ); // DMA Channel 5 + vector ( id = 32, optional, fill = "DMA1_Channel6_IRQHandler" ); // DMA Channel 6 + vector ( id = 33, optional, fill = "DMA1_Channel7_IRQHandler" ); // DMA Channel 7 + vector ( id = 34, optional, fill = "ADC1_2_IRQHandler" ); // ADC1 and ADC2 + vector ( id = 35, optional, fill = "USB_HP_CAN1_TX_IRQHandler" ); // USB High Priority or CAN1 TX + vector ( id = 36, optional, fill = "USB_LP_CAN1_RX0_IRQHandler" ); // USB LowPriority or CAN1 RX0 + vector ( id = 37, optional, fill = "CAN1_RX1_IRQHandler" ); // CAN1 RX1 + vector ( id = 38, optional, fill = "CAN1_SCE_IRQHandler" ); // CAN1 SCE + vector ( id = 39, optional, fill = "EXTI9_5_IRQHandler" ); // EXTI Line 9..5 + vector ( id = 40, optional, fill = "TIM1_BRK_TIM9_IRQHandler" ); // TIM1 Break + vector ( id = 41, optional, fill = "TIM1_UP_TIM10_IRQHandler" ); // TIM1 Update + vector ( id = 42, optional, fill = "TIM1_TRG_COM_TIM11_IRQHandler" ); // TIM1 Trigger and Commutation + vector ( id = 43, optional, fill = "TIM1_CC_IRQHandler" ); // TIM1 Capture Compare + vector ( id = 44, optional, fill = "TIM2_IRQHandler" ); // TIM2 + vector ( id = 45, optional, fill = "TIM3_IRQHandler" ); // TIM3 + vector ( id = 46, optional, fill = "TIM4_IRQHandler" ); // TIM4 + vector ( id = 47, optional, fill = "I2C1_EV_IRQHandler" ); // I2C1 Event + vector ( id = 48, optional, fill = "I2C1_ER_IRQHandler" ); // I2C1 Error + vector ( id = 49, optional, fill = "I2C2_EV_IRQHandler" ); // I2C2 Event + vector ( id = 50, optional, fill = "I2C2_ER_IRQHandler" ); // I2C2 Error + vector ( id = 51, optional, fill = "SPI1_IRQHandler" ); // SPI1 + vector ( id = 52, optional, fill = "SPI2_IRQHandler" ); // SPI2 + vector ( id = 53, optional, fill = "USART1_IRQHandler" ); // USART1 + vector ( id = 54, optional, fill = "USART2_IRQHandler" ); // USART2 + vector ( id = 55, optional, fill = "USART3_IRQHandler" ); // USART3 + vector ( id = 56, optional, fill = "EXTI15_10_IRQHandler" ); // EXTI Line 15..10 + vector ( id = 57, optional, fill = "RTCAlarm_IRQHandler" ); // RTC Alarm through EXTI Line + vector ( id = 58, optional, fill = "USBWakeUp_IRQHandler" ); // USB Wakeup from suspend + vector ( id = 59, optional, fill = "TIM8_BRK_TIM12_IRQHandler" ); // TIM8 Break + vector ( id = 60, optional, fill = "TIM8_UP_TIM13_IRQHandler" ); // TIM8 Update + vector ( id = 61, optional, fill = "TIM8_TRG_COM_TIM14_IRQHandler" ); // TIM8 Trigger and Commutation + vector ( id = 62, optional, fill = "TIM8_CC_IRQHandler" ); // TIM8 Capture Compare + vector ( id = 63, optional, fill = "ADC3_IRQHandler" ); // ADC3 + vector ( id = 64, optional, fill = "FSMC_IRQHandler" ); // FSMC + vector ( id = 65, optional, fill = "SDIO_IRQHandler" ); // SDIO + vector ( id = 66, optional, fill = "TIM5_IRQHandler" ); // TIM5 + vector ( id = 67, optional, fill = "SPI3_IRQHandler" ); // SPI3 + vector ( id = 68, optional, fill = "UART4_IRQHandler" ); // UART4 + vector ( id = 69, optional, fill = "UART5_IRQHandler" ); // UART5 + vector ( id = 70, optional, fill = "TIM6_IRQHandler" ); // TIM6 + vector ( id = 71, optional, fill = "TIM7_IRQHandler" ); // TIM7 + vector ( id = 72, optional, fill = "DMA2_Channel1_IRQHandler" ); // DMA2 Channel1 + vector ( id = 73, optional, fill = "DMA2_Channel2_IRQHandler" ); // DMA2 Channel2 + vector ( id = 74, optional, fill = "DMA2_Channel3_IRQHandler" ); // DMA2 Channel3 + vector ( id = 75, optional, fill = "DMA2_Channel4_5_IRQHandler" ); // DMA2 Channel4 and DMA2 Channel5 + } +} +# endif diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32303C_EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32303C_EVAL/.cproject new file mode 100644 index 0000000..276c0b8 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32303C_EVAL/.cproject @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + TASKING VX-toolset for ARM Cortex: object linker (TRIAL VERS v4.3r1 Build 142 + TASKING program builder v4.3r1 Build 068 + TASKING VX-toolset for ARM Cortex: assembler v4.3r1 Build 148 + TASKING VX-toolset for ARM Cortex: control program v4.3r1 Build 120 + TASKING VX-toolset for ARM Cortex: C compiler (TRIAL VERSION v4.3r1 Build 683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/.cproject new file mode 100644 index 0000000..058c9a6 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/.cproject @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TASKING VX-toolset for ARM Cortex: object linker (TRIAL VERS v4.3r1 Build 142 + TASKING program builder v4.3r1 Build 068 + TASKING VX-toolset for ARM Cortex: assembler v4.3r1 Build 148 + TASKING VX-toolset for ARM Cortex: control program v4.3r1 Build 120 + TASKING VX-toolset for ARM Cortex: C compiler (TRIAL VERSION v4.3r1 Build 683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/STM32373C_EVAL.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/STM32373C_EVAL.launch new file mode 100644 index 0000000..6c766c6 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/STM32373C_EVAL.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/TASKING/stm32f37x.lsl b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/TASKING/stm32f37x.lsl new file mode 100644 index 0000000..d8ba5b5 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32373C_EVAL/TASKING/stm32f37x.lsl @@ -0,0 +1,200 @@ +//////////////////////////////////////////////////////////////////////////// +// +// File : stm32f37x.lsl +// +// Version : @(#)stm32f37x.lsl 1.1 12/07/27 +// +// Description : LSL file for the STMicroelectronics STM32F37x +// +// Copyright 2012 Altium BV +// +// Macros specific to control this LSL file +// +// __MEMORY Define this macro to suppress definition of on-chip +// memory. Must be defined when you want to define on-chip +// in your project's LSL file. +// __FLASH_SIZE Specifies the size of flash memory to be allocated +// __SRAM_SIZE Specifies the size of the SRAM memory to be allocated +// __NO_DEFAULT_AUTO_VECTORS +// When enabled the interrupt vector table will not be +// generated +// __VECTOR_TABLE_RAM_COPY +// Define this macro to enable copying the vector table +// at startup from ROM to RAM. +// __VECTOR_TABLE_ROM_ADDR +// Specify the vector table address in ROM +// __VECTOR_TABLE_RAM_ADDR +// Specify the vector table address in RAM when the the +// it is copied from ROM to RAM (__VECTOR_TABLE_RAM_COPY) +// +// See arm_arch.lsl for more available macros. +// +// Notes: +// In the STM32F37x, 3 different boot modes can be selected +// - User Flash memory is selected as boot space +// - SystemMemory is selected as boot space +// - Embedded SRAM is selected as boot space +// +// This aliases the physical memory associated with each boot mode to Block +// 000 (0x00000000 boot memory). Even when aliased in the boot memory space, +// the related memory (Flash memory or SRAM) is still accessible at its +// original memory space. +// +//////////////////////////////////////////////////////////////////////////// + +#ifndef __NO_DEFAULT_AUTO_VECTORS +// Suppress the vectors as defined arm_arch.lsl, because we define our +// own vectors for CMSIS +#define __CMSIS_VECTORS 1 +#define __NO_DEFAULT_AUTO_VECTORS 1 +#define __NR_OF_VECTORS 98 +#endif + +#ifndef __VECTOR_TABLE_ROM_ADDR +# define __VECTOR_TABLE_ROM_ADDR 0x08000000 +#endif + +#ifndef __VECTOR_TABLE_RAM_ADDR +# define __VECTOR_TABLE_RAM_ADDR 0x20000000 +#endif + + +#ifndef __STACK +# define __STACK 4k +#endif + +#ifndef __HEAP +# define __HEAP 2k +#endif + +#include + +// +// If no memory is defined yet use the following memory settings +// +#ifndef __MEMORY + +// Specify default size for Flash and SRAM +#ifndef __FLASH_SIZE +# define __FLASH_SIZE 256k +#endif +#ifndef __SRAM_SIZE +# define __SRAM_SIZE 32k +#endif + +memory STM32F37x_Flash +{ + mau = 8; + type = rom; + size = __FLASH_SIZE; + map ( size = __FLASH_SIZE, dest_offset=0x08000000, dest=bus:ARM:local_bus); +} + +memory STM32F37x_SRAM +{ + mau = 8; + type = ram; + size = __SRAM_SIZE; + priority = 2; + map ( size = __SRAM_SIZE, dest_offset=0x20000000, dest=bus:ARM:local_bus); +} + +#endif /* __MEMORY */ + + +// +// Define the vector table for CMSIS +// +#ifdef __CMSIS_VECTORS +section_setup ::linear +{ + // vector table with handler addresses + vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_RUN_ADDR, + template = ".text.handler_address", + template_symbol = "_lc_vector_handler", + vector_prefix = "_vector_", + __VECTOR_TABLE_COPY_ATTRIBUTE + fill = loop, + no_inline + ) + { + vector ( id = 0, fill = "_lc_ub_stack" ); // Top of Stack + vector ( id = 1, fill = "Reset_Handler" ); // Reset Handler + vector ( id = 2, optional, fill = "NMI_Handler" ); // NMI Handler + vector ( id = 3, optional, fill = "HardFault_Handler" ); // Hard Fault Handler + vector ( id = 4, optional, fill = "MemManage_Handler" ); // MPU Fault Handler + vector ( id = 5, optional, fill = "BusFault_Handler" ); // Bus Fault Handler + vector ( id = 6, optional, fill = "UsageFault_Handler" ); // Usage Fault Handler + vector ( id = 11, optional, fill = "SVC_Handler" ); // SVCall Handler + vector ( id = 12, optional, fill = "DebugMon_Handler" ); // Debug Monitor Handler + vector ( id = 14, optional, fill = "PendSV_Handler" ); // PendSV Handler + vector ( id = 15, optional, fill = "SysTick_Handler" ); // SysTick Handler + + // External Interrupts : + vector ( id = 16, optional, fill = "WWDG_IRQHandler" ); // Window Watchdog + vector ( id = 17, optional, fill = "PVD_IRQHandler" ); // PVD through EXTI Line detect + vector ( id = 18, optional, fill = "TAMPER_STAMP_IRQHandler" ); // Tamper amd TimeStanp through EXTI + vector ( id = 19, optional, fill = "RTC_WKUP_IRQHandler" ); // RTC Wakeup through the EXTI line + vector ( id = 20, optional, fill = "FLASH_IRQHandler" ); // Flash global interrupt + vector ( id = 21, optional, fill = "RCC_IRQHandler" ); // RCC global interrupt + vector ( id = 22, optional, fill = "EXTI0_IRQHandler" ); // EXTI Line 0 interrupt + vector ( id = 23, optional, fill = "EXTI1_IRQHandler" ); // EXTI Line 1 interrupt + vector ( id = 24, optional, fill = "EXTI2_TS_IRQHandler" ); // EXTI2_TS_IRQHandler interrupt + vector ( id = 25, optional, fill = "EXTI3_IRQHandler" ); // EXTI Line 3 interrupt + vector ( id = 26, optional, fill = "EXTI4_IRQHandler" ); // EXTI Line 4 interrupt + vector ( id = 27, optional, fill = "DMA1_Channel1_IRQHandler" ); // DMA1 Channel 1 global interrupt + vector ( id = 28, optional, fill = "DMA1_Channel2_IRQHandler" ); // DMA1 Channel 2 global interrupt + vector ( id = 29, optional, fill = "DMA1_Channel3_IRQHandler" ); // DMA1 Channel 3 global interrupt + vector ( id = 30, optional, fill = "DMA1_Channel4_IRQHandler" ); // DMA1 Channel 4 global interrupt + vector ( id = 31, optional, fill = "DMA1_Channel5_IRQHandler" ); // DMA1 Channel 5 global interrupt + vector ( id = 32, optional, fill = "DMA1_Channel6_IRQHandler" ); // DMA1 Channel 6 global interrupt + vector ( id = 33, optional, fill = "DMA1_Channel7_IRQHandler" ); // DMA1 Channel 7 global interrupt + vector ( id = 34, optional, fill = "ADC1_IRQHandler" ); // ADC1 interrupts + vector ( id = 35, optional, fill = "CAN1_TX_IRQHandler" ); // CAN1 TX interrupts + vector ( id = 36, optional, fill = "CAN1_RX0_IRQHandler" ); // CAN1 RX0 interrupts + vector ( id = 37, optional, fill = "CAN1_RX1_IRQHandler" ); // CAN1 RX1 interrupt + vector ( id = 38, optional, fill = "CAN1_SCE_IRQHandler" ); // CAN1 SCE interrupt + vector ( id = 39, optional, fill = "EXTI9_5_IRQHandler" ); // EXTI Line 9..5 interrupts + vector ( id = 40, optional, fill = "TIM15_IRQHandler" ); // TIM15 global interrupt + vector ( id = 41, optional, fill = "TIM16_IRQHandler" ); // TIM16 global interrupt + vector ( id = 42, optional, fill = "TIM17_IRQHandler" ); // TIM17 global interrupt + vector ( id = 43, optional, fill = "TIM118_DAC2_IRQHandler" ); // TIM18 global Interrupt and DAC2 underrun Interrupt + vector ( id = 44, optional, fill = "TIM2_IRQHandler" ); // TIM2 global interrupt + vector ( id = 45, optional, fill = "TIM3_IRQHandler" ); // TIM3 global interrupt + vector ( id = 46, optional, fill = "TIM4_IRQHandler" ); // TIM4 global interrupt + vector ( id = 47, optional, fill = "I2C1_EV_IRQHandler" ); // I2C1 Event + vector ( id = 48, optional, fill = "I2C1_ER_IRQHandler" ); // I2C1 Error + vector ( id = 49, optional, fill = "I2C2_EV_IRQHandler" ); // I2C2 Event + vector ( id = 50, optional, fill = "I2C2_ER_IRQHandler" ); // I2C2 Error + vector ( id = 51, optional, fill = "SPI1_IRQHandler" ); // SPI1 global interrupt + vector ( id = 52, optional, fill = "SPI2_IRQHandler" ); // SPI2 global interrupt + vector ( id = 53, optional, fill = "USART1_IRQHandler" ); // USART1 global interrupt + vector ( id = 54, optional, fill = "USART2_IRQHandler" ); // USART2 global interrupt + vector ( id = 55, optional, fill = "USART3_IRQHandler" ); // USART3 global interrupt + vector ( id = 56, optional, fill = "EXTI15_10_IRQHandler" ); // EXTI Line 15..10 interrupts + vector ( id = 57, optional, fill = "RTC_Alarm_IRQHandler" ); // RTC Alarm through EXTI Line + vector ( id = 58, optional, fill = "CEC_IRQHandler" ); // CEC interrupt + vector ( id = 59, optional, fill = "TIM12_IRQHandler" ); // TIM12 global interrupt + vector ( id = 60, optional, fill = "TIM13_IRQHandler" ); // TIM13 global interrupt + vector ( id = 61, optional, fill = "TIM14_IRQHandler" ); // TIM14 global interrupt + vector ( id = 66, optional, fill = "TIM5_IRQHandler" ); // TIM5 global interrupt + vector ( id = 67, optional, fill = "SPI3_IRQHandler" ); // SPI3 global interrupt + vector ( id = 70, optional, fill = "TIM6_DAC1_IRQHandler" ); // TIM6 glbl irq, DAC1 CH1 & CH2 underrun err irqs + vector ( id = 71, optional, fill = "TIM7_IRQHandler" ); // TIM7 global interrupt + vector ( id = 72, optional, fill = "DMA2_Channel1_IRQHandler" ); // DMA2 Channel 1 global interrupt + vector ( id = 73, optional, fill = "DMA2_Channel2_IRQHandler" ); // DMA2 Channel 2 global interrupt + vector ( id = 74, optional, fill = "DMA2_Channel3_IRQHandler" ); // DMA2 Channel 3 global interrupt + vector ( id = 75, optional, fill = "DMA2_Channel4_IRQHandler" ); // DMA2 Channel 4 global interrupt + vector ( id = 76, optional, fill = "DMA2_Channel5_IRQHandler" ); // DMA2 Channel 5 global interrupt + vector ( id = 77, optional, fill = "SDADC1_IRQHandler" ); // ADC Sigma Delta 1 global Interrupt + vector ( id = 78, optional, fill = "SDADC2_IRQHandler" ); // ADC Sigma Delta 2 global Interrupt + vector ( id = 79, optional, fill = "SDADC3_IRQHandler" ); // ADC Sigma Delta 3 global Interrupt + vector ( id = 80, optional, fill = "COMP_IRQHandler" ); // COMP1 and COMP2 global interrupt + vector ( id = 90, optional, fill = "USB_HP_IRQHandler" ); // USB High Priority global Interrupt + vector ( id = 91, optional, fill = "USB_LP_IRQHandler" ); // USB Low Priority global Interrupt + vector ( id = 92, optional, fill = "USBWakeUp_IRQHandler" ); // USB Wakeup Interrupt + vector ( id = 94, optional, fill = "TIM19_IRQHandler" ); // TIM19 global Interrupt + vector ( id = 97, optional, fill = "FPU_IRQHandler" ); // Floating point Interrupt + } +} +#endif /* __CMSIS_VECTORS */ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.cproject new file mode 100644 index 0000000..24aeee3 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.cproject @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + TASKING VX-toolset for ARM Cortex: object linker (TRIAL VERS v4.3r1 Build 142 + TASKING program builder v4.3r1 Build 068 + TASKING VX-toolset for ARM Cortex: assembler v4.3r1 Build 148 + TASKING VX-toolset for ARM Cortex: control program v4.3r1 Build 120 + TASKING VX-toolset for ARM Cortex: C compiler (TRIAL VERSION v4.3r1 Build 683 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.project new file mode 100644 index 0000000..c34ba34 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152-EVAL/.project @@ -0,0 +1,237 @@ + + + STM32L152-EVAL + + + + + + com.tasking.arm.TskManagedBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + com.tasking.arm.target + + + + Doc + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + User + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32L1xx/CMSIS + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx/STM32L152_EVAL + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx/STM32L1xx_StdPeriph_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + STM32L1xx/CMSIS/system_stm32l1xx.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32l1xx.c + + + STM32L1xx/STM32L152_EVAL/stm32l152_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval.c + + + STM32L1xx/STM32L152_EVAL/stm32l152_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval_spi_sd.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/misc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_adc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_dma.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_flash.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_i2c.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_sdio.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.launch new file mode 100644 index 0000000..4635ffb --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.launch @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.project new file mode 100644 index 0000000..9672c54 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/.project @@ -0,0 +1,237 @@ + + + STM32L152D-EVAL + + + + + + com.tasking.arm.TskManagedBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + com.tasking.arm.target + + + + Doc + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + User + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32L1xx/CMSIS + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx/STM32L152D_EVAL + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + STM32L1xx/STM32L1xx_StdPeriph_Driver + 2 + PARENT-1-PROJECT_LOC/.metadata/Link + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + STM32L1xx/CMSIS/system_stm32l1xx.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32l1xx.c + + + STM32L1xx/STM32L152D_EVAL/stm32l152d_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152D_EVAL/stm32l152d_eval.c + + + STM32L1xx/STM32L152D_EVAL/stm32l152d_eval_sdio_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152D_EVAL/stm32l152d_eval_sdio_sd.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/misc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_adc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_dma.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_exti.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_flash.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_gpio.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_i2c.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_pwr.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_rcc.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_sdio.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c + + + STM32L1xx/STM32L1xx_StdPeriph_Driver/stm32l1xx_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_usart.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/TASKING/stm32l1xx_hd.lsl b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/TASKING/stm32l1xx_hd.lsl new file mode 100644 index 0000000..463038d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TASKING/STM32L152D-EVAL/TASKING/stm32l1xx_hd.lsl @@ -0,0 +1,205 @@ +/////////////////////////////////////////////////////////////////////////// +// +// File : stm32l1xx.lsl +// +// Version : @(#)stm32l1xx.lsl 1.5 11/06/30 +// +// Description : LSL file for the STMicroelectronics STM32L1xx +// +// Copyright 2010-2011 Altium BV +// +// Macros specific to control this LSL file +// +// __MEMORY Define this macro to suppress definition of on-chip +// memory. Must be defined when you want to define on-chip +// in your project's LSL file. +// __FLASH_SIZE Specifies the size of flash memory to be allocated +// __SRAM_SIZE Specifies the size of the SRAM memory to be allocated +// __EEPROM_SIZE Specifies the size of the EEPROM memory to be allocated +// __NO_DEFAULT_AUTO_VECTORS +// When enabled the interrupt vector table will not be +// generated +// __VECTOR_TABLE_RAM_COPY +// Define this macro to enable copying the vector table +// at startup from ROM to RAM. +// __VECTOR_TABLE_ROM_ADDR +// Specify the vector table address in ROM +// __VECTOR_TABLE_RAM_ADDR +// Specify the vector table address in RAM when the the +// it is copied from ROM to RAM (__VECTOR_TABLE_RAM_COPY) +// +// See arm_arch.lsl for more available macros. +// +// Notes: +// In the STM32L1xx, 3 different boot modes can be selected +// - User Flash memory is selected as boot space +// - SystemMemory is selected as boot space +// - Embedded SRAM is selected as boot space +// +// This aliases the physical memory associated with each boot mode to Block +// 000 (0x00000000 boot memory). Even when aliased in the boot memory space, +// the related memory (Flash memory or SRAM) is still accessible at its +// original memory space. +// +//////////////////////////////////////////////////////////////////////////// + +#ifndef __NO_DEFAULT_AUTO_VECTORS +// Suppress the vectors as defined arm_arch.lsl, because we define our +// own vectors for CMIS +#define __CMSIS_VECTORS 1 +#define __NO_DEFAULT_AUTO_VECTORS 1 +#define __NR_OF_VECTORS 73 +#endif + +#ifndef __VECTOR_TABLE_ROM_ADDR +# define __VECTOR_TABLE_ROM_ADDR 0x08000000 +#endif + +#ifndef __VECTOR_TABLE_RAM_ADDR +# define __VECTOR_TABLE_RAM_ADDR 0x00000000 +#endif + + +#ifndef __STACK +# define __STACK 4k +#endif + +#ifndef __HEAP +# define __HEAP 2k +#endif + +#include + +// +// If no memory is defined yet use the following memory settings +// +#ifndef __MEMORY + +// Specify default size for Flash and SRAM +#ifndef __FLASH_SIZE +# define __FLASH_SIZE 384k +#endif +#ifndef __SRAM_SIZE +# define __SRAM_SIZE 48k +#endif +#ifndef __EEPROM_SIZE +# define __EEPROM_SIZE 4k +#endif + +memory STM32L1xx_Flash +{ + mau = 8; + type = rom; + size = __FLASH_SIZE; + map ( size = __FLASH_SIZE, dest_offset=0x08000000, dest=bus:ARM:local_bus); +} + +memory STM32L1xx_EEPROM +{ + mau = 8; + type = reserved rom; + size = __EEPROM_SIZE; + map ( size = __EEPROM_SIZE, dest_offset=0x08080000, dest=bus:ARM:local_bus); +} + +memory STM32L1xx_SRAM +{ + mau = 8; + type = ram; + size = __SRAM_SIZE; + map ( size = __SRAM_SIZE, dest_offset=0x20000000, dest=bus:ARM:local_bus); +} + +#endif /* __MEMORY */ + + +// +// Custom vector table defines interrupts according to CMSIS standard +// +# if defined(__CPU_ARMV7M__) +section_setup ::linear +{ + // vector table with handler addresses + vector_table "vector_table" ( vector_size = 4, size = __NR_OF_VECTORS, run_addr = __VECTOR_TABLE_RUN_ADDR, + template = ".text.handler_address", + template_symbol = "_lc_vector_handler", + vector_prefix = "_vector_", + __VECTOR_TABLE_COPY_ATTRIBUTE + fill = loop, + no_inline + ) + { + vector ( id = 0, fill = "_lc_ub_stack" ); // Top of Stack + vector ( id = 1, fill = "Reset_Handler" ); // Reset Handler + vector ( id = 2, optional, fill = "NMI_Handler" ); + vector ( id = 3, optional, fill = "HardFault_Handler" ); + vector ( id = 4, optional, fill = "MemManage_Handler" ); + vector ( id = 5, optional, fill = "BusFault_Handler" ); + vector ( id = 6, optional, fill = "UsageFault_Handler" ); + vector ( id = 11, optional, fill = "SVC_Handler" ); + vector ( id = 12, optional, fill = "DebugMon_Handler" ); + vector ( id = 14, optional, fill = "PendSV_Handler" ); + vector ( id = 15, optional, fill = "SysTick_Handler" ); + + // External Interrupts : + vector ( id = 16, optional, fill = "WWDG_IRQHandler" ); // Window Watchdog + vector ( id = 17, optional, fill = "PVD_IRQHandler" ); // PVD through EXTI Line detect + vector ( id = 18, optional, fill = "TAMPER_STAMP_IRQHandler" ); // Tamper + vector ( id = 19, optional, fill = "RTC_WKUP_IRQHandler" ); // RTC + vector ( id = 20, optional, fill = "FLASH_IRQHandler" ); // Flash + vector ( id = 21, optional, fill = "RCC_IRQHandler" ); // RCC + vector ( id = 22, optional, fill = "EXTI0_IRQHandler" ); // EXTI Line 0 + vector ( id = 23, optional, fill = "EXTI1_IRQHandler" ); // EXTI Line 1 + vector ( id = 24, optional, fill = "EXTI2_IRQHandler" ); // EXTI Line 2 + vector ( id = 25, optional, fill = "EXTI3_IRQHandler" ); // EXTI Line 3 + vector ( id = 26, optional, fill = "EXTI4_IRQHandler" ); // EXTI Line 4 + vector ( id = 27, optional, fill = "DMA1_Channel1_IRQHandler" ); // DMA Channel 1 + vector ( id = 28, optional, fill = "DMA1_Channel2_IRQHandler" ); // DMA Channel 2 + vector ( id = 29, optional, fill = "DMA1_Channel3_IRQHandler" ); // DMA Channel 3 + vector ( id = 30, optional, fill = "DMA1_Channel4_IRQHandler" ); // DMA Channel 4 + vector ( id = 31, optional, fill = "DMA1_Channel5_IRQHandler" ); // DMA Channel 5 + vector ( id = 32, optional, fill = "DMA1_Channel6_IRQHandler" ); // DMA Channel 6 + vector ( id = 33, optional, fill = "DMA1_Channel7_IRQHandler" ); // DMA Channel 7 + vector ( id = 34, optional, fill = "ADC1_IRQHandler" ); // ADC1_IRQHandler + vector ( id = 35, optional, fill = "USB_HP_IRQHandler" ); // USB_HP_IRQHandler + vector ( id = 36, optional, fill = "USB_LP_IRQHandler" ); // USB_LP_IRQHandler + vector ( id = 37, optional, fill = "DAC_IRQHandler" ); // CAN1 RX1 + vector ( id = 38, optional, fill = "COMP_IRQHandler" ); // COMP_IRQHandler + vector ( id = 39, optional, fill = "EXTI9_5_IRQHandler" ); // EXTI Line 9..5 + vector ( id = 40, optional, fill = "LCD_IRQHandler" ); // LCD_IRQHandler + vector ( id = 41, optional, fill = "TIM9_IRQHandler" ); // TIM9_IRQHandler + vector ( id = 42, optional, fill = "TIM10_IRQHandler" ); // TIM10_IRQHandler + vector ( id = 43, optional, fill = "TIM11_IRQHandler" ); // TIM11_IRQHandler + vector ( id = 44, optional, fill = "TIM2_IRQHandler" ); // TIM2 + vector ( id = 45, optional, fill = "TIM3_IRQHandler" ); // TIM3 + vector ( id = 46, optional, fill = "TIM4_IRQHandler" ); // TIM4 + vector ( id = 47, optional, fill = "I2C1_EV_IRQHandler" ); // I2C1 Event + vector ( id = 48, optional, fill = "I2C1_ER_IRQHandler" ); // I2C1 Error + vector ( id = 49, optional, fill = "I2C2_EV_IRQHandler" ); // I2C2 Event + vector ( id = 50, optional, fill = "I2C2_ER_IRQHandler" ); // I2C2 Error + vector ( id = 51, optional, fill = "SPI1_IRQHandler" ); // SPI1 + vector ( id = 52, optional, fill = "SPI2_IRQHandler" ); // SPI2 + vector ( id = 53, optional, fill = "USART1_IRQHandler" ); // USART1 + vector ( id = 54, optional, fill = "USART2_IRQHandler" ); // USART2 + vector ( id = 55, optional, fill = "USART3_IRQHandler" ); // USART3 + vector ( id = 56, optional, fill = "EXTI15_10_IRQHandler" ); // EXTI Line 15..10 + vector ( id = 57, optional, fill = "RTC_Alarm_IRQHandler" ); // RTC Alarm through EXTI Line + vector ( id = 58, optional, fill = "USB_FS_WKUP_IRQHandler" ); // USB_FS_WKUP_IRQHandler + vector ( id = 59, optional, fill = "TIM6_IRQHandler" ); // TIM6_IRQHandler + vector ( id = 60, optional, fill = "TIM7_IRQHandler" ); // TIM7_IRQHandler + vector ( id = 61, optional, fill = "SDIO_IRQHandler" ); // SDIO_IRQHandler + vector ( id = 62, optional, fill = "TIM5_IRQHandler" ); //TIM5_IRQHandler + vector ( id = 63, optional, fill = "SPI3_IRQHandler" ); //SPI3_IRQHandler + vector ( id = 64, optional, fill = "UART4_IRQHandler" ); //UART4_IRQHandler + vector ( id = 65, optional, fill = "UART5_IRQHandler" ); //UART5_IRQHandler + vector ( id = 66, optional, fill = "DMA2_Channel1_IRQHandler" ); //DMA2_Channel1_IRQHandler + vector ( id = 67, optional, fill = "DMA2_Channel2_IRQHandler" ); //DMA2_Channel2_IRQHandler + vector ( id = 68, optional, fill = "DMA2_Channel3_IRQHandler" ); //DMA2_Channel3_IRQHandler + vector ( id = 69, optional, fill = "DMA2_Channel4_IRQHandler" ); //DMA2_Channel4_IRQHandler + vector ( id = 70, optional, fill = "DMA2_Channel5_IRQHandler" ); //DMA2_Channel5_IRQHandler + vector ( id = 71, optional, fill = "AES_IRQHandler" ); //AES_IRQHandler + vector ( id = 72, optional, fill = "COMP_ACQ_IRQHandler" ); //Comparator Channel Acquisition + + } +} +# endif diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.cproject new file mode 100644 index 0000000..7772f2a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.cproject @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.project new file mode 100644 index 0000000..48e3a74 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.project @@ -0,0 +1,291 @@ + + + STM3210B-EVAL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM3210B-EVAL/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM3210B_EVAL + 2 + virtual:/virtual + + + STM32F10x_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32f10x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f10x.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM3210B_EVAL/stm3210b_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210B_EVAL/stm3210b_eval.c + + + STM3210B_EVAL/stm3210b_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210B_EVAL/stm3210b_eval_spi_sd.c + + + STM32F10x_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c + + + TrueSTUDIO/startup_stm32f10x_md.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32F10x/Source/Templates/TrueSTUDIO/startup_stm32f10x_md.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/fsmc_nand.c + 1 + PARENT-2-PROJECT_LOC/src/fsmc_nand.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/nand_if.c + 1 + PARENT-2-PROJECT_LOC/src/nand_if.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..ba973b2 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Mon Mar 19 14:15:49 GMT+01:00 2012 +BOARD=STM3210B-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32F103VB +MCU_VENDOR=STMicroelectronics +MODEL=Lite +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=STMicroelectronics\u00AE STM32\u2122 +VERSION=2.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..cbbda89 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 16:43:25 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/CPATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/CPATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/append=true +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.316348137/appendContributed=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.316348137/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.316348137/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.316348137/append=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.316348137/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/STM3210B-EVAL.elf.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/STM3210B-EVAL.elf.launch new file mode 100644 index 0000000..eec22d7 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/STM3210B-EVAL.elf.launch @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld new file mode 100644 index 0000000..e0aa35c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210B-EVAL/stm32_flash.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F103VB Device with +** 128KByte FLASH, 20KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20005000; /* end of 20K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x800; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .ARM.attributes 0 : { *(.ARM.attributes) } + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..7768c2a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Mon Mar 19 14:16:40 GMT+01:00 2012 +BOARD=STM3210E-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32F103ZE +MCU_VENDOR=STMicroelectronics +MODEL=Lite +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=STMicroelectronics\u00AE STM32\u2122 +VERSION=2.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..aa0068a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 16:43:41 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/appendContributed=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/STM3210E-EVAL.elf.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/STM3210E-EVAL.elf.launch new file mode 100644 index 0000000..09aa202 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/STM3210E-EVAL.elf.launch @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/stm32_flash.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/stm32_flash.ld new file mode 100644 index 0000000..8320534 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL/stm32_flash.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F103ZE Device with +** 512KByte FLASH, 64KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20010000; /* end of 64K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x800; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .ARM.attributes 0 : { *(.ARM.attributes) } + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.cproject new file mode 100644 index 0000000..b543267 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.cproject @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.project new file mode 100644 index 0000000..4c1cd2c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.project @@ -0,0 +1,296 @@ + + + STM3210E-EVAL_XL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM32F103ZG/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM3210E_EVAL + 2 + virtual:/virtual + + + STM32F10x_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32f10x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f10x.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM3210E_EVAL/stm3210e_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval.c + + + STM3210E_EVAL/stm3210e_eval_sdio_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval_sdio_sd.c + + + STM32F10x_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/misc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_fsmc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c + + + STM32F10x_StdPeriph_Driver/stm32f10x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c + + + TrueSTUDIO/startup_stm32f10x_xl.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32F10x/Source/Templates/TrueSTUDIO/startup_stm32f10x_xl.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/fsmc_nand.c + 1 + PARENT-2-PROJECT_LOC/src/fsmc_nand.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/nand_if.c + 1 + PARENT-2-PROJECT_LOC/src/nand_if.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..f494c19 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 16:43:56 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/CPATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/CPATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/append=true +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.189815562/appendContributed=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.189815562/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.189815562/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.189815562/append=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.189815562/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/stm32_flash.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/stm32_flash.ld new file mode 100644 index 0000000..b1c6965 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM3210E-EVAL_XL/stm32_flash.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F103ZG Device with +** 1MByte FLASH, 96KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20018000; /* end of 96K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x800; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1M + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 96K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .ARM.attributes 0 : { *(.ARM.attributes) } + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.cproject new file mode 100644 index 0000000..730491d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.cproject @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.project new file mode 100644 index 0000000..ed7266d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.project @@ -0,0 +1,340 @@ + + + STM32303C-EVAL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?children? + ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\|| + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM3210E-EVAL/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM32303C_EVAL + 2 + virtual:/virtual + + + STM32F37x_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32f30x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f30x.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32303C_EVAL/stm32303c_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval.c + + + STM32303C_EVAL/stm32303c_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_spi_sd.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_adc.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_can.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_can.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_comp.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_comp.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_crc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_crc.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_dac.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_dac.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_dbgmcu.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_dbgmcu.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_dma.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_exti.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_flash.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_gpio.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_i2c.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_iwdg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_iwdg.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_misc.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_opamp.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_opamp.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_pwr.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_rcc.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_rtc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_rtc.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_spi.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_syscfg.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_tim.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_tim.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_usart.c + + + STM32F37x_StdPeriph_Driver/stm32f30x_wwdg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F30x_StdPeriph_Driver/src/stm32f30x_wwdg.c + + + TrueSTUDIO/startup_stm32f30x.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32F30x/Source/Templates/TrueSTUDIO/startup_stm32f30x.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..1341ab0 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 17:40:41 GMT+01:00 2012 +BOARD=STM32303C-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32F303VC +MCU_VENDOR=STMicroelectronics +MODEL=Pro +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=ARM\u00AE +VERSION=3.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..aa0068a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32303C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 16:43:41 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/appendContributed=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.cproject new file mode 100644 index 0000000..c50ce5b --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.cproject @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.project new file mode 100644 index 0000000..b7c9e1f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.project @@ -0,0 +1,345 @@ + + + STM32373C-EVAL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?children? + ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|\|| + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM3210E-EVAL/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM32373C_EVAL + 2 + virtual:/virtual + + + STM32F37x_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32f37x.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32f37x.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32373C_EVAL/stm32373c_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32373C_EVAL/stm32373c_eval.c + + + STM32373C_EVAL/stm32373c_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32373C_EVAL/stm32373c_eval_spi_sd.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_adc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_can.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_can.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_cec.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_cec.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_comp.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_comp.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_crc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_crc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_dac.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_dac.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_dbgmcu.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_dbgmcu.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_dma.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_exti.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_flash.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_gpio.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_i2c.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_iwdg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_iwdg.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_misc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_pwr.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_pwr.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_rcc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_rtc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_rtc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_sdadc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_sdadc.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_spi.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_syscfg.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_tim.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_tim.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_usart.c + + + STM32F37x_StdPeriph_Driver/stm32f37x_wwdg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32F37x_StdPeriph_Driver/src/stm32f37x_wwdg.c + + + TrueSTUDIO/startup_stm32f37x.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32F37x/Source/Templates/TrueSTUDIO/startup_stm32f37x.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..969048d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Fri Dec 14 08:51:00 GMT+01:00 2012 +BOARD=STM32373C-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32F373VC +MCU_VENDOR=STMicroelectronics +MODEL=Pro +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=ARM\u00AE +VERSION=3.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.core.prefs new file mode 100644 index 0000000..5ce5ba5 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,4 @@ +#Fri Dec 14 09:47:22 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/project/com.atollic.truestudio.exe.debug.311825581/append=true +environment/project/com.atollic.truestudio.exe.debug.311825581/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 0000000..aa0068a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,12 @@ +#Thu Dec 13 16:43:41 GMT+01:00 2012 +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/CPATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/delimiter=; +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.311825581/appendContributed=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/delimiter=; +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/append=true +environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.311825581/appendContributed=true diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32373C-EVAL.elf.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32373C-EVAL.elf.launch new file mode 100644 index 0000000..5bd9514 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32373C-EVAL.elf.launch @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32F373VC_FLASH.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32F373VC_FLASH.ld new file mode 100644 index 0000000..35c7d30 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32373C-EVAL/STM32F373VC_FLASH.ld @@ -0,0 +1,170 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for STM32F373VC Device with +** 256KByte FLASH, 32KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20008000; /* end of 32K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x100; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 256K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = LOADADDR(.data); + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM AT> FLASH + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + PROVIDE ( end = . ); + PROVIDE ( _end = . ); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.cproject new file mode 100644 index 0000000..25d858f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.cproject @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.project new file mode 100644 index 0000000..c0293a7 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.project @@ -0,0 +1,281 @@ + + + STM32L152-EVAL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM3210B-EVAL/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM32L152_EVAL + 2 + virtual:/virtual + + + STM32L1xx_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32l1xx.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32l1xx.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32L152_EVAL/stm32l152_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval.c + + + STM32L152_EVAL/stm32l152_eval_spi_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval_spi_sd.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_adc.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_dma.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_exti.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_flash.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_gpio.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_i2c.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_rcc.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_usart.c + + + STM32L1xx_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/misc.c + + + STM32L1xx_StdPeriph_Driver/stm32l1xx_spi.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_spi.c + + + STM32L1xx_StdPeriph_Driver/stm32l1xx_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c + + + TrueSTUDIO/startup_STM32L1xx_md.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_STM32L1xx_md.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..6159162 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Mon Mar 19 14:18:43 GMT+01:00 2012 +BOARD=STM32L152-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32L152VB +MCU_VENDOR=STMicroelectronics +MODEL=Lite +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=STMicroelectronics\u00AE STM32\u2122 +VERSION=2.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/STM32L152-EVAL.elf.launch b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/STM32L152-EVAL.elf.launch new file mode 100644 index 0000000..54665d9 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/STM32L152-EVAL.elf.launch @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/stm32_flash.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/stm32_flash.ld new file mode 100644 index 0000000..1be62d5 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152-EVAL/stm32_flash.ld @@ -0,0 +1,171 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for stm32l1xx_md Device with +** 128KByte FLASH, 16KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x20004000; /* end of 16K RAM */ + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x80; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.cproject b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.cproject new file mode 100644 index 0000000..be2da63 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.cproject @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.project b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.project new file mode 100644 index 0000000..3a6ee8a --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.project @@ -0,0 +1,286 @@ + + + STM32L152D-EVAL + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/STM3210B-EVAL/Debug} + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + CMSIS + 2 + virtual:/virtual + + + Doc + 2 + virtual:/virtual + + + STM32L152D_EVAL + 2 + virtual:/virtual + + + STM32L1xx_StdPeriph_Driver + 2 + virtual:/virtual + + + TrueSTUDIO + 2 + virtual:/virtual + + + USB-FS-Device_Driver + 2 + virtual:/virtual + + + User + 2 + virtual:/virtual + + + CMSIS/system_stm32l1xx.c + 1 + PARENT-2-PROJECT_LOC/src/system_stm32l1xx.c + + + Doc/readme.txt + 1 + PARENT-2-PROJECT_LOC/readme.txt + + + STM32L152D_EVAL/stm32l152D_eval.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152D_EVAL/stm32l152D_eval.c + + + STM32L152D_EVAL/stm32l152d_eval_sdio_sd.c + 1 + PARENT-4-PROJECT_LOC/Utilities/STM32_EVAL/STM32L152D_EVAL/stm32l152d_eval_sdio_sd.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_adc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_adc.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_dma.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_dma.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_exti.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_exti.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_flash.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_flash.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_gpio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_gpio.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_i2c.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_i2c.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_rcc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_rcc.c + + + STM32L1xx_StdPeriph_Driver/STM32L1xx_usart.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/STM32L1xx_usart.c + + + STM32L1xx_StdPeriph_Driver/misc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/misc.c + + + STM32L1xx_StdPeriph_Driver/stm32l1xx_fsmc.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_fsmc.c + + + STM32L1xx_StdPeriph_Driver/stm32l1xx_sdio.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_sdio.c + + + STM32L1xx_StdPeriph_Driver/stm32l1xx_syscfg.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32L1xx_StdPeriph_Driver/src/stm32l1xx_syscfg.c + + + TrueSTUDIO/startup_STM32L1xx_md.s + 1 + PARENT-4-PROJECT_LOC/Libraries/CMSIS/Device/ST/STM32L1xx/Source/Templates/TrueSTUDIO/startup_STM32L1xx_hd.s + + + USB-FS-Device_Driver/usb_core.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c + + + USB-FS-Device_Driver/usb_init.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_init.c + + + USB-FS-Device_Driver/usb_int.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_int.c + + + USB-FS-Device_Driver/usb_mem.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_mem.c + + + USB-FS-Device_Driver/usb_regs.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_regs.c + + + USB-FS-Device_Driver/usb_sil.c + 1 + PARENT-4-PROJECT_LOC/Libraries/STM32_USB-FS-Device_Driver/src/usb_sil.c + + + User/hw_config.c + 1 + PARENT-2-PROJECT_LOC/src/hw_config.c + + + User/main.c + 1 + PARENT-2-PROJECT_LOC/src/main.c + + + User/mass_mal.c + 1 + PARENT-2-PROJECT_LOC/src/mass_mal.c + + + User/memory.c + 1 + PARENT-2-PROJECT_LOC/src/memory.c + + + User/scsi_data.c + 1 + PARENT-2-PROJECT_LOC/src/scsi_data.c + + + User/stm32_it.c + 1 + PARENT-2-PROJECT_LOC/src/stm32_it.c + + + User/usb_bot.c + 1 + PARENT-2-PROJECT_LOC/src/usb_bot.c + + + User/usb_desc.c + 1 + PARENT-2-PROJECT_LOC/src/usb_desc.c + + + User/usb_endp.c + 1 + PARENT-2-PROJECT_LOC/src/usb_endp.c + + + User/usb_istr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_istr.c + + + User/usb_prop.c + 1 + PARENT-2-PROJECT_LOC/src/usb_prop.c + + + User/usb_pwr.c + 1 + PARENT-2-PROJECT_LOC/src/usb_pwr.c + + + User/usb_scsi.c + 1 + PARENT-2-PROJECT_LOC/src/usb_scsi.c + + + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs new file mode 100644 index 0000000..fa650d6 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/.settings/com.atollic.truestudio.debug.hardware_device.prefs @@ -0,0 +1,12 @@ +#Mon Mar 19 11:48:58 GMT+01:00 2012 +BOARD=STM32L152D-EVAL +CODE_LOCATION=FLASH +ENDIAN=Little-endian +MCU=STM32L152ZD +MCU_VENDOR=STMicroelectronics +MODEL=Lite +PROBE=ST-LINK +PROJECT_FORMAT_VERSION=2 +TARGET=STMicroelectronics\u00AE STM32\u2122 +VERSION=2.3.0 +eclipse.preferences.version=1 diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/stm32_flash.ld b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/stm32_flash.ld new file mode 100644 index 0000000..0d8b7b3 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/TrueSTUDIO/STM32L152D-EVAL/stm32_flash.ld @@ -0,0 +1,171 @@ +/* +***************************************************************************** +** +** File : stm32_flash.ld +** +** Abstract : Linker script for stm32l1xx_hd Device with +** 384KByte FLASH, 48KByte RAM +** +** Set heap size, stack size and stack location according +** to application requirements. +** +** Set memory bank area and size if external memory is used. +** +** Target : STMicroelectronics STM32 +** +** Environment : Atollic TrueSTUDIO(R) +** +** Distribution: The file is distributed “as is,” without any warranty +** of any kind. +** +** (c)Copyright Atollic AB. +** You may use this file as-is or modify it according to the needs of your +** project. Distribution of this file (unmodified or modified) is not +** permitted. Atollic AB permit registered Atollic TrueSTUDIO(R) users the +** rights to distribute the assembled, compiled & linked contents of this +** file as part of an application binary file, provided that it is built +** using the Atollic TrueSTUDIO(R) toolchain. +** +***************************************************************************** +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +/* Highest address of the user mode stack */ +_estack = 0x2000BFF8; + +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x800; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 384K + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 48K + MEMORY_B1 (rx) : ORIGIN = 0x60000000, LENGTH = 0K +} + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into FLASH */ + .isr_vector : + { + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } >FLASH + + /* The program code and other data goes into FLASH */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + + KEEP (*(.init)) + KEEP (*(.fini)) + + . = ALIGN(4); + _etext = .; /* define a global symbols at end of code */ + } >FLASH + + + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH + .ARM : { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } >FLASH + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array*)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH + + /* used by the startup to initialize data */ + _sidata = .; + + /* Initialized data sections goes into RAM, load LMA copy after code */ + .data : AT ( _sidata ) + { + . = ALIGN(4); + _sdata = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + + . = ALIGN(4); + _edata = .; /* define a global symbol at data end */ + } >RAM + + /* Uninitialized data section */ + . = ALIGN(4); + .bss : + { + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; /* define a global symbol at bss start */ + __bss_start__ = _sbss; + *(.bss) + *(.bss*) + *(COMMON) + + . = ALIGN(4); + _ebss = .; /* define a global symbol at bss end */ + __bss_end__ = _ebss; + } >RAM + + PROVIDE ( end = _ebss ); + PROVIDE ( _end = _ebss ); + + /* User_heap_stack section, used to check that there is enough RAM left */ + ._user_heap_stack : + { + . = ALIGN(4); + . = . + _Min_Heap_Size; + . = . + _Min_Stack_Size; + . = ALIGN(4); + } >RAM + + /* MEMORY_bank1 section, code must be located here explicitly */ + /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */ + .memory_b1_text : + { + *(.mb1text) /* .mb1text sections (code) */ + *(.mb1text*) /* .mb1text* sections (code) */ + *(.mb1rodata) /* read-only data (constants) */ + *(.mb1rodata*) + } >MEMORY_B1 + + /* Remove information from the standard libraries */ + /DISCARD/ : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + + .ARM.attributes 0 : { *(.ARM.attributes) } +} diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/fsmc_nand.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/fsmc_nand.h new file mode 100644 index 0000000..9bdee98 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/fsmc_nand.h @@ -0,0 +1,112 @@ +/** + ****************************************************************************** + * @file fsmc_nand.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Header for fsmc_nand.c file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __FSMC_NAND_H +#define __FSMC_NAND_H + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f10x.h" + +/* Exported types ------------------------------------------------------------*/ +typedef struct +{ + uint8_t Maker_ID; + uint8_t Device_ID; + uint8_t Third_ID; + uint8_t Fourth_ID; +}NAND_IDTypeDef; + +typedef struct +{ + uint16_t Zone; + uint16_t Block; + uint16_t Page; +} NAND_ADDRESS; + +/* Exported constants --------------------------------------------------------*/ +/* NAND Area definition for STM3210E-EVAL Board RevD */ +#define CMD_AREA (uint32_t)(1<<16) /* A16 = CLE high */ +#define ADDR_AREA (uint32_t)(1<<17) /* A17 = ALE high */ + +#define DATA_AREA ((uint32_t)0x00000000) + +/* FSMC NAND memory command */ +#define NAND_CMD_AREA_A ((uint8_t)0x00) +#define NAND_CMD_AREA_B ((uint8_t)0x01) +#define NAND_CMD_AREA_C ((uint8_t)0x50) +#define NAND_CMD_AREA_TRUE1 ((uint8_t)0x30) + +#define NAND_CMD_WRITE0 ((uint8_t)0x80) +#define NAND_CMD_WRITE_TRUE1 ((uint8_t)0x10) + +#define NAND_CMD_ERASE0 ((uint8_t)0x60) +#define NAND_CMD_ERASE1 ((uint8_t)0xD0) + +#define NAND_CMD_READID ((uint8_t)0x90) +#define NAND_CMD_STATUS ((uint8_t)0x70) +#define NAND_CMD_LOCK_STATUS ((uint8_t)0x7A) +#define NAND_CMD_RESET ((uint8_t)0xFF) + +/* NAND memory status */ +#define NAND_VALID_ADDRESS ((uint32_t)0x00000100) +#define NAND_INVALID_ADDRESS ((uint32_t)0x00000200) +#define NAND_TIMEOUT_ERROR ((uint32_t)0x00000400) +#define NAND_BUSY ((uint32_t)0x00000000) +#define NAND_ERROR ((uint32_t)0x00000001) +#define NAND_READY ((uint32_t)0x00000040) + +/* FSMC NAND memory parameters */ +#define NAND_PAGE_SIZE ((uint16_t)0x0200) /* 512 bytes per page w/o Spare Area */ +#define NAND_BLOCK_SIZE ((uint16_t)0x0020) /* 32x512 bytes pages per block */ +#define NAND_ZONE_SIZE ((uint16_t)0x0400) /* 1024 Block per zone */ +#define NAND_SPARE_AREA_SIZE ((uint16_t)0x0010) /* last 16 bytes as spare area */ +#define NAND_MAX_ZONE ((uint16_t)0x0004) /* 4 zones of 1024 block */ + +/* FSMC NAND memory address computation */ +#define ADDR_1st_CYCLE(ADDR) (uint8_t)((ADDR)& 0xFF) /* 1st addressing cycle */ +#define ADDR_2nd_CYCLE(ADDR) (uint8_t)(((ADDR)& 0xFF00) >> 8) /* 2nd addressing cycle */ +#define ADDR_3rd_CYCLE(ADDR) (uint8_t)(((ADDR)& 0xFF0000) >> 16) /* 3rd addressing cycle */ +#define ADDR_4th_CYCLE(ADDR) (uint8_t)(((ADDR)& 0xFF000000) >> 24) /* 4th addressing cycle */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +void FSMC_NAND_Init(void); +void FSMC_NAND_ReadID(NAND_IDTypeDef* NAND_ID); +uint32_t FSMC_NAND_WriteSmallPage(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumPageToWrite); +uint32_t FSMC_NAND_ReadSmallPage (uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumPageToRead); +uint32_t FSMC_NAND_WriteSpareArea(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumSpareAreaTowrite); +uint32_t FSMC_NAND_ReadSpareArea(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumSpareAreaToRead); +uint32_t FSMC_NAND_EraseBlock(NAND_ADDRESS Address); +uint32_t FSMC_NAND_Reset(void); +uint32_t FSMC_NAND_GetStatus(void); +uint32_t FSMC_NAND_ReadStatus(void); +uint32_t FSMC_NAND_AddressIncrement(NAND_ADDRESS* Address); + +#endif /* __FSMC_NAND_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/mass_mal.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/mass_mal.h new file mode 100644 index 0000000..4374449 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/mass_mal.h @@ -0,0 +1,49 @@ +/** + ****************************************************************************** + * @file mass_mal.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Header for mass_mal.c file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MASS_MAL_H +#define __MASS_MAL_H + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +#define MAL_OK 0 +#define MAL_FAIL 1 +#define MAX_LUN 1 + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ + +uint16_t MAL_Init (uint8_t lun); +uint16_t MAL_GetStatus (uint8_t lun); +uint16_t MAL_Read(uint8_t lun, uint32_t Memory_Offset, uint32_t *Readbuff, uint16_t Transfer_Length); +uint16_t MAL_Write(uint8_t lun, uint32_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length); +#endif /* __MASS_MAL_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/memory.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/memory.h new file mode 100644 index 0000000..3cc19a7 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/memory.h @@ -0,0 +1,46 @@ +/** + ****************************************************************************** + * @file memory.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Memory management layer + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __memory_H +#define __memory_H + +/* Includes ------------------------------------------------------------------*/ +#include "hw_config.h" +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +#define TXFR_IDLE 0 +#define TXFR_ONGOING 1 + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +void Write_Memory (uint8_t lun, uint32_t Memory_Offset, uint32_t Transfer_Length); +void Read_Memory (uint8_t lun, uint32_t Memory_Offset, uint32_t Transfer_Length); +#endif /* __memory_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/platform_config.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/platform_config.h new file mode 100644 index 0000000..609b2fb --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/platform_config.h @@ -0,0 +1,224 @@ +/** + ****************************************************************************** + * @file platform_config.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Evaluation board specific configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __PLATFORM_CONFIG_H +#define __PLATFORM_CONFIG_H + +/* Includes ------------------------------------------------------------------*/ + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + #include "stm32l1xx.h" + + #if defined (USE_STM32L152_EVAL) + #include "stm32l152_eval.h" + #include "stm32l152_eval_spi_sd.h" + +#elif defined (USE_STM32L152D_EVAL) + #include "stm32l152d_eval_sdio_sd.h" + #include "stm32l152d_eval.h" + +#else + #error "Missing define: USE_STM32L152_EVAL or USE_STM32L152D_EVAL" + #endif /* USE_STM32L152_EVAL */ + +#elif defined (STM32F10X_MD) || defined (STM32F10X_HD) || defined (STM32F10X_XL) + #include "stm32f10x.h" + #if defined (USE_STM3210B_EVAL) + #include "stm3210b_eval.h" + #include "stm3210b_eval_spi_sd.h" + #elif defined (USE_STM3210E_EVAL) + #include "stm3210e_eval_sdio_sd.h" + #include "stm3210e_eval.h" + #include "fsmc_nand.h" + #include "nand_if.h" + #else + #error "Missing define: USE_STM3210B_EVAL or USE_STM3210E_EVAL" + #endif /* USE_STM3210B_EVAL */ + +#elif defined (USE_STM32373C_EVAL) + #include "stm32f37x.h" + #include "stm32373c_eval.h" + #include "stm32373c_eval_spi_sd.h" + +#elif defined (USE_STM32303C_EVAL) + #include "stm32f30x.h" + #include "stm32303c_eval.h" + #include "stm32303c_eval_spi_sd.h" +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Uncomment the line corresponding to the STMicroelectronics evaluation board + used to run the example */ +#if !defined (USE_STM3210B_EVAL) && !defined (USE_STM3210E_EVAL) && !defined (USE_STM32L152_EVAL) && !defined (USE_STM32L152D_EVAL)&& !defined (USE_STM32373C_EVAL) && !defined (USE_STM32303C_EVAL) + //#define USE_STM3210B_EVAL + //#define USE_STM3210E_EVAL + //#define USE_STM32L152_EVAL +//#define USE_STM32L152D_EVAL +//#define USE_STM32373C_EVAL + #define USE_STM32303C_EVAL +#endif + +/*Unique Devices IDs register set*/ + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD) || defined(STM32L1XX_MD_PLUS) + +#define ID1 (0x1FF80050) +#define ID2 (0x1FF80054) +#define ID3 (0x1FF80064) + +#elif defined (STM32F37X) || defined(STM32F30X) + +#define ID1 (0x1FFFF7AC) +#define ID2 (0x1FFFF7B0) +#define ID3 (0x1FFFF7B4) + +#else /*STM32F1x*/ + +#define ID1 (0x1FFFF7E8) +#define ID2 (0x1FFFF7EC) +#define ID3 (0x1FFFF7F0) + +#endif + + +#define RCC_AHBPeriph_ALLGPIO (RCC_AHBPeriph_GPIOA \ + | RCC_AHBPeriph_GPIOB \ + | RCC_AHBPeriph_GPIOC \ + | RCC_AHBPeriph_GPIOD \ + | RCC_AHBPeriph_GPIOE \ + | RCC_AHBPeriph_GPIOF ) +/* Define the STM32F10x hardware depending on the used evaluation board */ +#ifdef USE_STM3210B_EVAL + #define USB_DISCONNECT GPIOD + #define USB_DISCONNECT_PIN GPIO_Pin_9 + #define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOD + #define ADC1_DR_Address ((uint32_t)0x4001244C) + +#elif defined (USE_STM3210E_EVAL) + #define USB_DISCONNECT GPIOB + #define USB_DISCONNECT_PIN GPIO_Pin_14 + #define RCC_APB2Periph_GPIO_DISCONNECT RCC_APB2Periph_GPIOB + #define ADC1_DR_Address ((uint32_t)0x4001244C) + +#elif defined (USE_STM32L152_EVAL) || defined (USE_STM32L152D_EVAL) + /* + For STM32L15xx devices it is possible to use the internal USB pullup + controlled by register SYSCFG_PMC (refer to RM0038 reference manual for + more details). + It is also possible to use external pullup (and disable the internal pullup) + by setting the define USB_USE_EXTERNAL_PULLUP in file platform_config.h + and configuring the right pin to be used for the external pull up configuration. + To have more details on how to use an external pull up, please refer to + STM3210E-EVAL evaluation board manuals. + */ + /* Uncomment the following define to use an external pull up instead of the + integrated STM32L15xx internal pull up. In this case make sure to set up + correctly the external required hardware and the GPIO defines below.*/ +/* #define USB_USE_EXTERNAL_PULLUP */ + + #if !defined(USB_USE_EXTERNAL_PULLUP) + #define STM32L15_USB_CONNECT SYSCFG_USBPuCmd(ENABLE) + #define STM32L15_USB_DISCONNECT SYSCFG_USBPuCmd(DISABLE) + #define RCC_AHBPeriph_GPIO_DISCONNECT 0 + + #elif defined(USB_USE_EXTERNAL_PULLUP) + /* PA0 is chosen just as illustrating example, you should modify the defines + below according to your hardware configuration. */ + #define USB_DISCONNECT GPIOA + #define USB_DISCONNECT_PIN GPIO_Pin_0 + #define RCC_AHBPeriph_GPIO_DISCONNECT RCC_AHBPeriph_GPIOA + #define STM32L15_USB_CONNECT GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN) + #define STM32L15_USB_DISCONNECT GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN) + #endif /* USB_USE_EXTERNAL_PULLUP */ + + #define ADC1_DR_Address ((uint32_t)0x40012458) + +#endif /* USE_STM3210B_EVAL */ + +#if defined (USE_STM32373C_EVAL) + #define USB_DISCONNECT GPIOC + #define USB_DISCONNECT_PIN GPIO_Pin_5 + #define RCC_AHBPeriph_GPIO_DISCONNECT RCC_AHBPeriph_GPIOC +#endif +#if defined (USE_STM32303C_EVAL) + #define USB_DISCONNECT GPIOB + #define USB_DISCONNECT_PIN GPIO_Pin_8 + #define RCC_AHBPeriph_GPIO_DISCONNECT RCC_AHBPeriph_GPIOB +#endif + +#if defined (USE_STM32L152_EVAL) + + #define RCC_AHBPeriph_GPIO_IOAIN RCC_AHBPeriph_GPIOB + #define GPIO_IOAIN GPIOB + #define GPIO_IOAIN_PIN GPIO_Pin_12 /* PB.12 */ + #define ADC_AIN_CHANNEL ADC_Channel_18 + +#elif defined (USE_STM32L152D_EVAL) + + #define RCC_AHBPeriph_GPIO_IOAIN RCC_AHBPeriph_GPIOF + #define GPIO_IOAIN GPIOF + #define GPIO_IOAIN_PIN GPIO_Pin_10 /* PF.10 */ + #define ADC_AIN_CHANNEL ADC_Channel_31 + +#elif defined (USE_STM32373C_EVAL) + + #define ADC1_DR_Address 0x4001244C + + #define RCC_AHBPeriph_GPIO_IOAIN RCC_AHBPeriph_GPIOB + #define GPIO_IOAIN GPIOB + #define GPIO_IOAIN_PIN GPIO_Pin_1 /* PB.1 */ + #define ADC_AIN_CHANNEL ADC_Channel_9 + #define GPIO_Mode_AIN GPIO_Mode_AN + +#elif defined (USE_STM32303C_EVAL) + + #define ADC1_DR_Address 0x5000030C + + #define RCC_AHBPeriph_GPIO_IOAIN RCC_AHBPeriph_GPIOC + #define GPIO_IOAIN GPIOC + #define GPIO_IOAIN_PIN GPIO_Pin_1 /* PC.1 */ + #define ADC_AIN_CHANNEL ADC_Channel_7 + #define GPIO_Mode_AIN GPIO_Mode_AN + +#else + #define RCC_APB2Periph_GPIO_IOAIN RCC_APB2Periph_GPIOC + #define GPIO_IOAIN GPIOC + #define GPIO_IOAIN_PIN GPIO_Pin_4 /* PC.04 */ + #define ADC_AIN_CHANNEL ADC_Channel_14 + +#endif /* USE_STM32L152_EVAL */ + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ + +#endif /* __PLATFORM_CONFIG_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32_it.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32_it.h new file mode 100644 index 0000000..7c4b238 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32_it.h @@ -0,0 +1,57 @@ +/** + ****************************************************************************** + * @file stm32_it.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32_IT_H +#define __STM32_IT_H + +/* Includes ------------------------------------------------------------------*/ +#include "platform_config.h" + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ + +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +void USB_LP_CAN1_RX0_IRQHandler(void); +void DMA1_Channel1_IRQHandler(void); +void EXTI9_5_IRQHandler(void); +void EXTI15_10_IRQHandler(void); + +#endif /* __STM32_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f10x_conf.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f10x_conf.h new file mode 100644 index 0000000..e08299d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f10x_conf.h @@ -0,0 +1,85 @@ +/** + ****************************************************************************** + * @file stm32f10x_conf.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Library configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F10x_CONF_H +#define __STM32F10x_CONF_H + +/* Includes ------------------------------------------------------------------*/ +/* Uncomment the line below to enable peripheral header file inclusion */ +#include "stm32f10x_adc.h" +#include "stm32f10x_bkp.h" +#include "stm32f10x_can.h" +#include "stm32f10x_crc.h" +#include "stm32f10x_dac.h" +#include "stm32f10x_dbgmcu.h" +#include "stm32f10x_dma.h" +#include "stm32f10x_exti.h" +#include "stm32f10x_flash.h" +#include "stm32f10x_fsmc.h" +#include "stm32f10x_gpio.h" +#include "stm32f10x_i2c.h" +#include "stm32f10x_iwdg.h" +#include "stm32f10x_pwr.h" +#include "stm32f10x_rcc.h" +#include "stm32f10x_rtc.h" +#include "stm32f10x_sdio.h" +#include "stm32f10x_spi.h" +#include "stm32f10x_tim.h" +#include "stm32f10x_usart.h" +#include "stm32f10x_wwdg.h" +#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Uncomment the line below to expanse the "assert_param" macro in the + Standard Peripheral Library drivers code */ +/* #define USE_FULL_ASSERT 1 */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT + +/******************************************************************************* +* Macro Name : assert_param +* Description : The assert_param macro is used for function's parameters check. +* Input : - expr: If expr is false, it calls assert_failed function +* which reports the name of the source file and the source +* line number of the call that failed. +* If expr is true, it returns no value. +* Return : None +*******************************************************************************/ + #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0) +#endif /* USE_FULL_ASSERT */ + +#endif /* __STM32F10x_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f30x_conf.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f30x_conf.h new file mode 100644 index 0000000..e716105 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f30x_conf.h @@ -0,0 +1,82 @@ +/** + ****************************************************************************** + * @file stm32f30x_conf.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Library configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F30X_CONF_H +#define __STM32F30X_CONF_H + +/* Includes ------------------------------------------------------------------*/ +/* Comment the line below to disable peripheral header file inclusion */ +#include "stm32f30x_adc.h" +#include "stm32f30x_can.h" +#include "stm32f30x_crc.h" +#include "stm32f30x_comp.h" +#include "stm32f30x_dac.h" +#include "stm32f30x_dbgmcu.h" +#include "stm32f30x_dma.h" +#include "stm32f30x_exti.h" +#include "stm32f30x_flash.h" +#include "stm32f30x_gpio.h" +#include "stm32f30x_syscfg.h" +#include "stm32f30x_i2c.h" +#include "stm32f30x_iwdg.h" +#include "stm32f30x_opamp.h" +#include "stm32f30x_pwr.h" +#include "stm32f30x_rcc.h" +#include "stm32f30x_rtc.h" +#include "stm32f30x_spi.h" +#include "stm32f30x_tim.h" +#include "stm32f30x_usart.h" +#include "stm32f30x_wwdg.h" +#include "stm32f30x_misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Uncomment the line below to expanse the "assert_param" macro in the + Standard Peripheral Library drivers code */ +/* #define USE_FULL_ASSERT 1 */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT + +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function which reports + * the name of the source file and the source line number of the call + * that failed. If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0) +#endif /* USE_FULL_ASSERT */ + +#endif /* __STM32F30X_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f37x_conf.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f37x_conf.h new file mode 100644 index 0000000..3d39101 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32f37x_conf.h @@ -0,0 +1,83 @@ +/** + ****************************************************************************** + * @file stm32f37x_conf.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Library configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F37X_CONF_H +#define __STM32F37X_CONF_H + +/* Includes ------------------------------------------------------------------*/ +/* Comment the line below to disable peripheral header file inclusion */ +#include "stm32f37x_adc.h" +#include "stm32f37x_can.h" +#include "stm32f37x_cec.h" +#include "stm32f37x_crc.h" +#include "stm32f37x_comp.h" +#include "stm32f37x_dac.h" +#include "stm32f37x_dbgmcu.h" +#include "stm32f37x_dma.h" +#include "stm32f37x_exti.h" +#include "stm32f37x_flash.h" +#include "stm32f37x_gpio.h" +#include "stm32f37x_syscfg.h" +#include "stm32f37x_i2c.h" +#include "stm32f37x_iwdg.h" +#include "stm32f37x_pwr.h" +#include "stm32f37x_rcc.h" +#include "stm32f37x_rtc.h" +#include "stm32f37x_sdadc.h" +#include "stm32f37x_spi.h" +#include "stm32f37x_tim.h" +#include "stm32f37x_usart.h" +#include "stm32f37x_wwdg.h" +#include "stm32f37x_misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Uncomment the line below to expanse the "assert_param" macro in the + Standard Peripheral Library drivers code */ +/* #define USE_FULL_ASSERT 1 */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT + +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function which reports + * the name of the source file and the source line number of the call + * that failed. If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0) +#endif /* USE_FULL_ASSERT */ + +#endif /* __STM32F37X_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32l1xx_conf.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32l1xx_conf.h new file mode 100644 index 0000000..42c3a01 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/stm32l1xx_conf.h @@ -0,0 +1,83 @@ +/** + ****************************************************************************** + * @file stm32l1xx_conf.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Library configuration file. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32L1xx_CONF_H +#define __STM32L1xx_CONF_H + +/* Includes ------------------------------------------------------------------*/ +/* Uncomment the line below to enable peripheral header file inclusion */ +#include "stm32l1xx_adc.h" +#include "stm32l1xx_crc.h" +#include "stm32l1xx_comp.h" +#include "stm32l1xx_dac.h" +#include "stm32l1xx_dbgmcu.h" +#include "stm32l1xx_dma.h" +#include "stm32l1xx_exti.h" +#include "stm32l1xx_flash.h" +#include "stm32l1xx_gpio.h" +#include "stm32l1xx_syscfg.h" +#include "stm32l1xx_i2c.h" +#include "stm32l1xx_iwdg.h" +#include "stm32l1xx_lcd.h" +#include "stm32l1xx_pwr.h" +#include "stm32l1xx_rcc.h" +#include "stm32l1xx_rtc.h" +#include "stm32l1xx_spi.h" +#include "stm32l1xx_tim.h" +#include "stm32l1xx_usart.h" +#include "stm32l1xx_wwdg.h" +#include "stm32l1xx_sdio.h" +#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Uncomment the line below to expanse the "assert_param" macro in the + Standard Peripheral Library drivers code */ +/* #define USE_FULL_ASSERT 1 */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT + +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval : None + */ + #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0) +#endif /* USE_FULL_ASSERT */ + +#endif /* __STM32L1xx_CONF_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_desc.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_desc.h new file mode 100644 index 0000000..f3f7d31 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_desc.h @@ -0,0 +1,69 @@ +/** + ****************************************************************************** + * @file usb_desc.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Descriptor Header for Custom HID Demo + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_DESC_H +#define __USB_DESC_H + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported define -----------------------------------------------------------*/ +#define USB_DEVICE_DESCRIPTOR_TYPE 0x01 +#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 +#define USB_STRING_DESCRIPTOR_TYPE 0x03 +#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 +#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 + +#define HID_DESCRIPTOR_TYPE 0x21 +#define CUSTOMHID_SIZ_HID_DESC 0x09 +#define CUSTOMHID_OFF_HID_DESC 0x12 + +#define Composite_SIZ_DEVICE_DESC 18 +#define Composite_SIZ_CONFIG_DESC 64 +#define CUSTOMHID_SIZ_REPORT_DESC 143 +#define Composite_SIZ_STRING_LANGID 4 +#define Composite_SIZ_STRING_VENDOR 38 +#define Composite_SIZ_STRING_PRODUCT 48 +#define Composite_SIZ_STRING_SERIAL 26 + +#define STANDARD_ENDPOINT_DESC_SIZE 0x09 + +/* Exported functions ------------------------------------------------------- */ +extern const uint8_t Composite_DeviceDescriptor[Composite_SIZ_DEVICE_DESC]; +extern const uint8_t Composite_ConfigDescriptor[Composite_SIZ_CONFIG_DESC]; +extern const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC]; +extern const uint8_t Composite_StringLangID[Composite_SIZ_STRING_LANGID]; +extern const uint8_t Composite_StringVendor[Composite_SIZ_STRING_VENDOR]; +extern const uint8_t Composite_StringProduct[Composite_SIZ_STRING_PRODUCT]; +extern uint8_t Composite_StringSerial[Composite_SIZ_STRING_SERIAL]; + +#endif /* __USB_DESC_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_istr.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_istr.h new file mode 100644 index 0000000..017dce7 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_istr.h @@ -0,0 +1,95 @@ +/** + ****************************************************************************** + * @file usb_istr.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief This file includes the peripherals header files in the user application. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_ISTR_H +#define __USB_ISTR_H + +/* Includes ------------------------------------------------------------------*/ +#include "usb_conf.h" + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ + + void USB_Istr(void); + +/* function prototypes Automatically built defining related macros */ + +void EP1_IN_Callback(void); +void EP2_IN_Callback(void); +void EP3_IN_Callback(void); +void EP4_IN_Callback(void); +void EP5_IN_Callback(void); +void EP6_IN_Callback(void); +void EP7_IN_Callback(void); + +void EP1_OUT_Callback(void); +void EP2_OUT_Callback(void); +void EP3_OUT_Callback(void); +void EP4_OUT_Callback(void); +void EP5_OUT_Callback(void); +void EP6_OUT_Callback(void); +void EP7_OUT_Callback(void); + + +#ifdef CTR_CALLBACK +void CTR_Callback(void); +#endif + +#ifdef DOVR_CALLBACK +void DOVR_Callback(void); +#endif + +#ifdef ERR_CALLBACK +void ERR_Callback(void); +#endif + +#ifdef WKUP_CALLBACK +void WKUP_Callback(void); +#endif + +#ifdef SUSP_CALLBACK +void SUSP_Callback(void); +#endif + +#ifdef RESET_CALLBACK +void RESET_Callback(void); +#endif + +#ifdef SOF_CALLBACK +void SOF_Callback(void); +#endif + +#ifdef ESOF_CALLBACK +void ESOF_Callback(void); +#endif + +#endif /*__USB_ISTR_H*/ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_prop.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_prop.h new file mode 100644 index 0000000..a43ee70 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_prop.h @@ -0,0 +1,89 @@ +/** + ****************************************************************************** + * @file usb_prop.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief All processing related to Custom HID demo + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_PROP_H +#define __USB_PROP_H + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +typedef enum _HID_REQUESTS +{ + GET_REPORT = 1, + GET_IDLE, + GET_PROTOCOL, + + SET_REPORT = 9, + SET_IDLE, + SET_PROTOCOL +} HID_REQUESTS; + +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +void CustomHID_init(void); +void CustomHID_Reset(void); +void CustomHID_SetConfiguration(void); +void CustomHID_SetDeviceAddress (void); +void CustomHID_Status_In (void); +void CustomHID_Status_Out (void); +RESULT CustomHID_Data_Setup(uint8_t); +RESULT CustomHID_NoData_Setup(uint8_t); +RESULT CustomHID_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting); +uint8_t *CustomHID_GetDeviceDescriptor(uint16_t ); +uint8_t *CustomHID_GetConfigDescriptor(uint16_t); +uint8_t *CustomHID_GetStringDescriptor(uint16_t); +RESULT CustomHID_SetProtocol(void); +uint8_t *CustomHID_GetProtocolValue(uint16_t Length); +RESULT CustomHID_SetProtocol(void); +uint8_t *CustomHID_GetReportDescriptor(uint16_t Length); +uint8_t *CustomHID_GetHIDDescriptor(uint16_t Length); +void CustomHID_ClearFeature(void); + +/* MASS Storage Requests*/ +#define GET_MAX_LUN 0xFE +#define MASS_STORAGE_RESET 0xFF +#define LUN_DATA_LENGTH 1 + + +/* Exported define -----------------------------------------------------------*/ +#define CustomHID_GetConfiguration NOP_Process +//#define CustomHID_SetConfiguration NOP_Process +#define CustomHID_GetInterface NOP_Process +#define CustomHID_SetInterface NOP_Process +#define CustomHID_GetStatus NOP_Process +//#define CustomHID_ClearFeature NOP_Process +#define CustomHID_SetEndPointFeature NOP_Process +#define CustomHID_SetDeviceFeature NOP_Process +//#define CustomHID_SetDeviceAddress NOP_Process + +#define REPORT_DESCRIPTOR 0x22 + +#endif /* __USB_PROP_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_pwr.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_pwr.h new file mode 100644 index 0000000..b15860c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_pwr.h @@ -0,0 +1,70 @@ +/** + ****************************************************************************** + * @file usb_pwr.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Connection/disconnection & power management header + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_PWR_H +#define __USB_PWR_H + +/* Includes ------------------------------------------------------------------*/ +/* Exported types ------------------------------------------------------------*/ +typedef enum _RESUME_STATE +{ + RESUME_EXTERNAL, + RESUME_INTERNAL, + RESUME_LATER, + RESUME_WAIT, + RESUME_START, + RESUME_ON, + RESUME_OFF, + RESUME_ESOF +} RESUME_STATE; + +typedef enum _DEVICE_STATE +{ + UNCONNECTED, + ATTACHED, + POWERED, + SUSPENDED, + ADDRESSED, + CONFIGURED +} DEVICE_STATE; + +/* Exported constants --------------------------------------------------------*/ +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +void Suspend(void); +void Resume_Init(void); +void Resume(RESUME_STATE eResumeSetVal); +RESULT PowerOn(void); +RESULT PowerOff(void); +/* External variables --------------------------------------------------------*/ +extern __IO uint32_t bDeviceState; /* USB device status */ +extern __IO bool fSuspendEnabled; /* true when suspend is possible */ + +#endif /*__USB_PWR_H*/ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_scsi.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_scsi.h new file mode 100644 index 0000000..5c4d46f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/inc/usb_scsi.h @@ -0,0 +1,154 @@ +/** + ****************************************************************************** + * @file usb_scsi.h + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief All processing related to the SCSI commands + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_SCSI_H +#define __USB_SCSI_H + +/* Includes ------------------------------------------------------------------*/ +#include "hw_config.h" +#include "usb_type.h" + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* SCSI Commands */ +#define SCSI_FORMAT_UNIT 0x04 +#define SCSI_INQUIRY 0x12 +#define SCSI_MODE_SELECT6 0x15 +#define SCSI_MODE_SELECT10 0x55 +#define SCSI_MODE_SENSE6 0x1A +#define SCSI_MODE_SENSE10 0x5A +#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1E +#define SCSI_READ6 0x08 +#define SCSI_READ10 0x28 +#define SCSI_READ12 0xA8 +#define SCSI_READ16 0x88 + +#define SCSI_READ_CAPACITY10 0x25 +#define SCSI_READ_CAPACITY16 0x9E + +#define SCSI_REQUEST_SENSE 0x03 +#define SCSI_START_STOP_UNIT 0x1B +#define SCSI_TEST_UNIT_READY 0x00 +#define SCSI_WRITE6 0x0A +#define SCSI_WRITE10 0x2A +#define SCSI_WRITE12 0xAA +#define SCSI_WRITE16 0x8A + +#define SCSI_VERIFY10 0x2F +#define SCSI_VERIFY12 0xAF +#define SCSI_VERIFY16 0x8F + +#define SCSI_SEND_DIAGNOSTIC 0x1D +#define SCSI_READ_FORMAT_CAPACITIES 0x23 + +#define NO_SENSE 0 +#define RECOVERED_ERROR 1 +#define NOT_READY 2 +#define MEDIUM_ERROR 3 +#define HARDWARE_ERROR 4 +#define ILLEGAL_REQUEST 5 +#define UNIT_ATTENTION 6 +#define DATA_PROTECT 7 +#define BLANK_CHECK 8 +#define VENDOR_SPECIFIC 9 +#define COPY_ABORTED 10 +#define ABORTED_COMMAND 11 +#define VOLUME_OVERFLOW 13 +#define MISCOMPARE 14 + + +#define INVALID_COMMAND 0x20 +#define INVALID_FIELED_IN_COMMAND 0x24 +#define PARAMETER_LIST_LENGTH_ERROR 0x1A +#define INVALID_FIELD_IN_PARAMETER_LIST 0x26 +#define ADDRESS_OUT_OF_RANGE 0x21 +#define MEDIUM_NOT_PRESENT 0x3A +#define MEDIUM_HAVE_CHANGED 0x28 + +#define READ_FORMAT_CAPACITY_DATA_LEN 0x0C +#define READ_CAPACITY10_DATA_LEN 0x08 +#define MODE_SENSE10_DATA_LEN 0x08 +#define MODE_SENSE6_DATA_LEN 0x04 +#define REQUEST_SENSE_DATA_LEN 0x12 +#define STANDARD_INQUIRY_DATA_LEN 0x24 +#define BLKVFY 0x04 + +extern uint8_t Page00_Inquiry_Data[]; +extern uint8_t Standard_Inquiry_Data[]; +extern uint8_t Standard_Inquiry_Data2[]; +extern uint8_t Mode_Sense6_data[]; +extern uint8_t Mode_Sense10_data[]; +extern uint8_t Scsi_Sense_Data[]; +extern uint8_t ReadCapacity10_Data[]; +extern uint8_t ReadFormatCapacity_Data []; + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +void SCSI_Inquiry_Cmd(uint8_t lun); +void SCSI_ReadFormatCapacity_Cmd(uint8_t lun); +void SCSI_ReadCapacity10_Cmd(uint8_t lun); +void SCSI_RequestSense_Cmd (uint8_t lun); +void SCSI_Start_Stop_Unit_Cmd(uint8_t lun); +void SCSI_ModeSense6_Cmd (uint8_t lun); +void SCSI_ModeSense10_Cmd (uint8_t lun); +void SCSI_Write10_Cmd(uint8_t lun , uint32_t LBA , uint32_t BlockNbr); +void SCSI_Read10_Cmd(uint8_t lun , uint32_t LBA , uint32_t BlockNbr); +void SCSI_Verify10_Cmd(uint8_t lun); + +void SCSI_Invalid_Cmd(uint8_t lun); +void SCSI_Valid_Cmd(uint8_t lun); +bool SCSI_Address_Management(uint8_t lun , uint8_t Cmd , uint32_t LBA , uint32_t BlockNbr); + +void Set_Scsi_Sense_Data(uint8_t lun , uint8_t Sens_Key, uint8_t Asc); +void SCSI_TestUnitReady_Cmd (uint8_t lun); +void SCSI_Format_Cmd (uint8_t lun); + +//#define SCSI_TestUnitReady_Cmd SCSI_Valid_Cmd +#define SCSI_Prevent_Removal_Cmd SCSI_Valid_Cmd + +/* Invalid (Unsupported) commands */ +#define SCSI_READ_CAPACITY16_Cmd SCSI_Invalid_Cmd +//#define SCSI_FormatUnit_Cmd SCSI_Invalid_Cmd +#define SCSI_Write6_Cmd SCSI_Invalid_Cmd +#define SCSI_Write16_Cmd SCSI_Invalid_Cmd +#define SCSI_Write12_Cmd SCSI_Invalid_Cmd +#define SCSI_Read6_Cmd SCSI_Invalid_Cmd +#define SCSI_Read12_Cmd SCSI_Invalid_Cmd +#define SCSI_Read16_Cmd SCSI_Invalid_Cmd +#define SCSI_Send_Diagnostic_Cmd SCSI_Invalid_Cmd +#define SCSI_Mode_Select6_Cmd SCSI_Invalid_Cmd +#define SCSI_Mode_Select10_Cmd SCSI_Invalid_Cmd +#define SCSI_Verify12_Cmd SCSI_Invalid_Cmd +#define SCSI_Verify16_Cmd SCSI_Invalid_Cmd + +#endif /* __USB_SCSI_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/readme.txt b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/readme.txt new file mode 100644 index 0000000..38afddb --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/readme.txt @@ -0,0 +1,177 @@ +/** + ****************************************************************************** + * @file readme.txt + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Description of the Composite Example Demo. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +Example description +=================== +This Demo provides a description of how to use the USB-FS-Device on the STM32F10xxx, +STM32F37xxx, STM32F30xxx and STM32L15xxx devices. +The examples provide a composite device +A composite device is one that has multiple interfaces controlled independently of each other. +Using composite device, multiple functions are combined into a single device. +In this Example the independent interfaces are : Mass Storage (MSC) and Custom HID + +LED1,LED2 and LED3 are reserved for Custom HID demo +LED4 reserved for MSC, it is ON when MicroSD is Ready for write and read operations. + +When even one of the interface class of the device is changed, it should be handled +differently by Windows. However, it doesn't recognize the modification. To avoid conflict on +Windows, we suggest to assign another VID/PID to the device (idProduct = 0x5750) or +delete device instance from device manager. + +More details about this Demo implementation is given in the User manual +"UM0424 STM32F10xxx USB development kit", available for download from the ST +microcontrollers website: www.st.com/stm32 + + +Directory contents +================== + + \inc: contains the Demo firmware header files + + \EWARM: contains preconfigured projects for EWARM toolchain + + \RIDE: contains preconfigured projects for RIDE toolchain + + \MDK-ARM: contains preconfigured projects for MDK-ARM toolchain + + \TASKING: contains preconfigured projects for TASKING toolchain + + \TrueSTUDIO: contains preconfigured projects for TrueSTUDIO toolchain + + \src: contains the Demo firmware source files + + +Hardware environment +==================== +This example runs these STMicroelectronics evaluation boards and can be easily tailored to any other hardware: + +- STM3210B-EVAL +- STM3210E-EVAL +- STM32L152-EVAL +- STM32F373C_EVAL +- STM32F303C_EVAL +- STM32L152D-EVAL + +To select the STMicroelectronics evaluation board used to run the example, uncomment +the corresponding line in platform_config.h file. + + - STM3210B-EVAL Set-up + - Jumper JP1 (USB disconnect) should be connected in position 2-3. + + - STM3210E-EVAL Set-up + - Jumper JP14 (USB disconnect) should be connected in position 2-3. + + - STM32L152-EVAL Set-up + - Jumpers JP18 and JP19 should be connected. + - Jumper JP17 should be connected in position 5-6 (PB12 connector) + - Note that JoySitck Right and Left buttons are used for this Demo. + + - STM32L152D-EVAL Set-up + - LCD Glass should be mounted On IO position for Potentiometer usage. + - JP13 should be connected to ADC input. + + - STM32F373C_EVAL Set-up + - None. + + - STM32F303C_EVAL Set-up + - None. + +How to use it +============= + + EWARM + - Open the Composite_Example.eww workspace. + - In the workspace toolbar select the project config: + - STM3210B-EVAL: to configure the project for STM32 Medium-density devices + - STM3210E-EVAL: to configure the project for STM32 High-density devices + - STM3210E-EVAL_XL: to configure the project for STM32 XL-density devices + - STM32L152-EVAL: to configure the project for STM32 Medium-Density Low-Power devices + - STM32L152D-EVAL: to configure the project for STM32 High-Density Low-Power devices + - STM32373C-EVAL: to configure the project for STM32F37xxx devices + - STM32303C-EVAL: to configure the project for STM32F30xxx devices + - Rebuild all files: Project->Rebuild all + - Load project image: Project->Debug + - Run program: Debug->Go(F5) + + + MDK-ARM + - Open the Composite_Example.Uv2 project + - In the build toolbar select the project config: + - STM3210B-EVAL: to configure the project for STM32 Medium-density devices + - STM3210E-EVAL: to configure the project for STM32 High-density devices + - STM3210E-EVAL_XL: to configure the project for STM32 XL-density devices + - STM32L152-EVAL: to configure the project for STM32 Medium-Density Low-Power devices + - STM32L152D-EVAL: to configure the project for STM32 High-Density Low-Power devices + - STM32373C-EVAL: to configure the project for STM32F37xxx devices + - STM32303C-EVAL: to configure the project for STM32F30xxx devices + - Rebuild all files: Project->Rebuild all target files + - Load project image: Debug->Start/Stop Debug Session + - Run program: Debug->Run (F5) + + + RIDE + - Open the Composite_Example.rprj project. + - In the configuration toolbar(Project->properties) select the project config: + - STM3210B-EVAL: to configure the project for STM32 Medium-density devices + - STM3210E-EVAL: to configure the project for STM32 High-density devices + - STM3210E-EVAL_XL: to configure the project for STM32 XL-density devices + - STM32L152-EVAL: to configure the project for STM32 Medium-Density Low-Power devices + - STM32L152D-EVAL: to configure the project for STM32 High-Density Low-Power devices + - STM32373C-EVAL: to configure the project for STM32F37xxx devices + - STM32303C-EVAL: to configure the project for STM32F30xxx devices + - Rebuild all files: Project->build project + - Load project image: Debug->start(ctrl+D) + - Run program: Debug->Run(ctrl+F9) + + + TASKING + - Open TASKING toolchain. + - Click on File->Import, select General->'Existing Projects into Workspace' + and then click "Next". + - Browse to TASKING workspace directory and select the project: + - STM3210B-EVAL: to configure the project for STM32 Medium-density devices + - STM3210E-EVAL: to configure the project for STM32 High-density devices + - STM3210E-EVAL_XL: to configure the project for STM32 XL-density devices + - STM32L152-EVAL: to configure the project for STM32 Medium-Density Low-Power devices + - STM32L152D-EVAL: to configure the project for STM32 High-Density Low-Power devices + - STM32373C-EVAL: to configure the project for STM32F37xxx devices + - STM32303C-EVAL: to configure the project for STM32F30xxx devices + - Rebuild all project files: Select the project in the "Project explorer" + window then click on Project->build project menu. + - Run program: Select the project in the "Project explorer" window then click + Run->Debug (F11) + + + TrueSTUDIO + - Open the TrueSTUDIO toolchain. + - Click on File->Switch Workspace->Other and browse to TrueSTUDIO workspace + directory. + - Click on File->Import, select General->'Existing Projects into Workspace' + and then click "Next". + - Browse to the TrueSTUDIO workspace directory and select the project: + - STM3210B-EVAL: to load the project for STM32 Medium-density devices + - STM3210E-EVAL: to load the project for STM32 High-density devices + - STM3210E_EVAL_XL: to load the project for STM32 XL-density devices + - STM32L152_EVAL: to load the project for STM32 Medium-Density Low-Power devices + - STM32L152D-EVAL: to configure the project for STM32 High-Density Low-Power devices + - STM32373C-EVAL: to configure the project for STM32F37xxx devices + - STM32303C-EVAL: to configure the project for STM32F30xxx devices + - Rebuild all project files: Select the project in the "Project explorer" + window then click on Project->build project menu. + - Run program: Select the project in the "Project explorer" window then click + Run->Debug (F11) + +************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****** diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/fsmc_nand.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/fsmc_nand.c new file mode 100644 index 0000000..ae3b79f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/fsmc_nand.c @@ -0,0 +1,503 @@ +/** + ****************************************************************************** + * @file fsmc_nand.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief This file provides a set of functions needed to drive the +* NAND512W3A2 memory mounted on STM3210E-EVAL board. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "fsmc_nand.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ + +#define FSMC_Bank_NAND FSMC_Bank2_NAND +#define Bank_NAND_ADDR Bank2_NAND_ADDR +#define Bank2_NAND_ADDR ((uint32_t)0x70000000) + +/* Private macro -------------------------------------------------------------*/ +#define ROW_ADDRESS (Address.Page + (Address.Block + (Address.Zone * NAND_ZONE_SIZE)) * NAND_BLOCK_SIZE) + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/******************************************************************************* +* Function Name : FSMC_NAND_Init +* Description : Configures the FSMC and GPIOs to interface with the NAND memory. +* This function must be called before any write/read operation +* on the NAND. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void FSMC_NAND_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + FSMC_NANDInitTypeDef FSMC_NANDInitStructure; + FSMC_NAND_PCCARDTimingInitTypeDef p; + + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | + RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE); + +/*-- GPIO Configuration ------------------------------------------------------*/ +/* CLE, ALE, D0->D3, NOE, NWE and NCE2 NAND pin configuration */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15 | + GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | + GPIO_Pin_7; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + + GPIO_Init(GPIOD, &GPIO_InitStructure); + +/* D4->D7 NAND pin configuration */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10; + + GPIO_Init(GPIOE, &GPIO_InitStructure); + + +/* NWAIT NAND pin configuration */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; + + GPIO_Init(GPIOD, &GPIO_InitStructure); + +/* INT2 NAND pin configuration */ + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; + GPIO_Init(GPIOG, &GPIO_InitStructure); + + /*-- FSMC Configuration ------------------------------------------------------*/ + p.FSMC_SetupTime = 0x1; + p.FSMC_WaitSetupTime = 0x3; + p.FSMC_HoldSetupTime = 0x2; + p.FSMC_HiZSetupTime = 0x1; + + FSMC_NANDInitStructure.FSMC_Bank = FSMC_Bank2_NAND; + FSMC_NANDInitStructure.FSMC_Waitfeature = FSMC_Waitfeature_Enable; + FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; + FSMC_NANDInitStructure.FSMC_ECC = FSMC_ECC_Enable; + FSMC_NANDInitStructure.FSMC_ECCPageSize = FSMC_ECCPageSize_512Bytes; + FSMC_NANDInitStructure.FSMC_TCLRSetupTime = 0x00; + FSMC_NANDInitStructure.FSMC_TARSetupTime = 0x00; + FSMC_NANDInitStructure.FSMC_CommonSpaceTimingStruct = &p; + FSMC_NANDInitStructure.FSMC_AttributeSpaceTimingStruct = &p; + + FSMC_NANDInit(&FSMC_NANDInitStructure); + + /* FSMC NAND Bank Cmd Test */ + FSMC_NANDCmd(FSMC_Bank2_NAND, ENABLE); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_ReadID +* Description : Reads NAND memory's ID. +* Input : - NAND_ID: pointer to a NAND_IDTypeDef structure which will hold +* the Manufacturer and Device ID. +* Output : None +* Return : None +*******************************************************************************/ +void FSMC_NAND_ReadID(NAND_IDTypeDef* NAND_ID) +{ + uint32_t data = 0; + + /* Send Command to the command area */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = 0x90; + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00; + + /* Sequence to read ID from NAND flash */ + data = *(__IO uint32_t *)(Bank_NAND_ADDR | DATA_AREA); + + NAND_ID->Maker_ID = ADDR_1st_CYCLE (data); + NAND_ID->Device_ID = ADDR_2nd_CYCLE (data); + NAND_ID->Third_ID = ADDR_3rd_CYCLE (data); + NAND_ID->Fourth_ID = ADDR_4th_CYCLE (data); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_WriteSmallPage +* Description : This routine is for writing one or several 512 Bytes Page size. +* Input : - pBuffer: pointer on the Buffer containing data to be written +* - Address: First page address +* - NumPageToWrite: Number of page to write +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +* And the new status of the increment address operation. It can be: +* - NAND_VALID_ADDRESS: When the new address is valid address +* - NAND_INVALID_ADDRESS: When the new address is invalid address +*******************************************************************************/ +uint32_t FSMC_NAND_WriteSmallPage(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumPageToWrite) +{ + uint32_t index = 0x00, numpagewritten = 0x00, addressstatus = NAND_VALID_ADDRESS; + uint32_t status = NAND_READY, size = 0x00; + + while((NumPageToWrite != 0x00) && (addressstatus == NAND_VALID_ADDRESS) && (status == NAND_READY)) + { + /* Page write command and address */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_A; + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_WRITE0; + + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00; + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_3rd_CYCLE(ROW_ADDRESS); + + /* Calculate the size */ + size = NAND_PAGE_SIZE + (NAND_PAGE_SIZE * numpagewritten); + + /* Write data */ + for(; index < size; index++) + { + *(__IO uint8_t *)(Bank_NAND_ADDR | DATA_AREA) = pBuffer[index]; + } + + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_WRITE_TRUE1; + + /* Check status for successful operation */ + status = FSMC_NAND_GetStatus(); + + if(status == NAND_READY) + { + numpagewritten++; + + NumPageToWrite--; + + /* Calculate Next small page Address */ + addressstatus = FSMC_NAND_AddressIncrement(&Address); + } + } + + return (status | addressstatus); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_ReadSmallPage +* Description : This routine is for sequential read from one or several +* 512 Bytes Page size. +* Input : - pBuffer: pointer on the Buffer to fill +* - Address: First page address +* - NumPageToRead: Number of page to read +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +* And the new status of the increment address operation. It can be: +* - NAND_VALID_ADDRESS: When the new address is valid address +* - NAND_INVALID_ADDRESS: When the new address is invalid address +*******************************************************************************/ +uint32_t FSMC_NAND_ReadSmallPage(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumPageToRead) +{ + uint32_t index = 0x00, numpageread = 0x00, addressstatus = NAND_VALID_ADDRESS; + uint32_t status = NAND_READY, size = 0x00; + + while((NumPageToRead != 0x0) && (addressstatus == NAND_VALID_ADDRESS)) + { + /* Page Read command and page address */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_A; + + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00; + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_3rd_CYCLE(ROW_ADDRESS); + + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_TRUE1; + + /* Calculate the size */ + size = NAND_PAGE_SIZE + (NAND_PAGE_SIZE * numpageread); + + /* Get Data into Buffer */ + for(; index < size; index++) + { + pBuffer[index]= *(__IO uint8_t *)(Bank_NAND_ADDR | DATA_AREA); + } + + numpageread++; + + NumPageToRead--; + + /* Calculate page address */ + addressstatus = FSMC_NAND_AddressIncrement(&Address); + } + + status = FSMC_NAND_GetStatus(); + + return (status | addressstatus); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_WriteSpareArea +* Description : This routine write the spare area information for the specified +* pages addresses. +* Input : - pBuffer: pointer on the Buffer containing data to be written +* - Address: First page address +* - NumSpareAreaTowrite: Number of Spare Area to write +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +* And the new status of the increment address operation. It can be: +* - NAND_VALID_ADDRESS: When the new address is valid address +* - NAND_INVALID_ADDRESS: When the new address is invalid address +*******************************************************************************/ +uint32_t FSMC_NAND_WriteSpareArea(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumSpareAreaTowrite) +{ + uint32_t index = 0x00, numsparesreawritten = 0x00, addressstatus = NAND_VALID_ADDRESS; + uint32_t status = NAND_READY, size = 0x00; + + while((NumSpareAreaTowrite != 0x00) && (addressstatus == NAND_VALID_ADDRESS) && (status == NAND_READY)) + { + /* Page write Spare area command and address */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_C; + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_WRITE0; + + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00; + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_3rd_CYCLE(ROW_ADDRESS); + + /* Calculate the size */ + size = NAND_SPARE_AREA_SIZE + (NAND_SPARE_AREA_SIZE * numsparesreawritten); + + /* Write the data */ + for(; index < size; index++) + { + *(__IO uint8_t *)(Bank_NAND_ADDR | DATA_AREA) = pBuffer[index]; + } + + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_WRITE_TRUE1; + + /* Check status for successful operation */ + status = FSMC_NAND_GetStatus(); + + if(status == NAND_READY) + { + numsparesreawritten++; + + NumSpareAreaTowrite--; + + /* Calculate Next page Address */ + addressstatus = FSMC_NAND_AddressIncrement(&Address); + } + } + + return (status | addressstatus); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_ReadSpareArea +* Description : This routine read the spare area information from the specified +* pages addresses. +* Input : - pBuffer: pointer on the Buffer to fill +* - Address: First page address +* - NumSpareAreaToRead: Number of Spare Area to read +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +* And the new status of the increment address operation. It can be: +* - NAND_VALID_ADDRESS: When the new address is valid address +* - NAND_INVALID_ADDRESS: When the new address is invalid address +*******************************************************************************/ +uint32_t FSMC_NAND_ReadSpareArea(uint8_t *pBuffer, NAND_ADDRESS Address, uint32_t NumSpareAreaToRead) +{ + uint32_t numsparearearead = 0x00, index = 0x00, addressstatus = NAND_VALID_ADDRESS; + uint32_t status = NAND_READY, size = 0x00; + + while((NumSpareAreaToRead != 0x0) && (addressstatus == NAND_VALID_ADDRESS)) + { + /* Page Read command and page address */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_C; + + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = 0x00; + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_3rd_CYCLE(ROW_ADDRESS); + + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_AREA_TRUE1; + + /* Data Read */ + size = NAND_SPARE_AREA_SIZE + (NAND_SPARE_AREA_SIZE * numsparearearead); + + /* Get Data into Buffer */ + for ( ;index < size; index++) + { + pBuffer[index] = *(__IO uint8_t *)(Bank_NAND_ADDR | DATA_AREA); + } + + numsparearearead++; + + NumSpareAreaToRead--; + + /* Calculate page address */ + addressstatus = FSMC_NAND_AddressIncrement(&Address); + } + + status = FSMC_NAND_GetStatus(); + + return (status | addressstatus); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_EraseBlock +* Description : This routine erase complete block from NAND FLASH +* Input : - Address: Any address into block to be erased +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +*******************************************************************************/ +uint32_t FSMC_NAND_EraseBlock(NAND_ADDRESS Address) +{ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_ERASE0; + + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_1st_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_2nd_CYCLE(ROW_ADDRESS); + *(__IO uint8_t *)(Bank_NAND_ADDR | ADDR_AREA) = ADDR_3rd_CYCLE(ROW_ADDRESS); + + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_ERASE1; + + return (FSMC_NAND_GetStatus()); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_Reset +* Description : This routine reset the NAND FLASH +* Input : None +* Output : None +* Return : NAND_READY +*******************************************************************************/ +uint32_t FSMC_NAND_Reset(void) +{ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_RESET; + + return (NAND_READY); +} + +/****************************************************************************** +* Function Name : FSMC_NAND_GetStatus +* Description : Get the NAND operation status +* Input : None +* Output : None +* Return : New status of the NAND operation. This parameter can be: +* - NAND_TIMEOUT_ERROR: when the previous operation generate +* a Timeout error +* - NAND_READY: when memory is ready for the next operation +*******************************************************************************/ +uint32_t FSMC_NAND_GetStatus(void) +{ + uint32_t timeout = 0x1000000, status = NAND_READY; + + status = FSMC_NAND_ReadStatus(); + + /* Wait for a NAND operation to complete or a TIMEOUT to occur */ + while ((status != NAND_READY) &&( timeout != 0x00)) + { + status = FSMC_NAND_ReadStatus(); + timeout --; + } + + if(timeout == 0x00) + { + status = NAND_TIMEOUT_ERROR; + } + + /* Return the operation status */ + return (status); +} +/****************************************************************************** +* Function Name : FSMC_NAND_ReadStatus +* Description : Reads the NAND memory status using the Read status command +* Input : None +* Output : None +* Return : The status of the NAND memory. This parameter can be: +* - NAND_BUSY: when memory is busy +* - NAND_READY: when memory is ready for the next operation +* - NAND_ERROR: when the previous operation generates error +*******************************************************************************/ +uint32_t FSMC_NAND_ReadStatus(void) +{ + uint32_t data = 0x00, status = NAND_BUSY; + + /* Read status operation ------------------------------------ */ + *(__IO uint8_t *)(Bank_NAND_ADDR | CMD_AREA) = NAND_CMD_STATUS; + data = *(__IO uint8_t *)(Bank_NAND_ADDR); + + if((data & NAND_ERROR) == NAND_ERROR) + { + status = NAND_ERROR; + } + else if((data & NAND_READY) == NAND_READY) + { + status = NAND_READY; + } + else + { + status = NAND_BUSY; + } + + return (status); +} + +/****************************************************************************** +* Function Name : NAND_AddressIncrement +* Description : Increment the NAND memory address +* Input : - Address: address to be incremented. +* Output : None +* Return : The new status of the increment address operation. It can be: +* - NAND_VALID_ADDRESS: When the new address is valid address +* - NAND_INVALID_ADDRESS: When the new address is invalid address +*******************************************************************************/ +uint32_t FSMC_NAND_AddressIncrement(NAND_ADDRESS* Address) +{ + uint32_t status = NAND_VALID_ADDRESS; + + Address->Page++; + + if(Address->Page == NAND_BLOCK_SIZE) + { + Address->Page = 0; + Address->Block++; + + if(Address->Block == NAND_ZONE_SIZE) + { + Address->Block = 0; + Address->Zone++; + + if(Address->Zone == NAND_MAX_ZONE) + { + status = NAND_INVALID_ADDRESS; + } + } + } + + return (status); +} + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/hw_config.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/hw_config.c new file mode 100644 index 0000000..98c213d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/hw_config.c @@ -0,0 +1,707 @@ +/** + ****************************************************************************** + * @file hw_config.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Hardware Configuration & Setup + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "hw_config.h" +#include "usb_lib.h" +#include "usb_desc.h" +#include "usb_pwr.h" +#include "mass_mal.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ + +ErrorStatus HSEStartUpStatus; +uint32_t ADC_ConvertedValueX = 0; +uint32_t ADC_ConvertedValueX_1 = 0; +__IO uint16_t ADC1ConvertedValue = 0, ADC1ConvertedVoltage = 0, calibration_value = 0; + +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +static void IntToUnicode (uint32_t value , uint8_t *pbuf , uint8_t len); +/* Private functions ---------------------------------------------------------*/ + +/******************************************************************************* +* Function Name : MAL_Config +* Description : MAL_layer configuration +* Input : None. +* Return : None. +*******************************************************************************/ +void MAL_Config(void) +{ + MAL_Init(0); + +#if defined(STM32F10X_HD) || defined(STM32F10X_XL) + /* Enable the FSMC Clock */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); + MAL_Init(1); +#endif /* STM32F10X_HD | STM32F10X_XL */ +} +/******************************************************************************* +* Function Name : Set_System +* Description : Configures Main system clocks & power. +* Input : None. +* Return : None. +*******************************************************************************/ +void Set_System(void) +{ +#if defined (STM32F37X) || defined (STM32F30X) + GPIO_InitTypeDef GPIO_InitStructure; +#endif /*STM32L1XX_XD */ + +#if defined(USB_USE_EXTERNAL_PULLUP) + GPIO_InitTypeDef GPIO_InitStructure; +#endif /* USB_USE_EXTERNAL_PULLUP */ + + /*!< At this stage the microcontroller clock setting is already configured, + this is done through SystemInit() function which is called from startup + file (startup_stm32xxx.s) before to branch to application main. + To reconfigure the default setting of SystemInit() function, refer to + system_stm32xxx.c file + */ + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) || defined (STM32F37X) || defined (STM32F30X) + /* Enable the SYSCFG module clock */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); + +#endif /* STM32L1XX_XD */ + +#if !defined(STM32L1XX_MD) && !defined(STM32L1XX_HD) && !defined(STM32L1XX_MD_PLUS) && !defined(STM32F37X) && !defined(STM32F30X) + /* Enable USB_DISCONNECT GPIO clock */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_DISCONNECT, ENABLE); + + /* ADCCLK = PCLK2/8 */ + RCC_ADCCLKConfig(RCC_PCLK2_Div8); +#endif /* STM32L1XX_XD */ + + /* Configure the used GPIOs*/ + GPIO_Configuration(); + +#if defined(USB_USE_EXTERNAL_PULLUP) + /* Enable the USB disconnect GPIO clock */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO_DISCONNECT, ENABLE); + + /* USB_DISCONNECT used as USB pull-up */ + GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure); +#endif /* USB_USE_EXTERNAL_PULLUP */ + +#if defined(STM32F37X) || defined(STM32F30X) + + /* Enable the USB disconnect GPIO clock */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO_DISCONNECT, ENABLE); + + /*Set PA11,12 as IN - USB_DM,DP*/ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(GPIOA, &GPIO_InitStructure); + + /*SET PA11,12 for USB: USB_DM,DP*/ + GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_14); + GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_14); + + /* USB_DISCONNECT used as USB pull-up */ + GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure); + +#endif +#if defined(STM32L1XX_MD) + /* Configure the LEFT button in EXTI mode */ + STM_EVAL_PBInit(Button_LEFT, Mode_EXTI); + + /* Configure the RIGHT button in EXTI mode */ + STM_EVAL_PBInit(Button_RIGHT, Mode_EXTI); +#else + /* Configure the KEY button in EXTI mode */ + STM_EVAL_PBInit(Button_KEY, Mode_EXTI); +#if !defined(STM32L1XX_HD)&& !defined(STM32L1XX_MD_PLUS) && !defined(STM32F37X) && !defined(STM32F30X) + /* Configure the Tamper button in EXTI mode */ + STM_EVAL_PBInit(Button_TAMPER, Mode_EXTI); +#endif /* STM32L1XX_XD */ +#endif + /* Additional EXTI configuration (configure both edges) */ + EXTI_Configuration(); + + /* Configure the LEDs */ + STM_EVAL_LEDInit(LED1); + STM_EVAL_LEDInit(LED2); + STM_EVAL_LEDInit(LED3); + STM_EVAL_LEDInit(LED4); + +#if defined (STM32F30X) + ADC30x_Configuration(); +#else + /* Configure the ADC*/ + ADC_Configuration(); +#endif + /* MAL configuration */ + MAL_Config(); +} + +/******************************************************************************* +* Function Name : Set_USBClock +* Description : Configures USB Clock input (48MHz). +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Set_USBClock(void) +{ +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + /* Enable USB clock */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); + +#else + /* Select USBCLK source */ + RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); + + /* Enable the USB clock */ + RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE); +#endif /* STM32L1XX_MD */ +} + +/******************************************************************************* +* Function Name : Enter_LowPowerMode. +* Description : Power-off system clocks and power while entering suspend mode. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Enter_LowPowerMode(void) +{ + /* Set the device state to suspend */ + bDeviceState = SUSPENDED; +} + +/******************************************************************************* +* Function Name : Leave_LowPowerMode. +* Description : Restores system clocks and power while exiting suspend mode. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Leave_LowPowerMode(void) +{ + DEVICE_INFO *pInfo = &Device_Info; + + /* Set the device state to the correct state */ + if (pInfo->Current_Configuration != 0) + { + /* Device configured */ + bDeviceState = CONFIGURED; + } + else + { + bDeviceState = ATTACHED; + } + /*Enable SystemCoreClock*/ + SystemInit(); +#if defined(STM32L1XX_MD)|| defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + /* Enable The HSI (16Mhz) */ + RCC_HSICmd(ENABLE); +#endif +#if defined(STM32F30X) + ADC30x_Configuration(); +#endif +} + +/******************************************************************************* +* Function Name : USB_Interrupts_Config. +* Description : Configures the USB interrupts. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void USB_Interrupts_Config(void) +{ + NVIC_InitTypeDef NVIC_InitStructure; + + /* 2 bit for pre-emption priority, 2 bits for subpriority */ + NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + NVIC_InitStructure.NVIC_IRQChannel = USB_LP_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + /* Enable the USB Wake-up interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = USB_FS_WKUP_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + +#elif defined(STM32F37X) + /* Enable the USB interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = USB_LP_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + /* Enable the USB Wake-up interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = USBWakeUp_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + +#else + /* Enable the USB interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + + /* Enable the USB Wake-up interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = USBWakeUp_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); +#endif /* STM32L1XX_XD */ + + /* Enable the EXTI9_5 Interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; + NVIC_Init(&NVIC_InitStructure); + + /* Enable the EXTI15_10 Interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_Init(&NVIC_InitStructure); + + /* Enable the DMA1 Channel1 Interrupt */ + NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; + NVIC_Init(&NVIC_InitStructure); + +#if defined(STM32F10X_HD) || defined(STM32F10X_XL) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_Init(&NVIC_InitStructure); + NVIC_InitStructure.NVIC_IRQChannel = SD_SDIO_DMA_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; + NVIC_Init(&NVIC_InitStructure); +#endif /* STM32L1XX_MD */ +} + +/******************************************************************************* +* Function Name : USB_Cable_Config. +* Description : Software Connection/Disconnection of USB Cable. +* Input : NewState: new state. +* Output : None. +* Return : None +*******************************************************************************/ +void USB_Cable_Config (FunctionalState NewState) +{ +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD) || defined(STM32L1XX_MD_PLUS) + if (NewState != DISABLE) + { + STM32L15_USB_CONNECT; + } + else + { + STM32L15_USB_DISCONNECT; + } +#else + + if (NewState != DISABLE) + { + GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN); + } + else + { + GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN); + } +#endif /* STM32L1XX_MD */ +} + +/******************************************************************************* +* Function Name : GPIO_Configuration +* Description : Configures the different GPIO ports. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void GPIO_Configuration(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) || defined (STM32F37X) || defined (STM32F30X) + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO_DISCONNECT | + RCC_AHBPeriph_GPIO_IOAIN , ENABLE); +#else + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO_DISCONNECT | + RCC_APB2Periph_GPIO_IOAIN , ENABLE); + + /* USB_DISCONNECT used as USB pull-up */ + GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; + GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure); +#endif /* STM32L1XX_XD */ + + /* Configure Potentiometer IO as analog input */ + GPIO_InitStructure.GPIO_Pin = GPIO_IOAIN_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; + GPIO_Init(GPIO_IOAIN, &GPIO_InitStructure); +} + +/******************************************************************************* +* Function Name : EXTI_Configuration. +* Description : Configure the EXTI lines for Key and Tamper push buttons. +* Input : None. +* Output : None. +* Return value : The direction value. +*******************************************************************************/ +void EXTI_Configuration(void) +{ + EXTI_InitTypeDef EXTI_InitStructure; + +#if defined (USE_STM32L152_EVAL) + /* Configure RIGHT EXTI line to generate an interrupt on rising & falling edges */ + EXTI_InitStructure.EXTI_Line = RIGHT_BUTTON_EXTI_LINE; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + + /* Clear the RIGHT EXTI line pending bit */ + EXTI_ClearITPendingBit(RIGHT_BUTTON_EXTI_LINE); + + /* Configure LEFT EXTI Line to generate an interrupt rising & falling edges */ + EXTI_InitStructure.EXTI_Line = LEFT_BUTTON_EXTI_LINE; + EXTI_Init(&EXTI_InitStructure); + + /* Clear the LEFT EXTI line pending bit */ + EXTI_ClearITPendingBit(LEFT_BUTTON_EXTI_LINE); + +#else + /* Configure Key EXTI line to generate an interrupt on rising & falling edges */ + EXTI_InitStructure.EXTI_Line = KEY_BUTTON_EXTI_LINE; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + + /* Clear the Key EXTI line pending bit */ + EXTI_ClearITPendingBit(KEY_BUTTON_EXTI_LINE); + + /* Configure Tamper EXTI Line to generate an interrupt rising & falling edges */ +#if !defined (USE_STM32L152D_EVAL) && !defined (STM32F30X) + EXTI_InitStructure.EXTI_Line = TAMPER_BUTTON_EXTI_LINE; + EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); + + /* Clear the Tamper EXTI line pending bit */ + EXTI_ClearITPendingBit(TAMPER_BUTTON_EXTI_LINE); +#endif +#endif /* USE_STM32L152_EVAL */ + + /* Configure the EXTI line 18 connected internally to the USB IP */ + EXTI_ClearITPendingBit(EXTI_Line18); + EXTI_InitStructure.EXTI_Line = EXTI_Line18; + EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; + EXTI_InitStructure.EXTI_LineCmd = ENABLE; + EXTI_Init(&EXTI_InitStructure); +} + +#if !defined (STM32F30X) +/******************************************************************************* +* Function Name : ADC_Configuration. +* Description : Configure the ADC and DMA. +* Input : None. +* Output : None. +* Return value : The direction value. +*******************************************************************************/ +void ADC_Configuration(void) +{ + ADC_InitTypeDef ADC_InitStructure; + DMA_InitTypeDef DMA_InitStructure; + /* Enable DMA1 clock */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); + + /* Enable ADC1 clock */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); + + /* DMA1 channel1 configuration ---------------------------------------------*/ + DMA_DeInit(DMA1_Channel1); + DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; + DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADC_ConvertedValueX; + DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; + DMA_InitStructure.DMA_BufferSize = 1; + DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; + DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; + DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; + DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; + DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; + DMA_InitStructure.DMA_Priority = DMA_Priority_High; + DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; + DMA_Init(DMA1_Channel1, &DMA_InitStructure); + + /* Enable DMA1 channel1 */ + DMA_Cmd(DMA1_Channel1, ENABLE); + + /* Enable the DMA1 Channel1 Transfer complete interrupt */ + DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE); + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + /* Enable the HSI for the ADC operations */ + RCC_HSICmd(ENABLE); + + /* ADC1 configuration ------------------------------------------------------*/ + ADC_StructInit(&ADC_InitStructure); + ADC_InitStructure.ADC_ScanConvMode = ENABLE; + ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; + ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; + ADC_InitStructure.ADC_NbrOfConversion = 1; + ADC_Init(ADC1, &ADC_InitStructure); + +#if defined (USE_STM32L152D_EVAL) + /* ADC1 regular channel31 configuration */ + ADC_RegularChannelConfig(ADC1, ADC_Channel_31, 1, ADC_SampleTime_384Cycles); + +#else + /* ADC1 regular channel18 configuration */ + ADC_RegularChannelConfig(ADC1, ADC_Channel_18, 1, ADC_SampleTime_384Cycles); +#endif + +#if !defined (USE_STM32373C_EVAL) + /* Enable the request after last transfer for DMA Circular mode */ + ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE); +#endif + /* Enable ADC1 DMA */ + ADC_DMACmd(ADC1, ENABLE); + + /* Enable ADC1 */ + ADC_Cmd(ADC1, ENABLE); + +#else + /* ADC1 configuration ------------------------------------------------------*/ +#if !defined (USE_STM32373C_EVAL) + ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; +#endif + + ADC_InitStructure.ADC_ScanConvMode = ENABLE; + ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; + ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; + ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; + ADC_InitStructure.ADC_NbrOfChannel = 1; + ADC_Init(ADC1, &ADC_InitStructure); + + /* ADC1 regular channel configuration */ + ADC_RegularChannelConfig(ADC1, ADC_AIN_CHANNEL, 1, ADC_SampleTime_55Cycles5); + + /* Enable ADC1 DMA */ + ADC_DMACmd(ADC1, ENABLE); + + /* Enable ADC1 */ + ADC_Cmd(ADC1, ENABLE); + + /* Enable ADC1 reset calibration register */ + ADC_ResetCalibration(ADC1); + /* Check the end of ADC1 reset calibration register */ + while(ADC_GetResetCalibrationStatus(ADC1)); + /* Start ADC1 calibration */ + ADC_StartCalibration(ADC1); + + /* Check the end of ADC1 calibration */ + while(ADC_GetCalibrationStatus(ADC1)); + +#endif /* STM32L1XX_XD */ + +} +#endif /* STM32F30x */ +/******************************************************************************* +* Function Name : Get_SerialNum. +* Description : Create the serial number string descriptor. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Get_SerialNum(void) +{ + uint32_t Device_Serial0, Device_Serial1, Device_Serial2; + + Device_Serial0 = *(uint32_t*)ID1; + Device_Serial1 = *(uint32_t*)ID2; + Device_Serial2 = *(uint32_t*)ID3; + + Device_Serial0 += Device_Serial2; + + if (Device_Serial0 != 0) + { + IntToUnicode (Device_Serial0, &Composite_StringSerial[2] , 8); + IntToUnicode (Device_Serial1, &Composite_StringSerial[18], 4); + } +} + +/******************************************************************************* +* Function Name : HexToChar. +* Description : Convert Hex 32Bits value into char. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +static void IntToUnicode (uint32_t value , uint8_t *pbuf , uint8_t len) +{ + uint8_t idx = 0; + + for( idx = 0 ; idx < len ; idx ++) + { + if( ((value >> 28)) < 0xA ) + { + pbuf[ 2* idx] = (value >> 28) + '0'; + } + else + { + pbuf[2* idx] = (value >> 28) + 'A' - 10; + } + + value = value << 4; + + pbuf[ 2* idx + 1] = 0; + } +} + +/******************************************************************************* +* Function Name : ADC30x_Configuration +* Description : Configure the ADC and DMA. +* Input : None. +* Output : None. +* Return value : The direction value. +*******************************************************************************/ +#if defined (STM32F30X) + +void ADC30x_Configuration(void) +{ + ADC_InitTypeDef ADC_InitStructure; + ADC_CommonInitTypeDef ADC_CommonInitStructure; + DMA_InitTypeDef DMA_InitStructure; + + /* Enable DMA1 clock */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); + /* DMA1 channel1 configuration ---------------------------------------------*/ + DMA_DeInit(DMA1_Channel1); + DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; + DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADC_ConvertedValueX; + DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; + DMA_InitStructure.DMA_BufferSize = 1; + DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; + DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; + DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; + DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; + DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; + DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; + DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; + DMA_Init(DMA1_Channel1, &DMA_InitStructure); + + /* Enable DMA1 channel1 */ + DMA_Cmd(DMA1_Channel1, ENABLE); + + /* Enable the DMA1 Channel1 Transfer complete interrupt */ + DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE); + + /* Configure the ADC clock */ + RCC_ADCCLKConfig(RCC_ADC12PLLCLK_Div2); + + /* ADC1 Periph clock enable */ + RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ADC12, ENABLE); + ADC_DeInit(ADC1); + ADC_StructInit(&ADC_InitStructure); + + /* Calibration procedure */ + ADC_VoltageRegulatorCmd(ADC1, ENABLE); + ADC_SelectCalibrationMode(ADC1, ADC_CalibrationMode_Single); + ADC_StartCalibration(ADC1); + + while(ADC_GetCalibrationStatus(ADC1) != RESET ); + calibration_value = ADC_GetCalibrationValue(ADC1); + + /* Configure the ADC1 in continuous mode */ + ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; + ADC_CommonInitStructure.ADC_Clock = ADC_Clock_AsynClkMode; + ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; + ADC_CommonInitStructure.ADC_DMAMode = ADC_DMAMode_OneShot; + ADC_CommonInitStructure.ADC_TwoSamplingDelay = 0; + + ADC_CommonInit(ADC1, &ADC_CommonInitStructure); + + /* ADC1 DMA Enable */ + ADC_DMACmd(ADC1, ENABLE); + ADC_DMAConfig(ADC1, ADC_DMAMode_Circular); + + ADC_InitStructure.ADC_ContinuousConvMode = ADC_ContinuousConvMode_Enable; + ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; + ADC_InitStructure.ADC_ExternalTrigConvEvent = ADC_ExternalTrigConvEvent_0; + ADC_InitStructure.ADC_ExternalTrigEventEdge = ADC_ExternalTrigEventEdge_None; + ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; + ADC_InitStructure.ADC_OverrunMode = ADC_OverrunMode_Disable; + ADC_InitStructure.ADC_AutoInjMode = ADC_AutoInjec_Disable; + ADC_InitStructure.ADC_NbrOfRegChannel = 1; + ADC_Init(ADC1, &ADC_InitStructure); + + /* ADC1 regular channel7 configuration */ + ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 1, ADC_SampleTime_7Cycles5); + + /* Enable ADC1 */ + ADC_Cmd(ADC1, ENABLE); + + /* wait for ADRDY */ + while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_RDY)); + + /* Start ADC1 Software Conversion */ + ADC_StartConversion(ADC1); + + /* Test EOC flag */ + while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); + /* Get ADC1 converted data */ + + ADC_ConvertedValueX =ADC_GetConversionValue(ADC1); +} + +#endif +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/mass_mal.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/mass_mal.c new file mode 100644 index 0000000..3b5183c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/mass_mal.c @@ -0,0 +1,233 @@ +/** + ****************************************************************************** + * @file mass_mal.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Medium Access Layer interface + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "platform_config.h" +#include "mass_mal.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +uint32_t Mass_Memory_Size[2]; +uint32_t Mass_Block_Size[2]; +uint32_t Mass_Block_Count[2]; +__IO uint32_t Status = 0; + +#if defined(USE_STM3210E_EVAL) || defined(USE_STM32L152D_EVAL) +SD_CardInfo mSDCardInfo; +#endif + +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/******************************************************************************* +* Function Name : MAL_Init +* Description : Initializes the Media on the STM32 +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +uint16_t MAL_Init(uint8_t lun) +{ + uint16_t status = MAL_OK; + + switch (lun) + { + case 0: + Status = SD_Init(); + break; +#ifdef USE_STM3210E_EVAL + case 1: + NAND_Init(); + break; +#endif + default: + return MAL_FAIL; + } + return status; +} +/******************************************************************************* +* Function Name : MAL_Write +* Description : Write sectors +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +uint16_t MAL_Write(uint8_t lun, uint32_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length) +{ + + switch (lun) + { + case 0: + Status = SD_WriteMultiBlocks((uint8_t*)Writebuff, Memory_Offset, Transfer_Length,1); +#if defined(USE_STM3210E_EVAL) || defined(USE_STM32L152D_EVAL) + Status = SD_WaitWriteOperation(); + while(SD_GetStatus() != SD_TRANSFER_OK); + if ( Status != SD_OK ) + { + return MAL_FAIL; + } +#endif /* USE_STM3210E_EVAL ||USE_STM32L152D_EVAL*/ + break; +#ifdef USE_STM3210E_EVAL + case 1: + NAND_Write(Memory_Offset, Writebuff, Transfer_Length); + break; +#endif /* USE_STM3210E_EVAL */ + default: + return MAL_FAIL; + } + return MAL_OK; +} + +/******************************************************************************* +* Function Name : MAL_Read +* Description : Read sectors +* Input : None +* Output : None +* Return : Buffer pointer +*******************************************************************************/ +uint16_t MAL_Read(uint8_t lun, uint32_t Memory_Offset, uint32_t *Readbuff, uint16_t Transfer_Length) +{ + + switch (lun) + { + case 0: + + SD_ReadMultiBlocks((uint8_t*)Readbuff, Memory_Offset, Transfer_Length, 1); +#if defined(USE_STM3210E_EVAL) || defined(USE_STM32L152D_EVAL) + Status = SD_WaitReadOperation(); + while(SD_GetStatus() != SD_TRANSFER_OK) + { + } + + if ( Status != SD_OK ) + { + return MAL_FAIL; + } +#endif /* USE_STM3210E_EVAL */ + break; +#ifdef USE_STM3210E_EVAL + case 1: + NAND_Read(Memory_Offset, Readbuff, Transfer_Length); + ; + break; +#endif + default: + return MAL_FAIL; + } + return MAL_OK; +} + +/******************************************************************************* +* Function Name : MAL_GetStatus +* Description : Get status +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +uint16_t MAL_GetStatus (uint8_t lun) +{ +#ifdef USE_STM3210E_EVAL + NAND_IDTypeDef NAND_ID; + uint32_t DeviceSizeMul = 0, NumberOfBlocks = 0; +#else + SD_CSD SD_csd; + uint32_t DeviceSizeMul = 0; +#endif /* USE_STM3210E_EVAL */ + +#ifdef USE_STM32L152D_EVAL + + uint32_t NumberOfBlocks = 0; +#endif + + if (lun == 0) + { +#if defined (USE_STM3210E_EVAL) || defined(USE_STM32L152D_EVAL) + if (SD_Init() == SD_OK) + { + SD_GetCardInfo(&mSDCardInfo); + SD_SelectDeselect((uint32_t) (mSDCardInfo.RCA << 16)); + DeviceSizeMul = (mSDCardInfo.SD_csd.DeviceSizeMul + 2); + + if(mSDCardInfo.CardType == SDIO_HIGH_CAPACITY_SD_CARD) + { + Mass_Block_Count[0] = (mSDCardInfo.SD_csd.DeviceSize + 1) * 1024; + } + else + { + NumberOfBlocks = ((1 << (mSDCardInfo.SD_csd.RdBlockLen)) / 512); + Mass_Block_Count[0] = ((mSDCardInfo.SD_csd.DeviceSize + 1) * (1 << DeviceSizeMul) << (NumberOfBlocks/2)); + } + Mass_Block_Size[0] = 512; + + Status = SD_SelectDeselect((uint32_t) (mSDCardInfo.RCA << 16)); + Status = SD_EnableWideBusOperation(SDIO_BusWide_4b); + if ( Status != SD_OK ) + { + return MAL_FAIL; + } + +#else + + uint32_t temp_block_mul = 0; + SD_GetCSDRegister(&SD_csd); + DeviceSizeMul = SD_csd.DeviceSizeMul + 2; + temp_block_mul = (1 << SD_csd.RdBlockLen)/ 512; + Mass_Block_Count[0] = ((SD_csd.DeviceSize + 1) * (1 << (DeviceSizeMul))) * temp_block_mul; + Mass_Block_Size[0] = 512; + Mass_Memory_Size[0] = (Mass_Block_Count[0] * Mass_Block_Size[0]); +#endif /* USE_STM3210E_EVAL */ + Mass_Memory_Size[0] = Mass_Block_Count[0] * Mass_Block_Size[0]; + STM_EVAL_LEDOn(LED4); + return MAL_OK; + +#if defined (USE_STM3210E_EVAL) || defined(USE_STM32L152D_EVAL) + } +#endif /* USE_STM3210E_EVAL */ + } +#ifdef USE_STM3210E_EVAL + else + { + FSMC_NAND_ReadID(&NAND_ID); + if (NAND_ID.Device_ID != 0 ) + { + /* only one zone is used */ + Mass_Block_Count[1] = NAND_ZONE_SIZE * NAND_BLOCK_SIZE * NAND_MAX_ZONE ; + Mass_Block_Size[1] = NAND_PAGE_SIZE; + Mass_Memory_Size[1] = (Mass_Block_Count[1] * Mass_Block_Size[1]); + return MAL_OK; + } + } +#endif /* USE_STM3210E_EVAL */ + STM_EVAL_LEDOn(LED4); + return MAL_FAIL; +} + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/memory.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/memory.c new file mode 100644 index 0000000..e574c55 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/memory.c @@ -0,0 +1,175 @@ +/** + ****************************************************************************** + * @file memory.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Memory management layer + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ + +#include "memory.h" +#include "usb_scsi.h" +#include "usb_bot.h" +#include "usb_regs.h" +#include "usb_mem.h" +#include "usb_conf.h" +#include "hw_config.h" +#include "mass_mal.h" +#include "usb_lib.h" + +#define BULK_MAX_PACKET_SIZE 64 +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +__IO uint32_t Block_Read_count = 0; +__IO uint32_t Block_offset; +__IO uint32_t Counter = 0; +uint32_t Idx; +uint32_t Data_Buffer[64 *2]; /* 512 bytes*/ +uint8_t TransferState = TXFR_IDLE; +/* Extern variables ----------------------------------------------------------*/ +extern uint8_t Bulk_Data_Buff[64]; /* data buffer*/ +extern uint16_t Data_Len; +extern uint8_t Bot_State; +extern Bulk_Only_CBW CBW; +extern Bulk_Only_CSW CSW; +extern uint32_t Mass_Memory_Size[2]; +extern uint32_t Mass_Block_Size[2]; + +/* Private function prototypes -----------------------------------------------*/ +/* Extern function prototypes ------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/******************************************************************************* +* Function Name : Read_Memory +* Description : Handle the Read operation from the microSD card. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Read_Memory(uint8_t lun, uint32_t Memory_Offset, uint32_t Transfer_Length) +{ + static uint32_t Offset, Length; + + if (TransferState == TXFR_IDLE ) + { + Offset = Memory_Offset * Mass_Block_Size[lun]; + Length = Transfer_Length * Mass_Block_Size[lun]; + TransferState = TXFR_ONGOING; + } + + if (TransferState == TXFR_ONGOING ) + { + if (!Block_Read_count) + { + MAL_Read(lun , + Offset , + Data_Buffer, + Mass_Block_Size[lun]); + + USB_SIL_Write(EP2_IN, (uint8_t *)Data_Buffer, BULK_MAX_PACKET_SIZE); + + Block_Read_count = Mass_Block_Size[lun] - BULK_MAX_PACKET_SIZE; + Block_offset = BULK_MAX_PACKET_SIZE; + } + else + { + USB_SIL_Write(EP2_IN, (uint8_t *)Data_Buffer + Block_offset, BULK_MAX_PACKET_SIZE); + + Block_Read_count -= BULK_MAX_PACKET_SIZE; + Block_offset += BULK_MAX_PACKET_SIZE; + } + + SetEPTxCount(ENDP2, BULK_MAX_PACKET_SIZE); + SetEPTxStatus(ENDP2, EP_TX_VALID); + Offset += BULK_MAX_PACKET_SIZE; + Length -= BULK_MAX_PACKET_SIZE; + + CSW.dDataResidue -= BULK_MAX_PACKET_SIZE; + } + if (Length == 0) + { + Block_Read_count = 0; + Block_offset = 0; + Offset = 0; + Bot_State = BOT_DATA_IN_LAST; + TransferState = TXFR_IDLE; + } +} + +/******************************************************************************* +* Function Name : Write_Memory +* Description : Handle the Write operation to the microSD card. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Write_Memory (uint8_t lun, uint32_t Memory_Offset, uint32_t Transfer_Length) +{ + + static uint32_t W_Offset, W_Length; + + uint32_t temp = Counter + 64; + + if (TransferState == TXFR_IDLE ) + { + W_Offset = Memory_Offset * Mass_Block_Size[lun]; + W_Length = Transfer_Length * Mass_Block_Size[lun]; + TransferState = TXFR_ONGOING; + } + + if (TransferState == TXFR_ONGOING ) + { + + for (Idx = 0 ; Counter < temp; Counter++) + { + *((uint8_t *)Data_Buffer + Counter) = Bulk_Data_Buff[Idx++]; + } + + W_Offset += Data_Len; + W_Length -= Data_Len; + + if (!(W_Length % Mass_Block_Size[lun])) + { + Counter = 0; + MAL_Write(lun , + W_Offset - Mass_Block_Size[lun], + Data_Buffer, + Mass_Block_Size[lun]); + } + + CSW.dDataResidue -= Data_Len; + SetEPRxStatus(ENDP2, EP_RX_VALID); /* enable the next transaction*/ + } + + if ((W_Length == 0) || (Bot_State == BOT_CSW_Send)) + { + Counter = 0; + Set_CSW (CSW_CMD_PASSED, SEND_CSW_ENABLE); + TransferState = TXFR_IDLE; + } +} +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/nand_if.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/nand_if.c new file mode 100644 index 0000000..7139219 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/nand_if.c @@ -0,0 +1,557 @@ +/** + ****************************************************************************** + * @file nand_if.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief manage NAND operations state machine + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +#include "platform_config.h" + +#ifdef USE_STM3210E_EVAL +/* Includes ------------------------------------------------------------------*/ +#include "nand_if.h" +#include "mass_mal.h" +#include "fsmc_nand.h" +#include "memory.h" +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* extern variables-----------------------------------------------------------*/ +extern uint32_t SCSI_LBA; +extern uint32_t SCSI_BlkLen; +/* Private variables ---------------------------------------------------------*/ +uint16_t LUT[1024]; //Look Up Table Buffer +WRITE_STATE Write_State; +BLOCK_STATE Block_State; +NAND_ADDRESS wAddress, fAddress; +uint16_t phBlock, LogAddress, Initial_Page, CurrentZone = 0; +uint16_t Written_Pages = 0; + +uint16_t LUT[1024]; //Look Up Table Buffer +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +static uint16_t NAND_CleanLUT(uint8_t ZoneNbr); +static NAND_ADDRESS NAND_GetAddress(uint32_t Address); +static uint16_t NAND_GetFreeBlock(void); +static uint16_t NAND_Write_Cleanup(void); +SPARE_AREA ReadSpareArea(uint32_t address); +static uint16_t NAND_Copy(NAND_ADDRESS Address_Src, NAND_ADDRESS Address_Dest, uint16_t PageToCopy); +static NAND_ADDRESS NAND_ConvertPhyAddress(uint32_t Address); +static uint16_t NAND_BuildLUT(uint8_t ZoneNbr); + +/******************************************************************************* +* Function Name : NAND_Init +* Description : Init NAND Interface +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +uint16_t NAND_Init(void) +{ + uint16_t Status = NAND_OK; + + FSMC_NAND_Init(); + Status = NAND_BuildLUT(0); + Write_State = WRITE_IDLE; + return Status; +} + +/******************************************************************************* +* Function Name : NAND_Write +* Description : write one sector by once +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +uint16_t NAND_Write(uint32_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length) +{ + /* check block status and calculate start and end addresses */ + wAddress = NAND_GetAddress(Memory_Offset / 512); + + /*check Zone: if second zone is requested build second LUT*/ + if (wAddress.Zone != CurrentZone) + { + CurrentZone = wAddress.Zone; + NAND_BuildLUT(CurrentZone); + } + + phBlock = LUT[wAddress.Block]; /* Block Index + flags */ + LogAddress = wAddress.Block ; /* save logical block */ + + /* IDLE state */ + /****************/ + if ( Write_State == WRITE_IDLE) + {/* Idle state */ + + if (phBlock & USED_BLOCK) + { /* USED BLOCK */ + + Block_State = OLD_BLOCK; + /* Get a free Block for swap */ + fAddress.Block = NAND_GetFreeBlock(); + fAddress.Zone = wAddress.Zone; + Initial_Page = fAddress.Page = wAddress.Page; + + /* write the new page */ + FSMC_NAND_WriteSmallPage((uint8_t *)Writebuff, fAddress, PAGE_TO_WRITE); + Written_Pages++; + + /* get physical block */ + wAddress.Block = phBlock & 0x3FF; + + + if (Written_Pages == SCSI_BlkLen) + { + NAND_Write_Cleanup(); + Written_Pages = 0; + return NAND_OK; + } + else + { + if (wAddress.Page == (NAND_BLOCK_SIZE - 1)) + { + NAND_Write_Cleanup(); + return NAND_OK; + } + Write_State = WRITE_ONGOING; + return NAND_OK; + } + } + else + {/* UNUSED BLOCK */ + + Block_State = UNUSED_BLOCK; + /* write the new page */ + wAddress.Block = phBlock & 0x3FF; + FSMC_NAND_WriteSmallPage( (uint8_t *)Writebuff , wAddress, PAGE_TO_WRITE); + + Written_Pages++; + if (Written_Pages == SCSI_BlkLen) + { + Written_Pages = 0; + NAND_Write_Cleanup(); + return NAND_OK; + } + else + { + Write_State = WRITE_ONGOING; + return NAND_OK; + } + } + } + /* WRITE state */ + /***************/ + if ( Write_State == WRITE_ONGOING) + {/* Idle state */ + if (phBlock & USED_BLOCK) + { /* USED BLOCK */ + + wAddress.Block = phBlock & 0x3FF; + Block_State = OLD_BLOCK; + fAddress.Page = wAddress.Page; + + /* check if next pages are in next block */ + if (wAddress.Page == (NAND_BLOCK_SIZE - 1)) + { + /* write Last page */ + FSMC_NAND_WriteSmallPage( (uint8_t *)Writebuff , fAddress, PAGE_TO_WRITE); + Written_Pages++; + if (Written_Pages == SCSI_BlkLen) + { + Written_Pages = 0; + } + /* Clean up and Update the LUT */ + NAND_Write_Cleanup(); + Write_State = WRITE_IDLE; + return NAND_OK; + } + + /* write next page */ + FSMC_NAND_WriteSmallPage( (uint8_t *)Writebuff , fAddress, PAGE_TO_WRITE); + Written_Pages++; + if (Written_Pages == SCSI_BlkLen) + { + Write_State = WRITE_IDLE; + NAND_Write_Cleanup(); + Written_Pages = 0; + } + + } + else + {/* UNUSED BLOCK */ + wAddress.Block = phBlock & 0x3FF; + /* check if it is the last page in prev block */ + if (wAddress.Page == (NAND_BLOCK_SIZE - 1)) + { + /* write Last page */ + FSMC_NAND_WriteSmallPage( (uint8_t *)Writebuff , wAddress, PAGE_TO_WRITE); + Written_Pages++; + if (Written_Pages == SCSI_BlkLen) + { + Written_Pages = 0; + } + + /* Clean up and Update the LUT */ + NAND_Write_Cleanup(); + Write_State = WRITE_IDLE; + + + + return NAND_OK; + } + /* write next page in same block */ + FSMC_NAND_WriteSmallPage( (uint8_t *)Writebuff , wAddress, PAGE_TO_WRITE); + Written_Pages++; + if (Written_Pages == SCSI_BlkLen) + { + Write_State = WRITE_IDLE; + NAND_Write_Cleanup(); + Written_Pages = 0; + } + } + } + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_Read +* Description : Read sectors +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +uint16_t NAND_Read(uint32_t Memory_Offset, uint32_t *Readbuff, uint16_t Transfer_Length) +{ + NAND_ADDRESS phAddress; + + phAddress = NAND_GetAddress(Memory_Offset / 512); + + if (phAddress.Zone != CurrentZone) + { + CurrentZone = phAddress.Zone; + NAND_BuildLUT(CurrentZone); + } + + if (LUT [phAddress.Block] & BAD_BLOCK) + { + return NAND_FAIL; + } + else + { + phAddress.Block = LUT [phAddress.Block] & ~ (USED_BLOCK | VALID_BLOCK); + FSMC_NAND_ReadSmallPage ( (uint8_t *)Readbuff , phAddress, Transfer_Length / 512); + } + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_CleanLUT +* Description : Erase old blocks & rebuild the look up table +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +static uint16_t NAND_CleanLUT (uint8_t ZoneNbr) +{ +#ifdef WEAR_LEVELLING_SUPPORT + uint16_t BlockIdx, LUT_Item; +#endif + /* Rebuild the LUT for the current zone */ + NAND_BuildLUT (ZoneNbr); + +#ifdef WEAR_LEVELLING_SUPPORT + /* Wear Leveling : circular use of free blocks */ + LUT_Item = LUT [BlockIdx] + for (BlockIdx == MAX_LOG_BLOCKS_PER_ZONE ; BlockIdx < MAX_LOG_BLOCKS_PER_ZONE + WEAR_DEPTH ; BlockIdx++) + { + LUT [BlockIdx] = LUT [BlockIdx + 1]; + } + LUT [ MAX_LOG_BLOCKS_PER_ZONE + WEAR_DEPTH - 1] = LUT_Item ; +#endif + + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_GetAddress +* Description : Translate logical address into a phy one +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +static NAND_ADDRESS NAND_GetAddress (uint32_t Address) +{ + NAND_ADDRESS Address_t; + + Address_t.Page = Address & (NAND_BLOCK_SIZE - 1); + Address_t.Block = Address / NAND_BLOCK_SIZE; + Address_t.Zone = 0; + + while (Address_t.Block >= MAX_LOG_BLOCKS_PER_ZONE) + { + Address_t.Block -= MAX_LOG_BLOCKS_PER_ZONE; + Address_t.Zone++; + } + return Address_t; +} + +/******************************************************************************* +* Function Name : NAND_GetFreeBlock +* Description : Look for a free block for data exchange +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +static uint16_t NAND_GetFreeBlock (void) +{ + return LUT[MAX_LOG_BLOCKS_PER_ZONE]& ~(USED_BLOCK | VALID_BLOCK); +} + +/******************************************************************************* +* Function Name : ReadSpareArea +* Description : Check used block +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +SPARE_AREA ReadSpareArea (uint32_t address) +{ + SPARE_AREA t; + uint8_t Buffer[16]; + NAND_ADDRESS address_s; + address_s = NAND_ConvertPhyAddress(address); + FSMC_NAND_ReadSpareArea(Buffer , address_s, 1) ; + + t = *(SPARE_AREA *)Buffer; + + return t; +} + +/******************************************************************************* +* Function Name : NAND_Copy +* Description : Copy page +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +static uint16_t NAND_Copy (NAND_ADDRESS Address_Src, NAND_ADDRESS Address_Dest, uint16_t PageToCopy) +{ + uint8_t Copybuff[512]; + for ( ; PageToCopy > 0 ; PageToCopy-- ) + { + FSMC_NAND_ReadSmallPage ((uint8_t *)Copybuff, Address_Src , 1 ); + FSMC_NAND_WriteSmallPage ((uint8_t *)Copybuff, Address_Dest, 1); + FSMC_NAND_AddressIncrement(&Address_Src); + FSMC_NAND_AddressIncrement(&Address_Dest); + } + + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_Format +* Description : Format the entire NAND flash +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +uint16_t NAND_Format (void) +{ + NAND_ADDRESS phAddress; + SPARE_AREA SpareArea; + uint32_t BlockIndex; + + for (BlockIndex = 0 ; BlockIndex < NAND_ZONE_SIZE * NAND_MAX_ZONE; BlockIndex++) + { + phAddress = NAND_ConvertPhyAddress(BlockIndex * NAND_BLOCK_SIZE ); + SpareArea = ReadSpareArea(BlockIndex * NAND_BLOCK_SIZE); + + if((SpareArea.DataStatus != 0)||(SpareArea.BlockStatus != 0)){ + FSMC_NAND_EraseBlock (phAddress); + } + } + NAND_BuildLUT(0); + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_Write_Cleanup +* Description : None +* Input : None +* Output : None +* Return : Status +*******************************************************************************/ +static uint16_t NAND_Write_Cleanup (void) +{ + uint16_t tempSpareArea [8]; + uint16_t Page_Back; + + if ( Block_State == OLD_BLOCK ) + { + /* precopy old first pages */ + if (Initial_Page != 0) + { + Page_Back = wAddress.Page; + fAddress.Page = wAddress.Page = 0; + NAND_Copy (wAddress, fAddress, Initial_Page); + wAddress.Page = Page_Back ; + } + + /* postcopy remaining pages */ + if ((NAND_BLOCK_SIZE - (wAddress.Page + 1)) != 0) + { + FSMC_NAND_AddressIncrement(&wAddress); + fAddress.Page = wAddress.Page; + NAND_Copy (wAddress, fAddress, NAND_BLOCK_SIZE - wAddress.Page); + } + + /* assign logical address to new block */ + tempSpareArea [0] = LogAddress | USED_BLOCK ; + tempSpareArea [1] = 0xFFFF; + tempSpareArea [2] = 0xFFFF; + + fAddress.Page = 0x00; + FSMC_NAND_WriteSpareArea( (uint8_t *)tempSpareArea , fAddress , 1); + + /* erase old block */ + FSMC_NAND_EraseBlock(wAddress); + NAND_CleanLUT(wAddress.Zone); + } + else + {/* unused block case */ + /* assign logical address to the new used block */ + tempSpareArea [0] = LogAddress | USED_BLOCK ; + tempSpareArea [1] = 0xFFFF; + tempSpareArea [2] = 0xFFFF; + + wAddress.Page = 0x00; + FSMC_NAND_WriteSpareArea((uint8_t *)tempSpareArea , wAddress, 1); + NAND_CleanLUT(wAddress.Zone); + } + return NAND_OK; +} + +/******************************************************************************* +* Function Name : NAND_ConvertPhyAddress +* Description : None +* Input : physical Address +* Output : None +* Return : Status +*******************************************************************************/ +static NAND_ADDRESS NAND_ConvertPhyAddress (uint32_t Address) +{ + NAND_ADDRESS Address_t; + + Address_t.Page = Address & (NAND_BLOCK_SIZE - 1); + Address_t.Block = Address / NAND_BLOCK_SIZE; + Address_t.Zone = 0; + + while (Address_t.Block >= MAX_PHY_BLOCKS_PER_ZONE) + { + Address_t.Block -= MAX_PHY_BLOCKS_PER_ZONE; + Address_t.Zone++; + } + return Address_t; +} + +/******************************************************************************* +* Function Name : NAND_BuildLUT +* Description : Build the look up table +* Input : None +* Output : None +* Return : Status +* !!!! NOTE : THIS ALGORITHM IS A SUBJECT OF PATENT FOR STMICROELECTRONICS !!!!! +*******************************************************************************/ +static uint16_t NAND_BuildLUT (uint8_t ZoneNbr) +{ + + uint16_t pBadBlock, pCurrentBlock, pFreeBlock; + SPARE_AREA SpareArea; + /***************************************************************************** + 1st step : Init. + *****************************************************************************/ + /*Init the LUT (assume all blocks free) */ + for (pCurrentBlock = 0 ; pCurrentBlock < MAX_PHY_BLOCKS_PER_ZONE ; pCurrentBlock++) + { + LUT[pCurrentBlock] = FREE_BLOCK; /* 12th bit is set to 1 */ + } + + /* Init Pointers */ + pBadBlock = MAX_PHY_BLOCKS_PER_ZONE - 1; + pCurrentBlock = 0; + + /***************************************************************************** + 2nd step : locate used and bad blocks + *****************************************************************************/ + + while (pCurrentBlock < MAX_PHY_BLOCKS_PER_ZONE) + { + + SpareArea = ReadSpareArea(pCurrentBlock * NAND_BLOCK_SIZE + (ZoneNbr * NAND_BLOCK_SIZE * MAX_PHY_BLOCKS_PER_ZONE)); + + if ((SpareArea.DataStatus == 0) || (SpareArea.BlockStatus == 0)) + { + + LUT[pBadBlock--] |= pCurrentBlock | (uint16_t)BAD_BLOCK ; + LUT[pCurrentBlock] &= (uint16_t)~FREE_BLOCK; + if (pBadBlock == MAX_LOG_BLOCKS_PER_ZONE) + { + return NAND_FAIL; + } + } + else if (SpareArea.LogicalIndex != 0xFFFF) + { + + LUT[SpareArea.LogicalIndex & 0x3FF] |= pCurrentBlock | VALID_BLOCK | USED_BLOCK; + LUT[pCurrentBlock] &= (uint16_t)( ~FREE_BLOCK); + } + pCurrentBlock++ ; + } + + /***************************************************************************** + 3rd step : locate Free Blocks by scanning the LUT already built partially + *****************************************************************************/ + pFreeBlock = 0; + for (pCurrentBlock = 0 ; pCurrentBlock < MAX_PHY_BLOCKS_PER_ZONE ; pCurrentBlock++ ) + { + + if ( !(LUT[pCurrentBlock]& USED_BLOCK)) + { + do + { + if (LUT[pFreeBlock] & FREE_BLOCK) + { + + LUT [pCurrentBlock] |= pFreeBlock; + LUT [pFreeBlock] &= ~FREE_BLOCK; + break; + } + pFreeBlock++; + } + while ( pFreeBlock < MAX_PHY_BLOCKS_PER_ZONE ); + } + } + return NAND_OK; +} +#endif + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/scsi_data.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/scsi_data.c new file mode 100644 index 0000000..9979d19 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/scsi_data.c @@ -0,0 +1,158 @@ +/** + ****************************************************************************** + * @file scsi_data.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Initialization of the SCSI data + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "usb_scsi.h" +#include "memory.h" + + +uint8_t Page00_Inquiry_Data[] = + { + 0x00, /* PERIPHERAL QUALIFIER & PERIPHERAL DEVICE TYPE*/ + 0x00, + 0x00, + 0x00, + 0x00 /* Supported Pages 00*/ + }; +uint8_t Standard_Inquiry_Data[] = + { + 0x00, /* Direct Access Device */ + 0x80, /* RMB = 1: Removable Medium */ + 0x02, /* Version: No conformance claim to standard */ + 0x02, + + 36 - 4, /* Additional Length */ + 0x00, /* SCCS = 1: Storage Controller Component */ + 0x00, + 0x00, + /* Vendor Identification */ + 'S', 'T', 'M', ' ', ' ', ' ', ' ', ' ', + /* Product Identification */ + 'S', 'D', ' ', 'F', 'l', 'a', 's', 'h', ' ', + 'D', 'i', 's', 'k', ' ', ' ', ' ', + /* Product Revision Level */ + '1', '.', '0', ' ' + }; +uint8_t Standard_Inquiry_Data2[] = + { + 0x00, /* Direct Access Device */ + 0x80, /* RMB = 1: Removable Medium */ + 0x02, /* Version: No conformance claim to standard */ + 0x02, + + 36 - 4, /* Additional Length */ + 0x00, /* SCCS = 1: Storage Controller Component */ + 0x00, + 0x00, + /* Vendor Identification */ + 'S', 'T', 'M', ' ', ' ', ' ', ' ', ' ', + /* Product Identification */ + 'N', 'A', 'N', 'D', ' ', 'F', 'l', 'a', 's', 'h', ' ', + 'D', 'i', 's', 'k', ' ', + /* Product Revision Level */ + '1', '.', '0', ' ' + }; +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +uint8_t Mode_Sense6_data[] = + { + 0x03, + 0x00, + 0x00, + 0x00, + }; + +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ + +uint8_t Mode_Sense10_data[] = + { + 0x00, + 0x06, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 + }; +uint8_t Scsi_Sense_Data[] = + { + 0x70, /*RespCode*/ + 0x00, /*SegmentNumber*/ + NO_SENSE, /* Sens_Key*/ + 0x00, + 0x00, + 0x00, + 0x00, /*Information*/ + 0x0A, /*AdditionalSenseLength*/ + 0x00, + 0x00, + 0x00, + 0x00, /*CmdInformation*/ + NO_SENSE, /*Asc*/ + 0x00, /*ASCQ*/ + 0x00, /*FRUC*/ + 0x00, /*TBD*/ + 0x00, + 0x00 /*SenseKeySpecific*/ + }; +uint8_t ReadCapacity10_Data[] = + { + /* Last Logical Block */ + 0, + 0, + 0, + 0, + + /* Block Length */ + 0, + 0, + 0, + 0 + }; + +uint8_t ReadFormatCapacity_Data [] = + { + 0x00, + 0x00, + 0x00, + 0x08, /* Capacity List Length */ + + /* Block Count */ + 0, + 0, + 0, + 0, + + /* Block Length */ + 0x02,/* Descriptor Code: Formatted Media */ + 0, + 0, + 0 + }; + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/stm32_it.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/stm32_it.c new file mode 100644 index 0000000..a2ee2d8 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/stm32_it.c @@ -0,0 +1,426 @@ +/** + ****************************************************************************** + * @file stm32_it.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Main Interrupt Service Routines. + * This file provides template for all exceptions handler and peripherals + * interrupt service routine. + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ + +#include "stm32_it.h" +#include "usb_istr.h" +#include "usb_lib.h" +#include "usb_pwr.h" +#include "hw_config.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +__IO uint8_t Send_Buffer[2]; +extern __IO uint8_t PrevXferComplete; +extern uint32_t ADC_ConvertedValueX; +extern uint32_t ADC_ConvertedValueX_1; +extern __IO uint32_t TimingDelay; + +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/******************************************************************************/ +/* Cortex-M Processor Exceptions Handlers */ +/******************************************************************************/ + +/******************************************************************************* +* Function Name : NMI_Handler +* Description : This function handles NMI exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void NMI_Handler(void) +{ +} + +/******************************************************************************* +* Function Name : HardFault_Handler +* Description : This function handles Hard Fault exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void HardFault_Handler(void) +{ + /* Go to infinite loop when Hard Fault exception occurs */ + while (1) + { + } +} + +/******************************************************************************* +* Function Name : MemManage_Handler +* Description : This function handles Memory Manage exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void MemManage_Handler(void) +{ + /* Go to infinite loop when Memory Manage exception occurs */ + while (1) + { + } +} + +/******************************************************************************* +* Function Name : BusFault_Handler +* Description : This function handles Bus Fault exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void BusFault_Handler(void) +{ + /* Go to infinite loop when Bus Fault exception occurs */ + while (1) + { + } +} + +/******************************************************************************* +* Function Name : UsageFault_Handler +* Description : This function handles Usage Fault exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void UsageFault_Handler(void) +{ + /* Go to infinite loop when Usage Fault exception occurs */ + while (1) + { + } +} + +/******************************************************************************* +* Function Name : SVC_Handler +* Description : This function handles SVCall exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void SVC_Handler(void) +{ +} + +/******************************************************************************* +* Function Name : DebugMon_Handler +* Description : This function handles Debug Monitor exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void DebugMon_Handler(void) +{ +} + +/******************************************************************************* +* Function Name : PendSV_Handler +* Description : This function handles PendSVC exception. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void PendSV_Handler(void) +{ +} + +/******************************************************************************* +* Function Name : SysTick_Handler +* Description : This function handles SysTick Handler. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void SysTick_Handler(void) +{ + TimingDelay--; +} + +/******************************************************************************/ +/* STM32 Peripherals Interrupt Handlers */ +/******************************************************************************/ + +/******************************************************************************* +* Function Name : USB_IRQHandler +* Description : This function handles USB Low Priority interrupts +* requests. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) || defined (STM32F37X) +void USB_LP_IRQHandler(void) +#else +void USB_LP_CAN1_RX0_IRQHandler(void) +#endif +{ + USB_Istr(); +} + +#if defined(STM32L1XX_MD) +/******************************************************************************* +* Function Name : EXTI15_10_IRQHandler +* Description : This function handles External lines 15 to 10 interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void EXTI15_10_IRQHandler(void) +{ + /* Check on the RIGHT button */ + if(EXTI_GetITStatus(RIGHT_BUTTON_EXTI_LINE) != RESET) + { + if ((PrevXferComplete) && (bDeviceState == CONFIGURED)) + { + Send_Buffer[0] = 0x05; + + if (STM_EVAL_PBGetState(Button_RIGHT) == Bit_RESET) + { + Send_Buffer[1] = 0x01; + } + else + { + Send_Buffer[1] = 0x00; + } + + /* Write the descriptor through the endpoint */ + USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer, 2); + + SetEPTxValid(ENDP1); + + PrevXferComplete = 0; + } + /* Clear the EXTI line pending bit */ + EXTI_ClearITPendingBit(RIGHT_BUTTON_EXTI_LINE); + } + + /* Check on the LEFT button */ + if(EXTI_GetITStatus(LEFT_BUTTON_EXTI_LINE) != RESET) + { + if ((PrevXferComplete) && (bDeviceState == CONFIGURED)) + { + Send_Buffer[0] = 0x06; + + if (STM_EVAL_PBGetState(Button_LEFT) == Bit_RESET) + { + Send_Buffer[1] = 0x01; + } + else + { + Send_Buffer[1] = 0x00; + } + + /* Write the descriptor through the endpoint */ + USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer, 2); + + SetEPTxValid(ENDP1); + + PrevXferComplete = 0; + } + /* Clear the EXTI line pending bit */ + EXTI_ClearITPendingBit(LEFT_BUTTON_EXTI_LINE); + } +} +#endif +/******************************************************************************* +* Function Name : DMA1_Channel1_IRQHandler +* Description : This function handles DMA1 Channel 1 interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void DMA1_Channel1_IRQHandler(void) +{ + Send_Buffer[0] = 0x07; + + if((ADC_ConvertedValueX >>4) - (ADC_ConvertedValueX_1 >>4) > 4) + { + if ((PrevXferComplete) && (bDeviceState == CONFIGURED)) + { + Send_Buffer[1] = (uint8_t)(ADC_ConvertedValueX >>4); + + /* Write the descriptor through the endpoint */ + USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer, 2); + SetEPTxValid(ENDP1); + ADC_ConvertedValueX_1 = ADC_ConvertedValueX; + PrevXferComplete = 0; + } + } + + DMA_ClearFlag(DMA1_FLAG_TC1); +} + +/******************************************************************************* +* Function Name : EXTI_IRQHandler +* Description : This function handles External lines interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) +void EXTI0_IRQHandler(void) +#elif defined (STM32F37X) +void EXTI2_TS_IRQHandler(void) +#else +void EXTI9_5_IRQHandler(void) +#endif +{ + if(EXTI_GetITStatus(KEY_BUTTON_EXTI_LINE) != RESET) + { + if ((PrevXferComplete) && (bDeviceState == CONFIGURED)) + { + Send_Buffer[0] = 0x05; +#if defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) + if (!STM_EVAL_PBGetState(Button_KEY) == Bit_RESET) +#else + if (STM_EVAL_PBGetState(Button_KEY) == Bit_RESET) +#endif + { + Send_Buffer[1] = 0x01; + } + else + { + Send_Buffer[1] = 0x00; + } + + /* Write the descriptor through the endpoint */ + USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer, 2); + SetEPTxValid(ENDP1); + PrevXferComplete = 0; + } + /* Clear the EXTI line pending bit */ + EXTI_ClearITPendingBit(KEY_BUTTON_EXTI_LINE); + } +} +#if !defined(STM32L1XX_MD) && !defined(STM32L1XX_HD) && !defined(STM32L1XX_MD_PLUS)&& ! defined (STM32F37X) && ! defined (STM32F30X) +/******************************************************************************* +* Function Name : EXTI15_10_IRQHandler +* Description : This function handles External lines 15 to 10 interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void EXTI15_10_IRQHandler(void) +{ + if(EXTI_GetITStatus(TAMPER_BUTTON_EXTI_LINE) != RESET) + { + if ((PrevXferComplete) && (bDeviceState == CONFIGURED)) + { + Send_Buffer[0] = 0x06; + + if (STM_EVAL_PBGetState(Button_TAMPER) == Bit_RESET) + { + Send_Buffer[1] = 0x01; + } + else + { + Send_Buffer[1] = 0x00; + } + + /* Write the descriptor through the endpoint */ + USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer, 2); + + SetEPTxValid(ENDP1); + + PrevXferComplete = 0; + } + /* Clear the EXTI line 13 pending bit */ + EXTI_ClearITPendingBit(TAMPER_BUTTON_EXTI_LINE); + } +} + +#endif /*STM32L1XX_HD*/ + +#if defined(STM32F10X_HD) || defined(STM32F10X_XL) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) +/******************************************************************************* +* Function Name : SDIO_IRQHandler +* Description : This function handles SDIO global interrupt request. +* requests. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +void SDIO_IRQHandler(void) +{ + /* Process All SDIO Interrupt Sources */ + SD_ProcessIRQSrc(); + +} + +void SD_SDIO_DMA_IRQHANDLER(void) +{ + /* Process DMA2 Stream3 or DMA2 Stream6 Interrupt Sources */ + SD_ProcessDMAIRQ(); +} + +#endif /* STM32F10X_HD | STM32F10X_XL*/ + +/******************************************************************************* +* Function Name : USB_FS_WKUP_IRQHandler +* Description : This function handles USB WakeUp interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ + +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS) +void USB_FS_WKUP_IRQHandler(void) +#else +void USBWakeUp_IRQHandler(void) +#endif +{ + EXTI_ClearITPendingBit(EXTI_Line18); +} + +/******************************************************************************/ +/* STM32 Peripherals Interrupt Handlers */ +/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ +/* available peripheral interrupt handler's name please refer to the startup */ +/* file (startup_stm32xxx.s). */ +/******************************************************************************/ + +/******************************************************************************* +* Function Name : PPP_IRQHandler +* Description : This function handles PPP interrupt request. +* Input : None +* Output : None +* Return : None +*******************************************************************************/ +/*void PPP_IRQHandler(void) +{ +}*/ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f10x.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f10x.c new file mode 100644 index 0000000..3686a2f --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f10x.c @@ -0,0 +1,917 @@ +/** + ****************************************************************************** + * @file system_stm32f10x.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * factors, AHB/APBx prescalers and Flash settings). + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f10x_xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f10x_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 3. If the system clock source selected by user fails to startup, the SystemInit() + * function will do nothing and HSI still used as system clock source. User can + * add some code to deal with this issue inside the SetSysClock() function. + * + * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depedning on + * the product used), refer to "HSE_VALUE" define in "stm32f10x.h" file. + * When HSE is used as system clock source, directly or through PLL, and you + * are using different crystal you have to adapt the HSE value to your own + * configuration. + * + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f10x_system + * @{ + */ + +/** @addtogroup STM32F10x_System_Private_Includes + * @{ + */ + +#include "stm32f10x.h" + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_Defines + * @{ + */ + +/*!< Uncomment the line corresponding to the desired System clock (SYSCLK) + frequency (after reset the HSI is used as SYSCLK source) + + IMPORTANT NOTE: + ============== + 1. After each device reset the HSI is used as System clock source. + + 2. Please make sure that the selected System clock doesn't exceed your device's + maximum frequency. + + 3. If none of the define below is enabled, the HSI is used as System clock + source. + + 4. The System clock configuration functions provided within this file assume that: + - For Low, Medium and High density Value line devices an external 8MHz + crystal is used to drive the System clock. + - For Low, Medium and High density devices an external 8MHz crystal is + used to drive the System clock. + - For Connectivity line devices an external 25MHz crystal is used to drive + the System clock. + If you are using different crystal you have to adapt those functions accordingly. + */ + +#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) +/* #define SYSCLK_FREQ_HSE HSE_VALUE */ + #define SYSCLK_FREQ_24MHz 24000000 +#else +/* #define SYSCLK_FREQ_HSE HSE_VALUE */ +/* #define SYSCLK_FREQ_24MHz 24000000 */ +/* #define SYSCLK_FREQ_36MHz 36000000 */ +/* #define SYSCLK_FREQ_48MHz 48000000 */ +/* #define SYSCLK_FREQ_56MHz 56000000 */ +#define SYSCLK_FREQ_72MHz 72000000 +#endif + +/*!< Uncomment the following line if you need to use external SRAM mounted + on STM3210E-EVAL board (STM32 High density and XL-density devices) or on + STM32100E-EVAL board (STM32 High-density value line devices) as data memory */ +#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) +/* #define DATA_IN_ExtSRAM */ +#endif + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ + + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_Variables + * @{ + */ + +/******************************************************************************* +* Clock Definitions +*******************************************************************************/ +#ifdef SYSCLK_FREQ_HSE + uint32_t SystemCoreClock = SYSCLK_FREQ_HSE; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_24MHz + uint32_t SystemCoreClock = SYSCLK_FREQ_24MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_36MHz + uint32_t SystemCoreClock = SYSCLK_FREQ_36MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_48MHz + uint32_t SystemCoreClock = SYSCLK_FREQ_48MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_56MHz + uint32_t SystemCoreClock = SYSCLK_FREQ_56MHz; /*!< System Clock Frequency (Core Clock) */ +#elif defined SYSCLK_FREQ_72MHz + uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ +#else /*!< HSI Selected as System Clock source */ + uint32_t SystemCoreClock = HSI_VALUE; /*!< System Clock Frequency (Core Clock) */ +#endif + +__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_FunctionPrototypes + * @{ + */ + +static void SetSysClock(void); + +#ifdef SYSCLK_FREQ_HSE + static void SetSysClockToHSE(void); +#elif defined SYSCLK_FREQ_24MHz + static void SetSysClockTo24(void); +#elif defined SYSCLK_FREQ_36MHz + static void SetSysClockTo36(void); +#elif defined SYSCLK_FREQ_48MHz + static void SetSysClockTo48(void); +#elif defined SYSCLK_FREQ_56MHz + static void SetSysClockTo56(void); +#elif defined SYSCLK_FREQ_72MHz + static void SetSysClockTo72(void); +#endif + +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ + +/** + * @} + */ + +/** @addtogroup STM32F10x_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +void SystemInit (void) +{ + /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ + + RCC->CFGR &= (uint32_t)0xF8FF0000; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */ + RCC->CFGR &= (uint32_t)0xFF80FFFF; + +#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000; + + /* Reset CFGR2 register */ + RCC->CFGR2 = 0x00000000; +#else + /* Disable all interrupts and clear pending bits */ + RCC->CIR = 0x009F0000; +#endif /* STM32F10X_XX */ + +#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL) + #ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); + #endif /* DATA_IN_ExtSRAM */ +#endif + + /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */ + /* Configure the Flash Latency cycles and enable prefetch buffer */ + SetSysClock(); + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f1xx.h file (default value + * 8 MHz or 25 MHz, depending on the product used), user has to ensure + * that HSE_VALUE is same as the real frequency of the crystal used. + * Otherwise, this function may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0; + +#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) + uint32_t prediv1factor = 0; +#endif /* STM32F10X_LD_VL or STM32F10X_MD_VL or STM32F10X_HD_VL */ + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock */ + + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + + pllmull = ( pllmull >> 18) + 2; + + if (pllsource == 0x00) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + #else + /* HSE selected as PLL clock entry */ + if ((RCC->CFGR & RCC_CFGR_PLLXTPRE) != (uint32_t)RESET) + {/* HSE oscillator clock divided by 2 */ + SystemCoreClock = (HSE_VALUE >> 1) * pllmull; + } + else + { + SystemCoreClock = HSE_VALUE * pllmull; + } + #endif + } + + break; + + default: + SystemCoreClock = HSI_VALUE; + break; + } + + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers. + * @param None + * @retval None + */ +static void SetSysClock(void) +{ +#ifdef SYSCLK_FREQ_HSE + SetSysClockToHSE(); +#elif defined SYSCLK_FREQ_24MHz + SetSysClockTo24(); +#elif defined SYSCLK_FREQ_36MHz + SetSysClockTo36(); +#elif defined SYSCLK_FREQ_48MHz + SetSysClockTo48(); +#elif defined SYSCLK_FREQ_56MHz + SetSysClockTo56(); +#elif defined SYSCLK_FREQ_72MHz + SetSysClockTo72(); +#endif + + /* If none of the define above is enabled, the HSI is used as System clock + source (default after reset) */ +} + +/** + * @brief Setup the external memory controller. Called in startup_stm32f10x.s + * before jump to __main + * @param None + * @retval None + */ +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f10x_xx.s/.c before jump to main. + * This function configures the external SRAM mounted on STM3210E-EVAL + * board (STM32 High density devices). This SRAM will be used as program + * data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ +/*!< FSMC Bank1 NOR/SRAM3 is used for the STM3210E-EVAL, if another Bank is + required, then adjust the Register Addresses */ + + /* Enable FSMC clock */ + RCC->AHBENR = 0x00000114; + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG clocks */ + RCC->APB2ENR = 0x000001E0; + +/* --------------- SRAM Data lines, NOE and NWE configuration ---------------*/ +/*---------------- SRAM Address lines configuration -------------------------*/ +/*---------------- NOE and NWE configuration --------------------------------*/ +/*---------------- NE3 configuration ----------------------------------------*/ +/*---------------- NBL0, NBL1 configuration ---------------------------------*/ + + GPIOD->CRL = 0x44BB44BB; + GPIOD->CRH = 0xBBBBBBBB; + + GPIOE->CRL = 0xB44444BB; + GPIOE->CRH = 0xBBBBBBBB; + + GPIOF->CRL = 0x44BBBBBB; + GPIOF->CRH = 0xBBBB4444; + + GPIOG->CRL = 0x44BBBBBB; + GPIOG->CRH = 0x44444B44; + +/*---------------- FSMC Configuration ---------------------------------------*/ +/*---------------- Enable FSMC Bank1_SRAM Bank ------------------------------*/ + + FSMC_Bank1->BTCR[4] = 0x00001011; + FSMC_Bank1->BTCR[5] = 0x00000200; +} +#endif /* DATA_IN_ExtSRAM */ + +#ifdef SYSCLK_FREQ_HSE +/** + * @brief Selects HSE as System clock source and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockToHSE(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + +#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 0 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; +#endif + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* Select HSE as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_HSE; + + /* Wait till HSE is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x04) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_24MHz +/** + * @brief Sets System clock frequency to 24MHz and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockTo24(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { +#if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 0 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0; +#endif + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + +#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) + /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLMULL6); +#else + /* PLL configuration: = (HSE / 2) * 6 = 24 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL6); +#endif /* STM32F10X_XX */ + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_36MHz +/** + * @brief Sets System clock frequency to 36MHz and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockTo36(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 1 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* PLL configuration: PLLCLK = (HSE / 2) * 9 = 36 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#elif defined SYSCLK_FREQ_48MHz +/** + * @brief Sets System clock frequency to 48MHz and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockTo48(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 1 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: PLLCLK = HSE * 6 = 48 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#elif defined SYSCLK_FREQ_56MHz +/** + * @brief Sets System clock frequency to 56MHz and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockTo56(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 2 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + + /* PLL configuration: PLLCLK = HSE * 7 = 56 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL7); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#elif defined SYSCLK_FREQ_72MHz +/** + * @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2 + * and PCLK1 prescalers. + * @note This function should be used only after reset. + * @param None + * @retval None + */ +static void SetSysClockTo72(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTBE; + + /* Flash 2 wait state */ + FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); + FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2; + + + /* HCLK = SYSCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | + RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} +#endif + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f30x.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f30x.c new file mode 100644 index 0000000..31faf5c --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32f30x.c @@ -0,0 +1,382 @@ +/** + ****************************************************************************** + * @file system_stm32f30x.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * This file contains the system clock configuration for STM32F30x devices, + * and is generated by the clock configuration tool + * stm32f30x_Clock_Configuration_V1.0.0.xls + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * and Divider factors, AHB/APBx prescalers and Flash settings), + * depending on the configuration made in the clock xls tool. + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f30x.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the HSI (8 MHz) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32f30x.s" file, to + * configure the system clock before to branch to main program. + * + * 3. If the system clock source selected by user fails to startup, the SystemInit() + * function will do nothing and HSI still used as system clock source. User can + * add some code to deal with this issue inside the SetSysClock() function. + * + * 4. The default value of HSE crystal is set to 8MHz, refer to "HSE_VALUE" define + * in "stm32f30x.h" file. When HSE is used as system clock source, directly or + * through PLL, and you are using different crystal you have to adapt the HSE + * value to your own configuration. + * + * 5. This file configures the system clock as follows: + *============================================================================= + * Supported STM32F30x device + *----------------------------------------------------------------------------- + * System Clock source | PLL (HSE) + *----------------------------------------------------------------------------- + * SYSCLK(Hz) | 72000000 + *----------------------------------------------------------------------------- + * HCLK(Hz) | 72000000 + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 2 + *----------------------------------------------------------------------------- + * HSE Frequency(Hz) | 8000000 + *---------------------------------------------------------------------------- + * PLLMUL | 9 + *----------------------------------------------------------------------------- + * PREDIV | 1 + *----------------------------------------------------------------------------- + * USB Clock | ENABLE + *----------------------------------------------------------------------------- + * Flash Latency(WS) | 2 + *----------------------------------------------------------------------------- + * Prefetch Buffer | ON + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f30x_system + * @{ + */ + +/** @addtogroup STM32F30x_System_Private_Includes + * @{ + */ + +#include "stm32f30x.h" + +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_Defines + * @{ + */ +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_Variables + * @{ + */ + + uint32_t SystemCoreClock = 72000000; + + __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_FunctionPrototypes + * @{ + */ + +static void SetSysClock(void); + +/** + * @} + */ + +/** @addtogroup STM32F30x_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemFrequency variable. + * @param None + * @retval None + */ +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + #endif + + /* Reset the RCC clock configuration to the default reset state ------------*/ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + + /* Reset CFGR register */ + RCC->CFGR &= 0xF87FC00C; + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE bits */ + RCC->CFGR &= (uint32_t)0xFF80FFFF; + + /* Reset PREDIV1[3:0] bits */ + RCC->CFGR2 &= (uint32_t)0xFFFFFFF0; + + /* Reset USARTSW[1:0], I2CSW and TIMs bits */ + RCC->CFGR3 &= (uint32_t)0xFF00FCCC; + + /* Disable all interrupts */ + RCC->CIR = 0x00000000; + + /* Configure the System clock source, PLL Multiplier and Divider factors, + AHB/APBx prescalers and Flash settings ----------------------------------*/ + SetSysClock(); + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f30x.h file (default value + * 8 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f30x.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmull = 0, pllsource = 0, prediv1factor = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmull = RCC->CFGR & RCC_CFGR_PLLMULL; + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + pllmull = ( pllmull >> 18) + 2; + + if (pllsource == 0x00) + { + /* HSI oscillator clock divided by 2 selected as PLL clock entry */ + SystemCoreClock = (HSI_VALUE >> 1) * pllmull; + } + else + { + prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1; + /* HSE oscillator clock selected as PREDIV1 clock entry */ + SystemCoreClock = (HSE_VALUE / prediv1factor) * pllmull; + } + break; + default: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK clock frequency ----------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Configures the System clock source, PLL Multiplier and Divider factors, + * AHB/APBx prescalers and Flash settings + * @note This function should be called only once the RCC clock configuration + * is reset to the default reset state (done in SystemInit() function). + * @param None + * @retval None + */ +static void SetSysClock(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + +/******************************************************************************/ +/* PLL (clocked by HSE) used as System clock source */ +/******************************************************************************/ + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable Prefetch Buffer and set Flash Latency */ + FLASH->ACR = FLASH_ACR_PRFTBE | (uint32_t)FLASH_ACR_LATENCY_1; + + /* HCLK = SYSCLK / 1 */ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK / 1 */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK / 2 */ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; + + /* PLL configuration */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL9); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL) + { + } + } + else + { /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32l1xx.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32l1xx.c new file mode 100644 index 0000000..1be659d --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/system_stm32l1xx.c @@ -0,0 +1,533 @@ +/** + ****************************************************************************** + * @file system_stm32l1xx.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File. + * This file contains the system clock configuration for STM32L1xx Ultra + * Low Power devices, and is generated by the clock configuration + * tool "STM32L1xx_Clock_Configuration_V1.1.0.xls". + * + * 1. This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier + * and Divider factors, AHB/APBx prescalers and Flash settings), + * depending on the configuration made in the clock xls tool. + * This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32l1xx_xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * 2. After each device reset the MSI (2.1 MHz Range) is used as system clock source. + * Then SystemInit() function is called, in "startup_stm32l1xx_xx.s" file, to + * configure the system clock before to branch to main program. + * + * 3. If the system clock source selected by user fails to startup, the SystemInit() + * function will do nothing and MSI still used as system clock source. User can + * add some code to deal with this issue inside the SetSysClock() function. + * + * 4. The default value of HSE crystal is set to 8MHz, refer to "HSE_VALUE" define + * in "stm32l1xx.h" file. When HSE is used as system clock source, directly or + * through PLL, and you are using different crystal you have to adapt the HSE + * value to your own configuration. + * + * 5. This file configures the system clock as follows: + *============================================================================= + * System Clock Configuration + *============================================================================= + * System Clock source | PLL(HSE) + *----------------------------------------------------------------------------- + * SYSCLK | 32000000 Hz + *----------------------------------------------------------------------------- + * HCLK | 32000000 Hz + *----------------------------------------------------------------------------- + * AHB Prescaler | 1 + *----------------------------------------------------------------------------- + * APB1 Prescaler | 1 + *----------------------------------------------------------------------------- + * APB2 Prescaler | 1 + *----------------------------------------------------------------------------- + * HSE Frequency | 8000000 Hz + *----------------------------------------------------------------------------- + * PLL DIV | 3 + *----------------------------------------------------------------------------- + * PLL MUL | 12 + *----------------------------------------------------------------------------- + * VDD | 3.3 V + *----------------------------------------------------------------------------- + * Vcore | 1.8 V (Range 1) + *----------------------------------------------------------------------------- + * Flash Latency | 1 WS + *----------------------------------------------------------------------------- + * SDIO clock (SDIOCLK) | 48000000 Hz + *----------------------------------------------------------------------------- + * Require 48MHz for USB clock | Disabled + *----------------------------------------------------------------------------- + *============================================================================= + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32l1xx_system + * @{ + */ + +/** @addtogroup STM32L1xx_System_Private_Includes + * @{ + */ + +#include "stm32l1xx.h" + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Defines + * @{ + */ + +/*!< Uncomment the following line if you need to use external SRAM mounted + on STM32L152D_EVAL board as data memory */ +/* #define DATA_IN_ExtSRAM */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Variables + * @{ + */ +uint32_t SystemCoreClock = 32000000; +__I uint8_t PLLMulTable[9] = {3, 4, 6, 8, 12, 16, 24, 32, 48}; +__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_FunctionPrototypes + * @{ + */ + +static void SetSysClock(void); +#ifdef DATA_IN_ExtSRAM + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM */ + +/** + * @} + */ + +/** @addtogroup STM32L1xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system. + * Initialize the Embedded Flash Interface, the PLL and update the + * SystemCoreClock variable. + * @param None + * @retval None + */ +void SystemInit (void) +{ + /*!< Set MSION bit */ + RCC->CR |= (uint32_t)0x00000100; + + /*!< Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], MCOSEL[2:0] and MCOPRE[2:0] bits */ + RCC->CFGR &= (uint32_t)0x88FFC00C; + + /*!< Reset HSION, HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xEEFEFFFE; + + /*!< Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + + /*!< Reset PLLSRC, PLLMUL[3:0] and PLLDIV[1:0] bits */ + RCC->CFGR &= (uint32_t)0xFF02FFFF; + + /*!< Disable all interrupts */ + RCC->CIR = 0x00000000; + +#ifdef DATA_IN_ExtSRAM + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM */ + + /* Configure the System clock frequency, AHB/APBx prescalers and Flash settings */ + SetSysClock(); + +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ +#endif +} + +/** + * @brief Update SystemCoreClock according to Clock Register Values + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is MSI, SystemCoreClock will contain the MSI + * value as defined by the MSI range. + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32l1xx.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32l1xx.h file (default value + * 8 MHz), user has to ensure that HSE_VALUE is same as the real + * frequency of the crystal used. Otherwise, this function may + * have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * @param None + * @retval None + */ +void SystemCoreClockUpdate (void) +{ + uint32_t tmp = 0, pllmul = 0, plldiv = 0, pllsource = 0, msirange = 0; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + case 0x04: /* HSI used as system clock */ + SystemCoreClock = HSI_VALUE; + break; + case 0x08: /* HSE used as system clock */ + SystemCoreClock = HSE_VALUE; + break; + case 0x0C: /* PLL used as system clock */ + /* Get PLL clock source and multiplication factor ----------------------*/ + pllmul = RCC->CFGR & RCC_CFGR_PLLMUL; + plldiv = RCC->CFGR & RCC_CFGR_PLLDIV; + pllmul = PLLMulTable[(pllmul >> 18)]; + plldiv = (plldiv >> 22) + 1; + + pllsource = RCC->CFGR & RCC_CFGR_PLLSRC; + + if (pllsource == 0x00) + { + /* HSI oscillator clock selected as PLL clock entry */ + SystemCoreClock = (((HSI_VALUE) * pllmul) / plldiv); + } + else + { + /* HSE selected as PLL clock entry */ + SystemCoreClock = (((HSE_VALUE) * pllmul) / plldiv); + } + break; + default: /* MSI used as system clock */ + msirange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE) >> 13; + SystemCoreClock = (32768 * (1 << (msirange + 1))); + break; + } + /* Compute HCLK clock frequency --------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK clock frequency */ + SystemCoreClock >>= tmp; +} + +/** + * @brief Configures the System clock frequency, AHB/APBx prescalers and Flash + * settings. + * @note This function should be called only once the RCC clock configuration + * is reset to the default reset state (done in SystemInit() function). + * @param None + * @retval None + */ +static void SetSysClock(void) +{ + __IO uint32_t StartUpCounter = 0, HSEStatus = 0; + + /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ + /* Enable HSE */ + RCC->CR |= ((uint32_t)RCC_CR_HSEON); + + /* Wait till HSE is ready and if Time out is reached exit */ + do + { + HSEStatus = RCC->CR & RCC_CR_HSERDY; + StartUpCounter++; + } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); + + if ((RCC->CR & RCC_CR_HSERDY) != RESET) + { + HSEStatus = (uint32_t)0x01; + } + else + { + HSEStatus = (uint32_t)0x00; + } + + if (HSEStatus == (uint32_t)0x01) + { + /* Enable 64-bit access */ + FLASH->ACR |= FLASH_ACR_ACC64; + + /* Enable Prefetch Buffer */ + FLASH->ACR |= FLASH_ACR_PRFTEN; + + /* Flash 1 wait state */ + FLASH->ACR |= FLASH_ACR_LATENCY; + + /* Power enable */ + RCC->APB1ENR |= RCC_APB1ENR_PWREN; + + /* Select the Voltage Range 1 (1.8 V) */ + PWR->CR = PWR_CR_VOS_0; + + /* Wait Until the Voltage Regulator is ready */ + while((PWR->CSR & PWR_CSR_VOSF) != RESET) + { + } + + /* HCLK = SYSCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; + + /* PCLK2 = HCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; + + /* PCLK1 = HCLK /1*/ + RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1; + + /* PLL configuration */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL | + RCC_CFGR_PLLDIV)); + RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMUL12 | RCC_CFGR_PLLDIV3); + + /* Enable PLL */ + RCC->CR |= RCC_CR_PLLON; + + /* Wait till PLL is ready */ + while((RCC->CR & RCC_CR_PLLRDY) == 0) + { + } + + /* Select PLL as system clock source */ + RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); + RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; + + /* Wait till PLL is used as system clock source */ + while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL) + { + } + } + else + { + /* If HSE fails to start-up, the application will have wrong clock + configuration. User can add here some code to deal with this error */ + } +} + +#ifdef DATA_IN_ExtSRAM +/** + * @brief Setup the external memory controller. + * Called in SystemInit() function before jump to main. + * This function configures the external SRAM mounted on STM32L152D_EVAL board + * This SRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ +/*-- GPIOs Configuration -----------------------------------------------------*/ +/* + +-------------------+--------------------+------------------+------------------+ + + SRAM pins assignment + + +-------------------+--------------------+------------------+------------------+ + | PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 | + | PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 | + | PD4 <-> FSMC_NOE | PE7 <-> FSMC_D4 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 | + | PD5 <-> FSMC_NWE | PE8 <-> FSMC_D5 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 | + | PD8 <-> FSMC_D13 | PE9 <-> FSMC_D6 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 | + | PD9 <-> FSMC_D14 | PE10 <-> FSMC_D7 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 | + | PD10 <-> FSMC_D15 | PE11 <-> FSMC_D8 | PF12 <-> FSMC_A6 | PG10<-> FSMC_NE2 | + | PD11 <-> FSMC_A16 | PE12 <-> FSMC_D9 | PF13 <-> FSMC_A7 |------------------+ + | PD12 <-> FSMC_A17 | PE13 <-> FSMC_D10 | PF14 <-> FSMC_A8 | + | PD13 <-> FSMC_A18 | PE14 <-> FSMC_D11 | PF15 <-> FSMC_A9 | + | PD14 <-> FSMC_D0 | PE15 <-> FSMC_D12 |------------------+ + | PD15 <-> FSMC_D1 |--------------------+ + +-------------------+ +*/ + + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHBENR = 0x000080D8; + + /* Connect PDx pins to FSMC Alternate function */ + GPIOD->AFR[0] = 0x00CC00CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A0A; + /* Configure PDx pins speed to 40 MHz */ + GPIOD->OSPEEDR = 0xFFFF0F0F; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FSMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 40 MHz */ + GPIOE->OSPEEDR = 0xFFFFC00F; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FSMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 40 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FSMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x00000C00; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00200AAA; + /* Configure PGx pins speed to 40 MHz */ + GPIOG->OSPEEDR = 0x00300FFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FSMC Configuration ------------------------------------------------------*/ + /* Enable the FSMC interface clock */ + RCC->AHBENR = 0x400080D8; + + /* Configure and enable Bank1_SRAM3 */ + FSMC_Bank1->BTCR[4] = 0x00001011; + FSMC_Bank1->BTCR[5] = 0x00000300; + FSMC_Bank1E->BWTR[4] = 0x0FFFFFFF; +/* + Bank1_SRAM3 is configured as follow: + + p.FSMC_AddressSetupTime = 0; + p.FSMC_AddressHoldTime = 0; + p.FSMC_DataSetupTime = 3; + p.FSMC_BusTurnAroundDuration = 0; + p.FSMC_CLKDivision = 0; + p.FSMC_DataLatency = 0; + p.FSMC_AccessMode = FSMC_AccessMode_A; + + FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3; + FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; + FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; + FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; + FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; + FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; + FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; + FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; + FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; + FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; + FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; + FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; + + FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); + + FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE); +*/ + +} +#endif /* DATA_IN_ExtSRAM */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_bot.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_bot.c new file mode 100644 index 0000000..5773bac --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_bot.c @@ -0,0 +1,343 @@ +/** + ****************************************************************************** + * @file usb_bot.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief BOT State Machine management + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "usb_scsi.h" +#include "hw_config.h" +#include "usb_regs.h" +#include "usb_mem.h" +#include "usb_conf.h" +#include "usb_bot.h" +#include "memory.h" +#include "usb_lib.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +uint8_t Bot_State; +uint8_t Bulk_Data_Buff[64]; /* data buffer*/ +uint16_t Data_Len; +Bulk_Only_CBW CBW; +Bulk_Only_CSW CSW; +uint32_t SCSI_LBA , SCSI_BlkLen; +extern uint32_t Max_Lun; +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Extern function prototypes ------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/******************************************************************************* +* Function Name : Mass_Storage_In +* Description : Mass Storage IN transfer. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Mass_Storage_In (void) +{ + switch (Bot_State) + { + case BOT_CSW_Send: + case BOT_ERROR: + Bot_State = BOT_IDLE; + SetEPRxStatus(ENDP2, EP_RX_VALID);/* enable the Endpoint to receive the next cmd*/ + if (GetEPRxStatus(EP2_OUT) == EP_RX_STALL) + { + SetEPRxStatus(EP2_OUT, EP_RX_VALID);/* enable the Endpoint to receive the next cmd*/ + } + break; + case BOT_DATA_IN: + switch (CBW.CB[0]) + { + case SCSI_READ10: + SCSI_Read10_Cmd(CBW.bLUN , SCSI_LBA , SCSI_BlkLen); + break; + } + break; + case BOT_DATA_IN_LAST: + Set_CSW (CSW_CMD_PASSED, SEND_CSW_ENABLE); + + SetEPRxStatus(ENDP2, EP_RX_VALID); + break; + default: + break; + } +} + +/******************************************************************************* +* Function Name : Mass_Storage_Out +* Description : Mass Storage OUT transfer. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void Mass_Storage_Out (void) +{ + uint8_t CMD; + CMD = CBW.CB[0]; + + Data_Len = USB_SIL_Read(EP2_OUT, Bulk_Data_Buff); + + switch (Bot_State) + { + case BOT_IDLE: + CBW_Decode(); + break; + case BOT_DATA_OUT: + if (CMD == SCSI_WRITE10) + { + SCSI_Write10_Cmd(CBW.bLUN , SCSI_LBA , SCSI_BlkLen); + break; + } + Bot_Abort(DIR_OUT); + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND); + Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE); + break; + default: + Bot_Abort(BOTH_DIR); + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND); + Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE); + break; + } +} + +/******************************************************************************* +* Function Name : CBW_Decode +* Description : Decode the received CBW and call the related SCSI command +* routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CBW_Decode(void) +{ + uint32_t Counter; + + for (Counter = 0; Counter < Data_Len; Counter++) + { + *((uint8_t *)&CBW + Counter) = Bulk_Data_Buff[Counter]; + } + CSW.dTag = CBW.dTag; + CSW.dDataResidue = CBW.dDataLength; + if (Data_Len != BOT_CBW_PACKET_LENGTH) + { + Bot_Abort(BOTH_DIR); + /* reset the CBW.dSignature to disable the clear feature until receiving a Mass storage reset*/ + CBW.dSignature = 0; + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, PARAMETER_LIST_LENGTH_ERROR); + Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE); + return; + } + + if ((CBW.CB[0] == SCSI_READ10 ) || (CBW.CB[0] == SCSI_WRITE10 )) + { + /* Calculate Logical Block Address */ + SCSI_LBA = (CBW.CB[2] << 24) | (CBW.CB[3] << 16) | (CBW.CB[4] << 8) | CBW.CB[5]; + /* Calculate the Number of Blocks to transfer */ + SCSI_BlkLen = (CBW.CB[7] << 8) | CBW.CB[8]; + } + + if (CBW.dSignature == BOT_CBW_SIGNATURE) + { + /* Valid CBW */ + if ((CBW.bLUN > Max_Lun) || (CBW.bCBLength < 1) || (CBW.bCBLength > 16)) + { + Bot_Abort(BOTH_DIR); + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND); + Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE); + } + else + { + switch (CBW.CB[0]) + { + case SCSI_REQUEST_SENSE: + SCSI_RequestSense_Cmd (CBW.bLUN); + break; + case SCSI_INQUIRY: + SCSI_Inquiry_Cmd(CBW.bLUN); + break; + case SCSI_START_STOP_UNIT: + SCSI_Start_Stop_Unit_Cmd(CBW.bLUN); + break; + case SCSI_ALLOW_MEDIUM_REMOVAL: + SCSI_Start_Stop_Unit_Cmd(CBW.bLUN); + break; + case SCSI_MODE_SENSE6: + SCSI_ModeSense6_Cmd (CBW.bLUN); + break; + case SCSI_MODE_SENSE10: + SCSI_ModeSense10_Cmd (CBW.bLUN); + break; + case SCSI_READ_FORMAT_CAPACITIES: + SCSI_ReadFormatCapacity_Cmd(CBW.bLUN); + break; + case SCSI_READ_CAPACITY10: + SCSI_ReadCapacity10_Cmd(CBW.bLUN); + break; + case SCSI_TEST_UNIT_READY: + SCSI_TestUnitReady_Cmd(CBW.bLUN); + break; + case SCSI_READ10: + SCSI_Read10_Cmd(CBW.bLUN, SCSI_LBA , SCSI_BlkLen); + break; + case SCSI_WRITE10: + SCSI_Write10_Cmd(CBW.bLUN, SCSI_LBA , SCSI_BlkLen); + break; + case SCSI_VERIFY10: + SCSI_Verify10_Cmd(CBW.bLUN); + break; + case SCSI_FORMAT_UNIT: + SCSI_Format_Cmd(CBW.bLUN); + break; + /*Unsupported command*/ + case SCSI_MODE_SELECT10: + SCSI_Mode_Select10_Cmd(CBW.bLUN); + break; + case SCSI_MODE_SELECT6: + SCSI_Mode_Select6_Cmd(CBW.bLUN); + break; + + case SCSI_SEND_DIAGNOSTIC: + SCSI_Send_Diagnostic_Cmd(CBW.bLUN); + break; + case SCSI_READ6: + SCSI_Read6_Cmd(CBW.bLUN); + break; + case SCSI_READ12: + SCSI_Read12_Cmd(CBW.bLUN); + break; + case SCSI_READ16: + SCSI_Read16_Cmd(CBW.bLUN); + break; + case SCSI_READ_CAPACITY16: + SCSI_READ_CAPACITY16_Cmd(CBW.bLUN); + break; + case SCSI_WRITE6: + SCSI_Write6_Cmd(CBW.bLUN); + break; + case SCSI_WRITE12: + SCSI_Write12_Cmd(CBW.bLUN); + break; + case SCSI_WRITE16: + SCSI_Write16_Cmd(CBW.bLUN); + break; + case SCSI_VERIFY12: + SCSI_Verify12_Cmd(CBW.bLUN); + break; + case SCSI_VERIFY16: + SCSI_Verify16_Cmd(CBW.bLUN); + break; + + default: + { + Bot_Abort(BOTH_DIR); + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_COMMAND); + Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE); + } + } + } + } + else + { + /* Invalid CBW */ + Bot_Abort(BOTH_DIR); + Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_COMMAND); + Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE); + } +} + +/******************************************************************************* +* Function Name : Transfer_Data_Request +* Description : Send the request response to the PC HOST. +* Input : uint8_t* Data_Address : point to the data to transfer. +* uint16_t Data_Length : the number of Bytes to transfer. +* Output : None. +* Return : None. +*******************************************************************************/ +void Transfer_Data_Request(uint8_t* Data_Pointer, uint16_t Data_Len) +{ + USB_SIL_Write(EP2_IN, Data_Pointer, Data_Len); + + SetEPTxStatus(ENDP2, EP_TX_VALID); + + Bot_State = BOT_DATA_IN_LAST; + CSW.dDataResidue -= Data_Len; + CSW.bStatus = CSW_CMD_PASSED; +} + +/******************************************************************************* +* Function Name : Set_CSW +* Description : Set the SCW with the needed fields. +* Input : uint8_t CSW_Status this filed can be CSW_CMD_PASSED,CSW_CMD_FAILED, +* or CSW_PHASE_ERROR. +* Output : None. +* Return : None. +*******************************************************************************/ +void Set_CSW (uint8_t CSW_Status, uint8_t Send_Permission) +{ + CSW.dSignature = BOT_CSW_SIGNATURE; + CSW.bStatus = CSW_Status; + + USB_SIL_Write(EP2_IN, ((uint8_t *)& CSW), CSW_DATA_LENGTH); + + Bot_State = BOT_ERROR; + if (Send_Permission) + { + Bot_State = BOT_CSW_Send; + SetEPTxStatus(ENDP2, EP_TX_VALID); + } +} + +/******************************************************************************* +* Function Name : Bot_Abort +* Description : Stall the needed Endpoint according to the selected direction. +* Input : Endpoint direction IN, OUT or both directions +* Output : None. +* Return : None. +*******************************************************************************/ +void Bot_Abort(uint8_t Direction) +{ + switch (Direction) + { + case DIR_IN : + SetEPTxStatus(ENDP2, EP_TX_STALL); + break; + case DIR_OUT : + SetEPRxStatus(ENDP2, EP_RX_STALL); + break; + case BOTH_DIR : + SetEPTxStatus(ENDP2, EP_TX_STALL); + SetEPRxStatus(ENDP2, EP_RX_STALL); + break; + default: + break; + } +} + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_desc.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_desc.c new file mode 100644 index 0000000..5e1b127 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_desc.c @@ -0,0 +1,299 @@ +/** + ****************************************************************************** + * @file usb_desc.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Descriptors for Custom HID Demo + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "usb_lib.h" +#include "usb_desc.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/* USB Standard Device Descriptor */ +const uint8_t Composite_DeviceDescriptor[Composite_SIZ_DEVICE_DESC] = + { + 0x12, /*bLength */ + USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/ + 0x00, /*bcdUSB */ + 0x02, + 0x00, /*bDeviceClass*/ + 0x00, /*bDeviceSubClass*/ + 0x00, /*bDeviceProtocol*/ + 0x40, /*bMaxPacketSize40*/ + 0x83, /*idVendor (0x0483)*/ + 0x04, + 0x50, /*idProduct = 0x5750*/ + 0x57, + 0x00, /*bcdDevice rel. 2.00*/ + 0x02, + 1, /*Index of string descriptor describing + manufacturer */ + 2, /*Index of string descriptor describing + product*/ + 3, /*Index of string descriptor describing the + device serial number */ + 0x01 /*bNumConfigurations*/ + } + ; /* Composite_DeviceDescriptor */ + + +/* USB Configuration Descriptor */ +/* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */ +const uint8_t Composite_ConfigDescriptor[Composite_SIZ_CONFIG_DESC] = + { + 0x09, /* bLength: Configuration Descriptor size */ + USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */ + Composite_SIZ_CONFIG_DESC, + /* wTotalLength: Bytes returned */ + 0x00, + 0x02, /* bNumInterfaces: 2 interfaces */ + 0x01, /* bConfigurationValue: Configuration value */ + 0x00, /* iConfiguration: Index of string descriptor describing + the configuration*/ + 0xC0, /* bmAttributes: Self powered */ + 0x32, /* MaxPower 100 mA: this current is used for detecting Vbus */ + + /************** Descriptor of Custom HID interface ****************/ + /* 09 */ + 0x09, /* bLength: Interface Descriptor size */ + USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType: Interface descriptor type */ + 0x00, /* bInterfaceNumber: Number of Interface */ + 0x00, /* bAlternateSetting: Alternate setting */ + 0x02, /* bNumEndpoints */ + 0x03, /* bInterfaceClass: HID */ + 0x00, /* bInterfaceSubClass : 1=BOOT, 0=no boot */ + 0x00, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */ + 0, /* iInterface: Index of string descriptor */ + /******************** Descriptor of Custom HID HID ********************/ + /* 18 */ + 0x09, /* bLength: HID Descriptor size */ + HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */ + 0x10, /* bcdHID: HID Class Spec release number */ + 0x01, + 0x00, /* bCountryCode: Hardware target country */ + 0x01, /* bNumDescriptors: Number of HID class descriptors to follow */ + 0x22, /* bDescriptorType */ + CUSTOMHID_SIZ_REPORT_DESC,/* wItemLength: Total length of Report descriptor */ + 0x00, + /******************** Descriptor of Custom HID endpoints ******************/ + /* 27 */ + 0x07, /* bLength: Endpoint Descriptor size */ + USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */ + + 0x81, /* bEndpointAddress: Endpoint Address (IN) */ + 0x03, /* bmAttributes: Interrupt endpoint */ + 0x02, /* wMaxPacketSize: 2 Bytes max */ + 0x00, + 0x20, /* bInterval: Polling Interval (32 ms) */ + /* 34 */ + + 0x07, /* bLength: Endpoint Descriptor size */ + USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */ + /* Endpoint descriptor type */ + 0x01, /* bEndpointAddress: */ + /* Endpoint Address (OUT) */ + 0x03, /* bmAttributes: Interrupt endpoint */ + 0x02, /* wMaxPacketSize: 2 Bytes max */ + 0x00, + 0x20, /* bInterval: Polling Interval (20 ms) */ + /* 41 */ + /******************** Descriptor of Mass Storage interface ********************/ + /* 09 */ + 0x09, /* bLength: Interface Descriptor size */ + 0x04, /* bDescriptorType: */ + /* Interface descriptor type */ + 0x01, /* bInterfaceNumber: Number of Interface */ + 0x00, /* bAlternateSetting: Alternate setting */ + 0x02, /* bNumEndpoints*/ + 0x08, /* bInterfaceClass: MASS STORAGE Class */ + 0x06, /* bInterfaceSubClass : SCSI transparent*/ + 0x50, /* nInterfaceProtocol */ + 1, /* iInterface: */ + /* 18 */ + 0x07, /*Endpoint descriptor length = 7*/ + 0x05, /*Endpoint descriptor type */ + 0x82, /*Endpoint address (IN, address 2) */ + 0x02, /*Bulk endpoint type */ + 0x40, /*Maximum packet size (64 bytes) */ + 0x00, + 0x00, /*Polling interval in milliseconds */ + /* 25 */ + 0x07, /*Endpoint descriptor length = 7 */ + 0x05, /*Endpoint descriptor type */ + 0x02, /*Endpoint address (OUT, address 2) */ + 0x02, /*Bulk endpoint type */ + 0x40, /*Maximum packet size (64 bytes) */ + 0x00, + 0x00 /*Polling interval in milliseconds*/ + /*32*/ + }; /* Composite_ConfigDescriptor */ +const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] = + { + 0x06, 0xFF, 0x00, /* USAGE_PAGE (Vendor Page: 0xFF00) */ + 0x09, 0x01, /* USAGE (Demo Kit) */ + 0xa1, 0x01, /* COLLECTION (Application) */ + /* 6 */ + + /* Led 1 */ + 0x85, 0x01, /* REPORT_ID (1) */ + 0x09, 0x01, /* USAGE (LED 1) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ + 0x75, 0x08, /* REPORT_SIZE (8) */ + 0x95, 0x01, /* REPORT_COUNT (1) */ + 0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + + 0x85, 0x01, /* REPORT_ID (1) */ + 0x09, 0x01, /* USAGE (LED 1) */ + 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */ + /* 26 */ + + /* Led 2 */ + 0x85, 0x02, /* REPORT_ID 2 */ + 0x09, 0x02, /* USAGE (LED 2) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ + 0x75, 0x08, /* REPORT_SIZE (8) */ + 0x95, 0x01, /* REPORT_COUNT (1) */ + 0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + + 0x85, 0x02, /* REPORT_ID (2) */ + 0x09, 0x02, /* USAGE (LED 2) */ + 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */ + /* 46 */ + + /* Led 3 */ + 0x85, 0x03, /* REPORT_ID (3) */ + 0x09, 0x03, /* USAGE (LED 3) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ + 0x75, 0x08, /* REPORT_SIZE (8) */ + 0x95, 0x01, /* REPORT_COUNT (1) */ + 0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + + 0x85, 0x03, /* REPORT_ID (3) */ + 0x09, 0x03, /* USAGE (LED 3) */ + 0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */ + /* 66 */ + + /* key Push Button */ + 0x85, 0x05, /* REPORT_ID (5) */ + 0x09, 0x05, /* USAGE (Push Button) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ + 0x75, 0x01, /* REPORT_SIZE (1) */ + 0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */ + + 0x09, 0x05, /* USAGE (Push Button) */ + 0x75, 0x01, /* REPORT_SIZE (1) */ + 0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + + 0x75, 0x07, /* REPORT_SIZE (7) */ + 0x81, 0x83, /* INPUT (Cnst,Var,Abs,Vol) */ + 0x85, 0x05, /* REPORT_ID (2) */ + + 0x75, 0x07, /* REPORT_SIZE (7) */ + 0xb1, 0x83, /* FEATURE (Cnst,Var,Abs,Vol) */ + /* 94 */ + + /* Tamper Push Button */ + 0x85, 0x06, /* REPORT_ID (6) */ + 0x09, 0x06, /* USAGE (Tamper Push Button) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */ + 0x75, 0x01, /* REPORT_SIZE (1) */ + 0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */ + + 0x09, 0x06, /* USAGE (Tamper Push Button) */ + 0x75, 0x01, /* REPORT_SIZE (1) */ + 0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + + 0x75, 0x07, /* REPORT_SIZE (7) */ + 0x81, 0x83, /* INPUT (Cnst,Var,Abs,Vol) */ + 0x85, 0x06, /* REPORT_ID (6) */ + + 0x75, 0x07, /* REPORT_SIZE (7) */ + 0xb1, 0x83, /* FEATURE (Cnst,Var,Abs,Vol) */ + /* 122 */ + + /* ADC IN */ + 0x85, 0x07, /* REPORT_ID (7) */ + 0x09, 0x07, /* USAGE (ADC IN) */ + 0x15, 0x00, /* LOGICAL_MINIMUM (0) */ + 0x26, 0xff, 0x00, /* LOGICAL_MAXIMUM (255) */ + 0x75, 0x08, /* REPORT_SIZE (8) */ + 0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */ + 0x85, 0x07, /* REPORT_ID (7) */ + 0x09, 0x07, /* USAGE (ADC in) */ + 0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */ + /* 141 */ + + 0xc0 /* END_COLLECTION */ + }; /* CustomHID_ReportDescriptor */ + +/* USB String Descriptors (optional) */ +const uint8_t Composite_StringLangID[Composite_SIZ_STRING_LANGID] = + { + Composite_SIZ_STRING_LANGID, + USB_STRING_DESCRIPTOR_TYPE, + 0x09, + 0x04 + } + ; /* LangID = 0x0409: U.S. English */ + +const uint8_t Composite_StringVendor[Composite_SIZ_STRING_VENDOR] = + { + Composite_SIZ_STRING_VENDOR, /* Size of Vendor string */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType*/ + /* Manufacturer: "STMicroelectronics" */ + 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, + 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, + 'c', 0, 's', 0 + }; + +const uint8_t Composite_StringProduct[Composite_SIZ_STRING_PRODUCT] = + { + Composite_SIZ_STRING_PRODUCT, /* bLength */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ + 'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'C', 0, + 'o', 0, 'm', 0, 'p', 0, 'o', 0, 's', 0, 'i', 0, 't', 0, + 'e', 0,' ',0, 'M', 0, 'S', 0, 'C', 0, '+', 0, 'H', 0, 'I', 0, 'D', 0 + }; +uint8_t Composite_StringSerial[Composite_SIZ_STRING_SERIAL] = + { + Composite_SIZ_STRING_SERIAL, /* bLength */ + USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ + 'S', 0, 'T', 0, 'M', 0,'3', 0,'2', 0 + }; + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_endp.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_endp.c new file mode 100644 index 0000000..3344c23 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_endp.c @@ -0,0 +1,159 @@ +/** + ****************************************************************************** + * @file usb_endp.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Endpoint routines + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ + +#include "hw_config.h" +#include "usb_lib.h" +#include "usb_istr.h" +#include "usb_bot.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +uint8_t Receive_Buffer[2]; +extern __IO uint8_t PrevXferComplete; + +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/******************************************************************************* +* Function Name : EP1_OUT_Callback. +* Description : EP1 OUT Callback Routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void EP1_OUT_Callback(void) +{ + BitAction Led_State; + + /* Read received data (2 bytes) */ + USB_SIL_Read(EP1_OUT, Receive_Buffer); + + if (Receive_Buffer[1] == 0) + { + Led_State = Bit_RESET; + } + else + { + Led_State = Bit_SET; + } + + + switch (Receive_Buffer[0]) + { + case 1: /* Led 1 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED1); + } + else + { + STM_EVAL_LEDOff(LED1); + } + break; + case 2: /* Led 2 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED2); + } + else + { + STM_EVAL_LEDOff(LED2); + } + break; + case 3: /* Led 3 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED3); + } + else + { + STM_EVAL_LEDOff(LED3); + } + break; + case 4: /* Led 4 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED4); + } + else + { + STM_EVAL_LEDOff(LED4); + } + break; + default: + STM_EVAL_LEDOff(LED1); + STM_EVAL_LEDOff(LED2); + STM_EVAL_LEDOff(LED3); + STM_EVAL_LEDOff(LED4); + break; + } + + SetEPRxStatus(ENDP1, EP_RX_VALID); + +} + +/******************************************************************************* +* Function Name : EP1_IN_Callback. +* Description : EP1 IN Callback Routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void EP1_IN_Callback(void) +{ + PrevXferComplete = 1; +} + +/******************************************************************************* +* Function Name : EP2_IN_Callback +* Description : EP2 IN Callback Routine +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void EP2_IN_Callback(void) +{ + Mass_Storage_In(); +} + +/******************************************************************************* +* Function Name : EP2_OUT_Callback. +* Description : EP2 OUT Callback Routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void EP2_OUT_Callback(void) +{ + Mass_Storage_Out(); +} +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ + diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_prop.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_prop.c new file mode 100644 index 0000000..446fa84 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_prop.c @@ -0,0 +1,581 @@ +/** + ****************************************************************************** + * @file usb_prop.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief All processings related to Custom HID Demo + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ + +#include "hw_config.h" +#include "usb_lib.h" +#include "usb_conf.h" +#include "usb_prop.h" +#include "usb_desc.h" +#include "usb_pwr.h" +#include "usb_bot.h" +#include "memory.h" +#include "mass_mal.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +uint32_t ProtocolValue; +__IO uint8_t EXTI_Enable; +__IO uint8_t Request = 0; +uint8_t Report_Buf[2]; +/* -------------------------------------------------------------------------- */ +/* Structures initializations */ +/* -------------------------------------------------------------------------- */ + +DEVICE Device_Table = + { + EP_NUM, + 1 + }; + +DEVICE_PROP Device_Property = + { + CustomHID_init, + CustomHID_Reset, + CustomHID_Status_In, + CustomHID_Status_Out, + CustomHID_Data_Setup, + CustomHID_NoData_Setup, + CustomHID_Get_Interface_Setting, + CustomHID_GetDeviceDescriptor, + CustomHID_GetConfigDescriptor, + CustomHID_GetStringDescriptor, + 0, + 0x40 /*MAX PACKET SIZE*/ + }; +USER_STANDARD_REQUESTS User_Standard_Requests = + { + CustomHID_GetConfiguration, + CustomHID_SetConfiguration, + CustomHID_GetInterface, + CustomHID_SetInterface, + CustomHID_GetStatus, + CustomHID_ClearFeature, + CustomHID_SetEndPointFeature, + CustomHID_SetDeviceFeature, + CustomHID_SetDeviceAddress + }; + +ONE_DESCRIPTOR Device_Descriptor = + { + (uint8_t*)Composite_DeviceDescriptor, + Composite_SIZ_DEVICE_DESC + }; + +ONE_DESCRIPTOR Config_Descriptor = + { + (uint8_t*)Composite_ConfigDescriptor, + Composite_SIZ_CONFIG_DESC + }; + +ONE_DESCRIPTOR CustomHID_Report_Descriptor = + { + (uint8_t *)CustomHID_ReportDescriptor, + CUSTOMHID_SIZ_REPORT_DESC + }; + +ONE_DESCRIPTOR CustomHID_Hid_Descriptor = + { + (uint8_t*)Composite_ConfigDescriptor + CUSTOMHID_OFF_HID_DESC, + CUSTOMHID_SIZ_HID_DESC + }; + +ONE_DESCRIPTOR String_Descriptor[4] = + { + {(uint8_t*)Composite_StringLangID, Composite_SIZ_STRING_LANGID}, + {(uint8_t*)Composite_StringVendor, Composite_SIZ_STRING_VENDOR}, + {(uint8_t*)Composite_StringProduct, Composite_SIZ_STRING_PRODUCT}, + {(uint8_t*)Composite_StringSerial, Composite_SIZ_STRING_SERIAL} + }; + +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Extern function prototypes ------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/*CustomHID_SetReport_Feature function prototypes*/ +uint8_t *CustomHID_SetReport_Feature(uint16_t Length); + +extern unsigned char Bot_State; +extern Bulk_Only_CBW CBW; +uint32_t Max_Lun = 0; + + +/******************************************************************************* +* Function Name : Get_Max_Lun +* Description : Handle the Get Max Lun request. +* Input : uint16_t Length. +* Output : None. +* Return : None. +*******************************************************************************/ +uint8_t *Get_Max_Lun(uint16_t Length) +{ + if (Length == 0) + { + pInformation->Ctrl_Info.Usb_wLength = LUN_DATA_LENGTH; + return 0; + } + else + { + return((uint8_t*)(&Max_Lun)); + } +} +/******************************************************************************* +* Function Name : CustomHID_init. +* Description : Custom HID init routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_init(void) +{ + /* Update the serial number string descriptor with the data from the unique + ID*/ + Get_SerialNum(); + + pInformation->Current_Configuration = 0; + /* Connect the device */ + PowerOn(); + + /* Perform basic device initialization operations */ + USB_SIL_Init(); + + bDeviceState = UNCONNECTED; +} + +/******************************************************************************* +* Function Name : CustomHID_Reset. +* Description : Custom HID reset routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_Reset(void) +{ + /* Set Composite_DEVICE as not configured */ + pInformation->Current_Configuration = 0; + pInformation->Current_Interface = 0;/*the default Interface*/ + + /* Current Feature initialization */ + pInformation->Current_Feature = Composite_ConfigDescriptor[7]; + + SetBTABLE(BTABLE_ADDRESS); + + /* Initialize Endpoint 0 */ + SetEPType(ENDP0, EP_CONTROL); + SetEPTxStatus(ENDP0, EP_TX_STALL); + SetEPRxAddr(ENDP0, ENDP0_RXADDR); + SetEPTxAddr(ENDP0, ENDP0_TXADDR); + Clear_Status_Out(ENDP0); + SetEPRxCount(ENDP0, Device_Property.MaxPacketSize); + SetEPRxValid(ENDP0); + + /* Initialize Endpoint 1 */ + SetEPType(ENDP1, EP_INTERRUPT); + SetEPTxAddr(ENDP1, ENDP1_TXADDR); + SetEPRxAddr(ENDP1, ENDP1_RXADDR); + SetEPTxCount(ENDP1, 2); + SetEPRxCount(ENDP1, 2); + SetEPRxStatus(ENDP1, EP_RX_VALID); + SetEPTxStatus(ENDP1, EP_TX_NAK); + /* Initialize Endpoint 2 IN */ + SetEPType(ENDP2, EP_BULK); + SetEPTxCount(ENDP1, 64); + SetEPTxAddr(ENDP2, ENDP1_TXADDR); + SetEPTxStatus(ENDP2, EP_TX_NAK); + + + /* Initialize Endpoint 2 OUT */ + SetEPType(ENDP2, EP_BULK); + SetEPRxAddr(ENDP2, ENDP2_RXADDR); + SetEPRxCount(ENDP2, 64); + SetEPRxStatus(ENDP2, EP_RX_VALID); + + /* Set this device to response on default address */ + SetDeviceAddress(0); + CBW.dSignature = BOT_CBW_SIGNATURE; + Bot_State = BOT_IDLE; + bDeviceState = ATTACHED; +} +/******************************************************************************* +* Function Name : CustomHID_SetConfiguration. +* Description : Update the device state to configured and command the ADC +* conversion. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_SetConfiguration(void) +{ + if (pInformation->Current_Configuration != 0) + { + /* Device configured */ + bDeviceState = CONFIGURED; + + /* Start ADC Software Conversion */ +#if defined(STM32L1XX_MD) || defined(STM32L1XX_HD)|| defined(STM32L1XX_MD_PLUS)|| defined(STM32F37X) + ADC_SoftwareStartConv(ADC1); +#elif defined (STM32F30X) + ADC_StartConversion(ADC1); +#else + ADC_SoftwareStartConvCmd(ADC1, ENABLE); +#endif /* STM32L1XX_XD */ + ClearDTOG_TX(ENDP2); + ClearDTOG_RX(ENDP2); + Bot_State = BOT_IDLE; /* set the Bot state machine to the IDLE state */ + } +} +/******************************************************************************* +* Function Name : CustomHID_SetConfiguration. +* Description : Update the device state to addressed. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_SetDeviceAddress (void) +{ + bDeviceState = ADDRESSED; +} +/******************************************************************************* +* Function Name : CustomHID_Status_In. +* Description : Joystick status IN routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_Status_In(void) +{ + BitAction Led_State; + + if (Report_Buf[1] == 0) + { + Led_State = Bit_RESET; + } + else + { + Led_State = Bit_SET; + } + + switch (Report_Buf[0]) + { + /*Change LED's status according to the host report*/ + + case 1: /* Led 1 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED1); + } + else + { + STM_EVAL_LEDOff(LED1); + } + break; + case 2: /* Led 2 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED2); + } + else + { + STM_EVAL_LEDOff(LED2); + } + break; + case 3:/* Led 3 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED3); + } + else + { + STM_EVAL_LEDOff(LED3); + } + break; + case 4:/* Led 4 */ + if (Led_State != Bit_RESET) + { + STM_EVAL_LEDOn(LED4); + } + else + { + STM_EVAL_LEDOff(LED4); + } + break; + default: + STM_EVAL_LEDOff(LED1); + STM_EVAL_LEDOff(LED2); + STM_EVAL_LEDOff(LED3); + STM_EVAL_LEDOff(LED4); + break; + } +} + +/******************************************************************************* +* Function Name : CustomHID_Status_Out +* Description : Joystick status OUT routine. +* Input : None. +* Output : None. +* Return : None. +*******************************************************************************/ +void CustomHID_Status_Out (void) +{ +} + +/******************************************************************************* +* Function Name : CustomHID_Data_Setup +* Description : Handle the data class specific requests. +* Input : Request Nb. +* Output : None. +* Return : USB_UNSUPPORT or USB_SUCCESS. +*******************************************************************************/ +RESULT CustomHID_Data_Setup(uint8_t RequestNo) +{ + uint8_t *(*CopyRoutine)(uint16_t); + + if (pInformation->USBwIndex != 0) + return USB_UNSUPPORT; + + CopyRoutine = NULL; + + if ((RequestNo == GET_DESCRIPTOR) + && (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT)) + ) + { + + if (pInformation->USBwValue1 == REPORT_DESCRIPTOR) + { + CopyRoutine = CustomHID_GetReportDescriptor; + } + else if (pInformation->USBwValue1 == HID_DESCRIPTOR_TYPE) + { + CopyRoutine = CustomHID_GetHIDDescriptor; + } + + } /* End of GET_DESCRIPTOR */ + + /*** GET_PROTOCOL, GET_REPORT, SET_REPORT ***/ + else if ( (Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT)) ) + { + switch( RequestNo ) + { + case GET_PROTOCOL: + CopyRoutine = CustomHID_GetProtocolValue; + break; + case SET_REPORT: + CopyRoutine = CustomHID_SetReport_Feature; + Request = SET_REPORT; + break; + default: + break; + } + } + + if (CopyRoutine == NULL) + { + return USB_UNSUPPORT; + } + + pInformation->Ctrl_Info.CopyData = CopyRoutine; + pInformation->Ctrl_Info.Usb_wOffset = 0; + (*CopyRoutine)(0); + return USB_SUCCESS; +} + +/******************************************************************************* +* Function Name : CustomHID_SetReport_Feature +* Description : Set Feature request handling +* Input : Length. +* Output : None. +* Return : Buffer +*******************************************************************************/ +uint8_t *CustomHID_SetReport_Feature(uint16_t Length) +{ + if (Length == 0) + { + pInformation->Ctrl_Info.Usb_wLength = 2; + return NULL; + } + else + { + return Report_Buf; + } +} +/******************************************************************************* +* Function Name : CustomHID_NoData_Setup +* Description : handle the no data class specific requests +* Input : Request Nb. +* Output : None. +* Return : USB_UNSUPPORT or USB_SUCCESS. +*******************************************************************************/ +RESULT CustomHID_NoData_Setup(uint8_t RequestNo) +{ + if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT)) + && (RequestNo == SET_PROTOCOL)) + { + return CustomHID_SetProtocol(); + } + + else + { + return USB_UNSUPPORT; + } +} + +/******************************************************************************* +* Function Name : CustomHID_GetDeviceDescriptor. +* Description : Gets the device descriptor. +* Input : Length +* Output : None. +* Return : The address of the device descriptor. +*******************************************************************************/ +uint8_t *CustomHID_GetDeviceDescriptor(uint16_t Length) +{ + return Standard_GetDescriptorData(Length, &Device_Descriptor); +} + +/******************************************************************************* +* Function Name : CustomHID_GetConfigDescriptor. +* Description : Gets the configuration descriptor. +* Input : Length +* Output : None. +* Return : The address of the configuration descriptor. +*******************************************************************************/ +uint8_t *CustomHID_GetConfigDescriptor(uint16_t Length) +{ + return Standard_GetDescriptorData(Length, &Config_Descriptor); +} + +/******************************************************************************* +* Function Name : CustomHID_GetStringDescriptor +* Description : Gets the string descriptors according to the needed index +* Input : Length +* Output : None. +* Return : The address of the string descriptors. +*******************************************************************************/ +uint8_t *CustomHID_GetStringDescriptor(uint16_t Length) +{ + uint8_t wValue0 = pInformation->USBwValue0; + if (wValue0 > 4) + { + return NULL; + } + else + { + return Standard_GetDescriptorData(Length, &String_Descriptor[wValue0]); + } +} + +/******************************************************************************* +* Function Name : CustomHID_GetReportDescriptor. +* Description : Gets the HID report descriptor. +* Input : Length +* Output : None. +* Return : The address of the configuration descriptor. +*******************************************************************************/ +uint8_t *CustomHID_GetReportDescriptor(uint16_t Length) +{ + return Standard_GetDescriptorData(Length, &CustomHID_Report_Descriptor); +} + +/******************************************************************************* +* Function Name : CustomHID_GetHIDDescriptor. +* Description : Gets the HID descriptor. +* Input : Length +* Output : None. +* Return : The address of the configuration descriptor. +*******************************************************************************/ +uint8_t *CustomHID_GetHIDDescriptor(uint16_t Length) +{ + return Standard_GetDescriptorData(Length, &CustomHID_Hid_Descriptor); +} + +/******************************************************************************* +* Function Name : CustomHID_Get_Interface_Setting. +* Description : tests the interface and the alternate setting according to the +* supported one. +* Input : - Interface : interface number. +* - AlternateSetting : Alternate Setting number. +* Output : None. +* Return : USB_SUCCESS or USB_UNSUPPORT. +*******************************************************************************/ +RESULT CustomHID_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting) +{ + if (AlternateSetting > 0) + { + return USB_UNSUPPORT; + } + else if (Interface > 0) + { + return USB_UNSUPPORT; + } + return USB_SUCCESS; +} + +/******************************************************************************* +* Function Name : CustomHID_SetProtocol +* Description : Joystick Set Protocol request routine. +* Input : None. +* Output : None. +* Return : USB SUCCESS. +*******************************************************************************/ +RESULT CustomHID_SetProtocol(void) +{ + uint8_t wValue0 = pInformation->USBwValue0; + ProtocolValue = wValue0; + return USB_SUCCESS; +} + +/******************************************************************************* +* Function Name : CustomHID_GetProtocolValue +* Description : get the protocol value +* Input : Length. +* Output : None. +* Return : address of the protocol value. +*******************************************************************************/ +uint8_t *CustomHID_GetProtocolValue(uint16_t Length) +{ + if (Length == 0) + { + pInformation->Ctrl_Info.Usb_wLength = 1; + return NULL; + } + else + { + return (uint8_t *)(&ProtocolValue); + } +} + +void CustomHID_ClearFeature (void) +{ + if (CBW.dSignature != BOT_CBW_SIGNATURE) + Bot_Abort(BOTH_DIR); +} + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_pwr.c b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_pwr.c new file mode 100644 index 0000000..a2253a8 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Projects/Composite_Example/src/usb_pwr.c @@ -0,0 +1,318 @@ +/** + ****************************************************************************** + * @file usb_pwr.c + * @author MCD Application Team + * @version V4.0.0 + * @date 21-January-2013 + * @brief Connection/disconnection & power management + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2013 STMicroelectronics

+ * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + + +/* Includes ------------------------------------------------------------------*/ +#include "usb_lib.h" +#include "usb_conf.h" +#include "usb_pwr.h" +#include "hw_config.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +__IO uint32_t bDeviceState = UNCONNECTED; /* USB device status */ +__IO bool fSuspendEnabled = TRUE; /* true when suspend is possible */ +__IO uint32_t EP[8]; + +struct +{ + __IO RESUME_STATE eState; + __IO uint8_t bESOFcnt; +} +ResumeS; + +__IO uint32_t remotewakeupon=0; + +/* Extern variables ----------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Extern function prototypes ------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ + +/******************************************************************************* +* Function Name : PowerOn +* Description : +* Input : None. +* Output : None. +* Return : USB_SUCCESS. +*******************************************************************************/ +RESULT PowerOn(void) +{ + uint16_t wRegVal; + + /*** cable plugged-in ? ***/ + USB_Cable_Config(ENABLE); + + /*** CNTR_PWDN = 0 ***/ + wRegVal = CNTR_FRES; + _SetCNTR(wRegVal); + + /*** CNTR_FRES = 0 ***/ + wInterrupt_Mask = 0; + _SetCNTR(wInterrupt_Mask); + /*** Clear pending interrupts ***/ + _SetISTR(0); + /*** Set interrupt mask ***/ + wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM; + _SetCNTR(wInterrupt_Mask); + + return USB_SUCCESS; +} + +/******************************************************************************* +* Function Name : PowerOff +* Description : handles switch-off conditions +* Input : None. +* Output : None. +* Return : USB_SUCCESS. +*******************************************************************************/ +RESULT PowerOff() +{ + /* disable all interrupts and force USB reset */ + _SetCNTR(CNTR_FRES); + /* clear interrupt status register */ + _SetISTR(0); + /* Disable the Pull-Up*/ + USB_Cable_Config(DISABLE); + /* switch-off device */ + _SetCNTR(CNTR_FRES + CNTR_PDWN); + /* sw variables reset */ + /* ... */ + + return USB_SUCCESS; +} + +/******************************************************************************* +* Function Name : Suspend +* Description : sets suspend mode operating conditions +* Input : None. +* Output : None. +* Return : USB_SUCCESS. +*******************************************************************************/ +void Suspend(void) +{ + uint32_t i =0; + uint16_t wCNTR; + uint32_t tmpreg = 0; + __IO uint32_t savePWR_CR=0; + /* suspend preparation */ + /* ... */ + + /*Store CNTR value */ + wCNTR = _GetCNTR(); + + /* This a sequence to apply a force RESET to handle a robustness case */ + + /*Store endpoints registers status */ + for (i=0;i<8;i++) EP[i] = _GetENDPOINT(i); + + /* unmask RESET flag */ + wCNTR|=CNTR_RESETM; + _SetCNTR(wCNTR); + + /*apply FRES */ + wCNTR|=CNTR_FRES; + _SetCNTR(wCNTR); + + /*clear FRES*/ + wCNTR&=~CNTR_FRES; + _SetCNTR(wCNTR); + + /*poll for RESET flag in ISTR*/ + while((_GetISTR()&ISTR_RESET) == 0); + + /* clear RESET flag in ISTR */ + _SetISTR((uint16_t)CLR_RESET); + + /*restore Enpoints*/ + for (i=0;i<8;i++) + _SetENDPOINT(i, EP[i]); + + /* Now it is safe to enter macrocell in suspend mode */ + wCNTR |= CNTR_FSUSP; + _SetCNTR(wCNTR); + + /* force low-power mode in the macrocell */ + wCNTR = _GetCNTR(); + wCNTR |= CNTR_LPMODE; + _SetCNTR(wCNTR); + + /*prepare entry in low power mode (STOP mode)*/ + /* Select the regulator state in STOP mode*/ + savePWR_CR = PWR->CR; + tmpreg = PWR->CR; + /* Clear PDDS and LPDS bits */ + tmpreg &= ((uint32_t)0xFFFFFFFC); + /* Set LPDS bit according to PWR_Regulator value */ + tmpreg |= PWR_Regulator_LowPower; + /* Store the new value */ + PWR->CR = tmpreg; + /* Set SLEEPDEEP bit of Cortex System Control Register */ +#if defined (STM32F30X) || defined (STM32F37X) + SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; +#else + SCB->SCR |= SCB_SCR_SLEEPDEEP; +#endif + + /* enter system in STOP mode, only when wakeup flag in not set */ + if((_GetISTR()&ISTR_WKUP)==0) + { + __WFI(); + /* Reset SLEEPDEEP bit of Cortex System Control Register */ +#if defined (STM32F30X) || defined (STM32F37X) + SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); +#else + SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP); +#endif + } + else + { + /* Clear Wakeup flag */ + _SetISTR(CLR_WKUP); + /* clear FSUSP to abort entry in suspend mode */ + wCNTR = _GetCNTR(); + wCNTR&=~CNTR_FSUSP; + _SetCNTR(wCNTR); + + /*restore sleep mode configuration */ + /* restore Power regulator config in sleep mode*/ + PWR->CR = savePWR_CR; + + /* Reset SLEEPDEEP bit of Cortex System Control Register */ +#if defined (STM32F30X) || defined (STM32F37X) + SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); +#else + SCB->SCR &= (uint32_t)~((uint32_t)SCB_SCR_SLEEPDEEP); +#endif + } +} + +/******************************************************************************* +* Function Name : Resume_Init +* Description : Handles wake-up restoring normal operations +* Input : None. +* Output : None. +* Return : USB_SUCCESS. +*******************************************************************************/ +void Resume_Init(void) +{ + uint16_t wCNTR; + + /* ------------------ ONLY WITH BUS-POWERED DEVICES ---------------------- */ + /* restart the clocks */ + /* ... */ + + /* CNTR_LPMODE = 0 */ + wCNTR = _GetCNTR(); + wCNTR &= (~CNTR_LPMODE); + _SetCNTR(wCNTR); + + /* restore full power */ + /* ... on connected devices */ + Leave_LowPowerMode(); + + /* reset FSUSP bit */ + _SetCNTR(IMR_MSK); + + /* reverse suspend preparation */ + /* ... */ + +} + +/******************************************************************************* +* Function Name : Resume +* Description : This is the state machine handling resume operations and +* timing sequence. The control is based on the Resume structure +* variables and on the ESOF interrupt calling this subroutine +* without changing machine state. +* Input : a state machine value (RESUME_STATE) +* RESUME_ESOF doesn't change ResumeS.eState allowing +* decrementing of the ESOF counter in different states. +* Output : None. +* Return : None. +*******************************************************************************/ +void Resume(RESUME_STATE eResumeSetVal) +{ + uint16_t wCNTR; + + if (eResumeSetVal != RESUME_ESOF) + ResumeS.eState = eResumeSetVal; + switch (ResumeS.eState) + { + case RESUME_EXTERNAL: + if (remotewakeupon ==0) + { + Resume_Init(); + ResumeS.eState = RESUME_OFF; + } + else /* RESUME detected during the RemoteWAkeup signalling => keep RemoteWakeup handling*/ + { + ResumeS.eState = RESUME_ON; + } + break; + case RESUME_INTERNAL: + Resume_Init(); + ResumeS.eState = RESUME_START; + remotewakeupon = 1; + break; + case RESUME_LATER: + ResumeS.bESOFcnt = 2; + ResumeS.eState = RESUME_WAIT; + break; + case RESUME_WAIT: + ResumeS.bESOFcnt--; + if (ResumeS.bESOFcnt == 0) + ResumeS.eState = RESUME_START; + break; + case RESUME_START: + wCNTR = _GetCNTR(); + wCNTR |= CNTR_RESUME; + _SetCNTR(wCNTR); + ResumeS.eState = RESUME_ON; + ResumeS.bESOFcnt = 10; + break; + case RESUME_ON: + ResumeS.bESOFcnt--; + if (ResumeS.bESOFcnt == 0) + { + wCNTR = _GetCNTR(); + wCNTR &= (~CNTR_RESUME); + _SetCNTR(wCNTR); + ResumeS.eState = RESUME_OFF; + remotewakeupon = 0; + } + break; + case RESUME_OFF: + case RESUME_ESOF: + default: + ResumeS.eState = RESUME_OFF; + break; + } +} + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ -- cgit v1.2.3