Refs #160. Updated FatFS library to the latest stable version (R0.12).

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@219 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2017-04-27 14:50:14 +00:00
parent 71e918f3c4
commit bdb2f42bdd
228 changed files with 73394 additions and 70261 deletions

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File> <!DOCTYPE CrossStudio_Project_File>
<solution Name="EFM32G880_crossworks" target="8" version="2"> <solution Name="EFM32G880_crossworks" target="8" version="2">
<project Name="openbtl_olimex_efm32g880"> <project Name="openbtl_olimex_efm32g880">
<configuration Name="Common" Target="EFM32G880F128" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/EFM32/EFM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="EFM32G880F128;FLASH=0x00000000:0x20000;RAM=0x20000000:0x4000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="SWD" arm_target_loader_parameter="16000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(Configuration)/../../bin" c_preprocessor_definitions="USE_PROCESS_STACK" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../lib/CMSIS/CM3/CoreSupport;$(ProjectDir)/../lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32;$(ProjectDir)/../lib/efm32lib/inc;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARMCM3_EFM32;$(ProjectDir)/../../../../Source/ARMCM3_EFM32/Crossworks" gcc_optimization_level="Optimize For Size" link_include_standard_libraries="No" link_include_startup_code="No" linker_additional_files="" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/EFM32/EFM32G880F128_MemoryMap.xml" linker_output_format="srec" oscillator_frequency="Other" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/EFM32/EFM32_propertyGroups.xml"/> <configuration Name="Common" Target="EFM32G880F128" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/EFM32/EFM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="EFM32G880F128;FLASH=0x00000000:0x20000;RAM=0x20000000:0x4000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="SWD" arm_target_loader_parameter="16000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(Configuration)/../../bin" c_preprocessor_definitions="USE_PROCESS_STACK;EFM32G880F128" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../lib/CMSIS/CM3/CoreSupport;$(ProjectDir)/../lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32;$(ProjectDir)/../lib/efm32lib/inc;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARMCM3_EFM32;$(ProjectDir)/../../../../Source/ARMCM3_EFM32/Crossworks" gcc_optimization_level="Optimize For Size" link_include_standard_libraries="No" link_include_startup_code="No" linker_additional_files="" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/EFM32/EFM32G880F128_MemoryMap.xml" linker_output_format="srec" oscillator_frequency="Other" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/EFM32/EFM32_propertyGroups.xml"/>
<configuration Name="Flash" Placement="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/EFM32/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" target_reset_script="FLASHReset()"/> <configuration Name="Flash" Placement="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/EFM32/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" target_reset_script="FLASHReset()"/>
<configuration Name="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/> <configuration Name="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/>
<folder Name="Source Files"> <folder Name="Source Files">

View File

@ -21,9 +21,8 @@
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo;Boot" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo;Boot;Lib" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source;ARMCM3_EFM32" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo;Boot;Lib;Cmsis" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source;ARMCM3_EFM32;Crossworks" name="unnamed" />
</Project> </Project>
<Register1> <Register1>
<RegisterWindow openNodes="" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_efm32g880" /> <RegisterWindow openNodes="" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_efm32g880" />
@ -54,7 +53,8 @@
<Watches active="0" update="Never" /> <Watches active="0" update="Never" />
</Watch4> </Watch4>
<Files> <Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" y="71" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="0" /> <SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\users\voorburg\desktop\target\demo\armcm3_efm32_olimex_em32g880f128stk_crossworks\boot\lib\cmsis\cm3\devicesupport\energymicro\efm32\efm32.h" y="499" path="C:\users\voorburg\desktop\target\demo\armcm3_efm32_olimex_em32g880f128stk_crossworks\boot\lib\cmsis\cm3\devicesupport\energymicro\efm32\efm32.h" left="18" selected="0" name="unnamed" top="485" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Users\voorburg\Desktop\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" y="0" path="C:\Users\voorburg\Desktop\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" left="18" selected="1" name="unnamed" top="0" />
</Files> </Files>
<ARMCrossStudioWindow activeProject="openbtl_olimex_efm32g880" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\ARMCM3_EFM32\Crossworks" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" /> <ARMCrossStudioWindow activeProject="openbtl_olimex_efm32g880" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\ARMCM3_EFM32\Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
</session> </session>

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File> <!DOCTYPE CrossStudio_Project_File>
<solution Name="EFM32G880_crossworks" target="8" version="2"> <solution Name="EFM32G880_crossworks" target="8" version="2">
<project Name="demoprog_olimex_efm32g880"> <project Name="demoprog_olimex_efm32g880">
<configuration Name="Common" Target="EFM32G880F128" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/EFM32/EFM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="EFM32G880F128;FLASH=0x00000000:0x20000;RAM=0x20000000:0x4000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="SWD" arm_target_loader_parameter="16000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(Configuration)/../../bin" c_preprocessor_definitions="USE_PROCESS_STACK" c_user_include_directories="$(ProjectDir)/../src;$(ProjectDir)/../lib/CMSIS/CM3/CoreSupport;$(ProjectDir)/../lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32;$(ProjectDir)/../lib/efm32lib/inc;$(ProjectDir)/../lib/lcd" gcc_optimization_level="Level 1" link_include_startup_code="No" linker_additional_files="" linker_memory_map_file="$(TargetsDir)/EFM32/EFM32G880F128_MemoryMap.xml" linker_output_format="srec" oscillator_frequency="Other" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/EFM32/EFM32_propertyGroups.xml"/> <configuration Name="Common" Target="EFM32G880F128" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="Yes" arm_simulator_memory_simulation_filename="$(TargetsDir)/EFM32/EFM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="EFM32G880F128;FLASH=0x00000000:0x20000;RAM=0x20000000:0x4000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="SWD" arm_target_loader_parameter="16000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(Configuration)/../../bin" c_preprocessor_definitions="USE_PROCESS_STACK;EFM32G880F128" c_user_include_directories="$(ProjectDir)/../src;$(ProjectDir)/../lib/CMSIS/CM3/CoreSupport;$(ProjectDir)/../lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32;$(ProjectDir)/../lib/efm32lib/inc;$(ProjectDir)/../lib/lcd" gcc_optimization_level="Level 1" link_include_startup_code="No" linker_additional_files="" linker_memory_map_file="$(TargetsDir)/EFM32/EFM32G880F128_MemoryMap.xml" linker_output_format="srec" oscillator_frequency="Other" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/EFM32/EFM32_propertyGroups.xml"/>
<configuration Name="Flash" Placement="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/EFM32/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" target_reset_script="FLASHReset()"/> <configuration Name="Flash" Placement="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/EFM32/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" target_reset_script="FLASHReset()"/>
<configuration Name="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/> <configuration Name="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/>
<folder Name="Source Files"> <folder Name="Source Files">

View File

@ -18,6 +18,7 @@
<Project> <Project>
<ProjectSessionItem path="EFM32G880_crossworks" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Library Files" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files;Demo" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files;Demo;Prog" name="unnamed" /> <ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files;Demo;Prog" name="unnamed" />
@ -51,7 +52,7 @@
<Watches active="0" update="Never" /> <Watches active="0" update="Never" />
</Watch4> </Watch4>
<Files> <Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\main.c" y="21" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\main.c" left="0" selected="1" name="unnamed" top="21" /> <SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Users\voorburg\Desktop\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\main.c" y="0" path="C:\Users\voorburg\Desktop\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\main.c" left="0" selected="1" name="unnamed" top="0" />
</Files> </Files>
<ARMCrossStudioWindow activeProject="demoprog_olimex_efm32g880" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" /> <ARMCrossStudioWindow activeProject="demoprog_olimex_efm32g880" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
</session> </session>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -30,6 +30,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -226,7 +238,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -280,7 +292,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -307,7 +319,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -336,7 +347,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -402,7 +412,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -470,10 +480,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -506,12 +516,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -540,7 +549,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -548,7 +556,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -646,27 +653,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2010/4/26 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -7,38 +7,38 @@ start address 0x00000000
Program Header: Program Header:
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15
filesz 0x00006048 memsz 0x00006048 flags r-x filesz 0x000060d4 memsz 0x000060d4 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00006048 align 2**15 LOAD off 0x00010000 vaddr 0x20000000 paddr 0x000060d4 align 2**15
filesz 0x00000008 memsz 0x000018a4 flags rw- filesz 0x00000008 memsz 0x00001ea8 flags rw-
private flags = 5000200: [Version5 EABI] [soft-float ABI] private flags = 5000200: [Version5 EABI] [soft-float ABI]
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 00006048 00000000 00000000 00008000 2**2 0 .text 000060d4 00000000 00000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000008 20000000 00006048 00010000 2**2 1 .data 00000008 20000000 000060d4 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000189c 20000008 00006050 00010008 2**2 2 .bss 00001ea0 20000008 000060dc 00010008 2**2
ALLOC ALLOC
3 .debug_info 0000fa0a 00000000 00000000 00010008 2**0 3 .debug_info 00010b82 00000000 00000000 00010008 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 00002fe2 00000000 00000000 0001fa12 2**0 4 .debug_abbrev 00002ffd 00000000 00000000 00020b8a 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
5 .debug_loc 0000b6e5 00000000 00000000 000229f4 2**0 5 .debug_loc 0000c9a1 00000000 00000000 00023b87 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 00000e28 00000000 00000000 0002e0d9 2**0 6 .debug_aranges 00000e28 00000000 00000000 00030528 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000ec8 00000000 00000000 0002ef01 2**0 7 .debug_ranges 00000f80 00000000 00000000 00031350 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_line 00004f19 00000000 00000000 0002fdc9 2**0 8 .debug_line 00005092 00000000 00000000 000322d0 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 00002e02 00000000 00000000 00034ce2 2**0 9 .debug_str 00002e43 00000000 00000000 00037362 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 00037ae4 2**0 10 .comment 00000030 00000000 00000000 0003a1a5 2**0
CONTENTS, READONLY CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 00037b14 2**0 11 .ARM.attributes 00000033 00000000 00000000 0003a1d5 2**0
CONTENTS, READONLY CONTENTS, READONLY
12 .debug_frame 00002b38 00000000 00000000 00037b48 2**2 12 .debug_frame 00002b80 00000000 00000000 0003a208 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d .text 00000000 .text 00000000 l d .text 00000000 .text
@ -56,8 +56,8 @@ SYMBOL TABLE:
00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 hooks.c 00000000 l df *ABS* 00000000 hooks.c
000055e4 l O .text 0000001b firmwareFilename 00005780 l O .text 0000001b firmwareFilename
20000008 l O .bss 00000228 logfile 20000008 l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 ethernet.c 00000000 l df *ABS* 00000000 ethernet.c
00000220 l F .text 00000084 EthernetPacketGetInternal 00000220 l F .text 00000084 EthernetPacketGetInternal
@ -65,9 +65,9 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 flashlib.c 00000000 l df *ABS* 00000000 flashlib.c
00000000 l df *ABS* 00000000 sysctl.c 00000000 l df *ABS* 00000000 sysctl.c
00000748 l F .text 00000154 SysCtlPeripheralValid 00000748 l F .text 00000154 SysCtlPeripheralValid
00005644 l O .text 0000006c g_pulXtals 000057e0 l O .text 0000006c g_pulXtals
000056cc l O .text 0000000c g_pulRCGCRegs 00005868 l O .text 0000000c g_pulRCGCRegs
000056d8 l O .text 0000000c g_pulSRCRRegs 00005874 l O .text 0000000c g_pulSRCRRegs
00000000 l df *ABS* 00000000 gpio.c 00000000 l df *ABS* 00000000 gpio.c
00000c94 l F .text 00000054 GPIOBaseValid 00000c94 l F .text 00000054 GPIOBaseValid
00000000 l df *ABS* 00000000 uartlib.c 00000000 l df *ABS* 00000000 uartlib.c
@ -82,272 +82,273 @@ SYMBOL TABLE:
00001340 l F .text 0000007e send_cmd 00001340 l F .text 0000007e send_cmd
000013be l F .text 0000003a xmit_datablock.part.1 000013be l F .text 0000003a xmit_datablock.part.1
000013f8 l F .text 00000058 rcvr_datablock 000013f8 l F .text 00000058 rcvr_datablock
20000230 l O .bss 00000004 CardType 20000234 l O .bss 00000004 CardType
20000000 l O .data 00000001 Stat 20000000 l O .data 00000001 Stat
00000000 l df *ABS* 00000000 netdev.c 00000000 l df *ABS* 00000000 netdev.c
00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c 00000000 l df *ABS* 00000000 com.c
20000234 l O .bss 00000040 xcpCtoReqPacket.4395
20000001 l O .data 00000001 comActiveInterface 20000001 l O .data 00000001 comActiveInterface
20000238 l O .bss 00000040 xcpCtoReqPacket.4405
00000000 l df *ABS* 00000000 xcp.c 00000000 l df *ABS* 00000000 xcp.c
00001c20 l F .text 00000014 XcpSetCtoError 00001c10 l F .text 00000014 XcpSetCtoError
0000572b l O .text 00000008 xcpStationId 000058c7 l O .text 00000008 xcpStationId
20000274 l O .bss 0000004c xcpInfo 20000278 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c 00000000 l df *ABS* 00000000 backdoor.c
200002c0 l O .bss 00000001 backdoorOpen 200002c4 l O .bss 00000001 backdoorOpen
200002c4 l O .bss 00000004 backdoorOpenTime 200002c8 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c 00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 file.c 00000000 l df *ABS* 00000000 file.c
00001efc l F .text 0000002c FileLibByteNibbleToChar 00001eec l F .text 0000002c FileLibByteNibbleToChar
00001f28 l F .text 0000001e FileLibByteToHexString 00001f18 l F .text 0000001e FileLibByteToHexString
00001f48 l F .text 00000058 FileLibHexStringToByte 00001f38 l F .text 00000058 FileLibHexStringToByte
00001fa0 l F .text 00000038 FileLibLongToIntString.constprop.0 00001f90 l F .text 00000038 FileLibLongToIntString.constprop.0
200002c8 l O .bss 00000040 loggingStr 200002cc l O .bss 00000040 loggingStr
20000308 l O .bss 00000001 firmwareUpdateState 2000030c l O .bss 00000001 firmwareUpdateState
2000030c l O .bss 00000008 eraseInfo 20000310 l O .bss 00000008 eraseInfo
20000314 l O .bss 00000458 fatFsObjects 20000318 l O .bss 00000458 fatFsObjects
2000076c l O .bss 00000184 lineParseObject 20000770 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 net.c 00000000 l df *ABS* 00000000 net.c
200008f0 l O .bss 00000004 ARPTimerTimeOut 200008f4 l O .bss 00000004 ARPTimerTimeOut
200008f4 l O .bss 00000004 periodicTimerTimeOut 200008f8 l O .bss 00000004 periodicTimerTimeOut
00000000 l df *ABS* 00000000 assert.c 00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 ff.c 00000000 l df *ABS* 00000000 ff.c
000026f0 l F .text 00000012 mem_cpy 000027a8 l F .text 00000016 ld_dword
00002702 l F .text 0000001e sum_sfn 000027be l F .text 00000018 clust2sect
00002720 l F .text 0000002a validate 000027d6 l F .text 0000001e sum_sfn
0000274a l F .text 000000ea get_fileinfo 000027f4 l F .text 00000032 get_ldnumber
00002834 l F .text 0000001c ld_clust.isra.0 00002826 l F .text 00000036 validate
00002850 l F .text 00000088 check_fs 0000285c l F .text 00000010 mem_cpy.part.0
000028d8 l F .text 0000030c chk_mounted 0000286c l F .text 0000001c ld_clust.isra.1
00002be4 l F .text 0000004a sync_window.part.2 00002888 l F .text 00000018 st_clust.isra.2
00002c2e l F .text 0000000c sync_window 000028a0 l F .text 00000046 sync_window.part.3
00002c3a l F .text 0000002e move_window 000028e6 l F .text 0000000c sync_window
00002c68 l F .text 000000b6 sync_fs 000028f2 l F .text 00000036 move_window
00002e02 l F .text 00000084 dir_sdi 00002928 l F .text 00000068 check_fs
00002f78 l F .text 0000009a create_chain 00002990 l F .text 00000284 find_volume
00003012 l F .text 000000f2 dir_next 00002c14 l F .text 000000b6 get_fat.isra.6
00003104 l F .text 0000012c dir_find.part.6 00002cca l F .text 00000092 dir_sdi
00003230 l F .text 0000026c follow_path 00002d5c l F .text 000000d6 get_fileinfo.part.8
0000349c l F .text 0000004e dir_remove 00002e32 l F .text 00000104 put_fat
000034ec l F .text 000000fc dir_read.constprop.8 00002f36 l F .text 000000b6 create_chain
000035e8 l F .text 00000054 remove_chain 00002fec l F .text 0000006a remove_chain
000036bc l F .text 000001b0 dir_register 00003056 l F .text 00000102 dir_next
200008f8 l O .bss 00000200 LfnBuf 00003158 l F .text 00000054 dir_remove
20000af8 l O .bss 00000002 Fsid 000031ac l F .text 00000160 dir_find
000058de l O .text 00000080 ExCvt 0000330c l F .text 00000260 follow_path
0000595e l O .text 0000000d LfnOfs 0000356c l F .text 00000114 dir_read.constprop.9
20000afc l O .bss 00000004 FatFs 00003680 l F .text 00000234 dir_register
000038b4 l F .text 000000b0 sync_fs
00003dd0 l F .text 00000044 putc_bfd
200008fc l O .bss 00000200 LfnBuf
20000afc l O .bss 00000002 Fsid
00005a7f l O .text 00000080 ExCvt
00005aff l O .text 0000000d LfnOfs
20000b00 l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c 00000000 l df *ABS* 00000000 unicode.c
0000596c l O .text 000001e0 tbl_lower.4259 00005b0c l O .text 000000bc cvt2.4272
00005b4c l O .text 00000100 Tbl 00005bc8 l O .text 00000100 Tbl
00005c4c l O .text 000001e0 tbl_upper.4260 00005cc8 l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 uip.c 00000000 l df *ABS* 00000000 uip.c
000040b4 l F .text 00000038 chksum 00004250 l F .text 00000038 chksum
000040ec l F .text 0000003c upper_layer_chksum 00004288 l F .text 0000003c upper_layer_chksum
0000417c l F .text 0000002c uip_add_rcv_nxt 00004318 l F .text 0000002c uip_add_rcv_nxt
20000b00 l O .bss 00000002 tmp16 20000b04 l O .bss 00000002 tmp16
20000b02 l O .bss 00000002 ipid 20000b06 l O .bss 00000002 ipid
20000b04 l O .bss 00000004 iss 20000b08 l O .bss 00000004 iss
20000b08 l O .bss 00000002 lastport 20000b0c l O .bss 00000002 lastport
20000b10 l O .bss 00000001 c 20000b14 l O .bss 00000001 c
20000b11 l O .bss 00000001 opt 20000b15 l O .bss 00000001 opt
00000000 l df *ABS* 00000000 uip_arp.c 00000000 l df *ABS* 00000000 uip_arp.c
00004bc4 l F .text 000000e4 uip_arp_update.constprop.0 00004d60 l F .text 000000e4 uip_arp_update.constprop.0
20000b12 l O .bss 00000001 i 20000b16 l O .bss 00000001 i
20000b13 l O .bss 00000001 tmpage 20000b17 l O .bss 00000001 tmpage
20000b14 l O .bss 00000060 arp_table 20000b18 l O .bss 00000060 arp_table
00005e2c l O .text 00000006 broadcast_ethaddr 00005eba l O .text 00000006 broadcast_ethaddr
20000b74 l O .bss 00000001 c 20000b78 l O .bss 00000001 c
20000b75 l O .bss 00000001 arptime 20000b79 l O .bss 00000001 arptime
20000b76 l O .bss 00000004 ipaddr 20000b7a l O .bss 00000004 ipaddr
00000000 l df *ABS* 00000000 cpu.c 00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 uart.c 00000000 l df *ABS* 00000000 uart.c
20000b7c l O .bss 00000004 xcpCtoRxStartTime.4616 20000b80 l O .bss 00000004 xcpCtoRxStartTime.4626
20000b80 l O .bss 00000041 xcpCtoReqPacket.4613 20000b84 l O .bss 00000041 xcpCtoReqPacket.4623
20000bc1 l O .bss 00000001 xcpCtoRxInProgress.4615 20000bc5 l O .bss 00000001 xcpCtoRxLength.4624
20000bc2 l O .bss 00000001 xcpCtoRxLength.4614 20000bc6 l O .bss 00000001 xcpCtoRxInProgress.4625
00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c 00000000 l df *ABS* 00000000 timer.c
20000bc4 l O .bss 00000004 millisecond_counter 20000bc8 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c 00000000 l df *ABS* 00000000 flash.c
000050f0 l F .text 00000034 FlashGetSector 0000528c l F .text 00000034 FlashGetSector
00005124 l F .text 0000004c FlashWriteBlock 000052c0 l F .text 0000004c FlashWriteBlock
00005170 l F .text 00000050 FlashSwitchBlock 0000530c l F .text 00000050 FlashSwitchBlock
000051c0 l F .text 00000080 FlashAddToBlock 0000535c l F .text 00000080 FlashAddToBlock
00005e58 l O .text 000000c0 flashLayout 00005ee4 l O .text 000000c0 flashLayout
20000bc8 l O .bss 00000204 bootBlockInfo 20000bcc l O .bss 00000204 bootBlockInfo
20000dcc l O .bss 00000204 blockInfo 20000dd0 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 cpu_comp.c 00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c 00000000 l df *ABS* 00000000 cstart.c
00005470 l F .text 00000000 zero_loop 0000560c l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 memcpy-stub.c 00000000 l df *ABS* 00000000 memcpy-stub.c
00000000 l df *ABS* 00000000 memset.c 00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 ctype_.c 00000000 l df *ABS* 00000000 ctype_.c
00000000 l df *ABS* 00000000 00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__ 00000800 l *ABS* 00000000 __STACKSIZE__
00001b64 g F .text 00000020 ComInit 00001b54 g F .text 00000020 ComInit
00005258 g F .text 00000048 FlashWrite 000053f4 g F .text 00000048 FlashWrite
00003fb4 g F .text 0000004e f_gets 000040fc g F .text 0000004e f_gets
000026e8 g F .text 00000008 AssertFailure 000027a0 g F .text 00000008 AssertFailure
00002d36 g F .text 000000cc get_fat
00000ed0 g F .text 00000034 GPIOPinTypeSSI 00000ed0 g F .text 00000034 GPIOPinTypeSSI
0000544c g F .text 00000044 reset_handler 000055e8 g F .text 00000044 reset_handler
00001288 g F .text 00000028 SSIDataGet 00001288 g F .text 00000028 SSIDataGet
000050c4 g F .text 0000001c TimerUpdate 00005260 g F .text 0000001c TimerUpdate
00001c60 g F .text 00000010 XcpPacketTransmitted 00001c50 g F .text 00000010 XcpPacketTransmitted
00001b84 g F .text 0000003c ComTask 00001b74 g F .text 0000003c ComTask
00001200 g F .text 00000024 SSIEnable 00001200 g F .text 00000024 SSIEnable
00000990 g F .text 00000008 SysCtlDelay 00000990 g F .text 00000008 SysCtlDelay
20000fd0 g O .bss 00000002 uip_len 20000fd4 g O .bss 00000002 uip_len
20000b0a g O .bss 00000006 uip_ethaddr 20000b0e g O .bss 00000006 uip_ethaddr
00004128 g F .text 00000054 uip_add32 000042c4 g F .text 00000054 uip_add32
00001b28 g F .text 00000022 BootInit 00001b18 g F .text 00000022 BootInit
00002084 g F .text 0000003e FileSrecVerifyChecksum 00002078 g F .text 0000003e FileSrecVerifyChecksum
00001ed8 g F .text 00000020 BackDoorInit 00001ec8 g F .text 00000020 BackDoorInit
00001138 g F .text 000000c8 SSIConfigSetExpClk 00001138 g F .text 000000c8 SSIConfigSetExpClk
00001efa g F .text 00000002 CopService 00001eea g F .text 00000002 CopService
00006048 g .text 00000000 _etext 000060d4 g .text 00000000 _etext
0000089c g F .text 00000090 SysCtlPeripheralReset 0000089c g F .text 00000090 SysCtlPeripheralReset
00005444 g F .text 00000004 CpuIrqDisable 000055e0 g F .text 00000004 CpuIrqDisable
00004090 g F .text 00000024 ff_wtoupper 000041cc g F .text 00000084 ff_wtoupper
00000e44 g F .text 00000024 GPIOPinWrite 00000e44 g F .text 00000024 GPIOPinWrite
00001adc g F .text 00000034 netdev_read 00001acc g F .text 00000034 netdev_read
00004218 g F .text 00000980 uip_process 000043b4 g F .text 00000980 uip_process
00005430 g F .text 00000006 FlashGetUserProgBaseAddress 000055cc g F .text 00000006 FlashGetUserProgBaseAddress
0000549c g F .text 000000a6 memcpy 00005638 g F .text 000000a6 memcpy
00002200 g F .text 0000032c FileTask 000021f4 g F .text 000003f0 FileTask
0000108c g F .text 00000024 UARTSpaceAvail 0000108c g F .text 00000024 UARTSpaceAvail
000050b8 g F .text 0000000c TimerReset 00005254 g F .text 0000000c TimerReset
00001450 g F .text 00000228 disk_initialize 00001450 g F .text 00000228 disk_initialize
20000fd4 g O .bss 00000004 uip_sappdata 20000fd8 g O .bss 00000004 uip_sappdata
000019b8 g F .text 00000018 netdev_init 000019a8 g F .text 00000018 netdev_init
20000fd8 g O .bss 00000004 uip_acc32 20000fdc g O .bss 00000004 uip_acc32
000041a8 g F .text 00000020 uip_ipchksum 00004344 g F .text 00000020 uip_ipchksum
000010d8 g F .text 0000002c UARTCharPutNonBlocking 000010d8 g F .text 0000002c UARTCharPutNonBlocking
00001b4a g F .text 0000001a BootTask 00001b3a g F .text 0000001a BootTask
00005370 g F .text 00000044 FlashWriteChecksum 0000550c g F .text 00000044 FlashWriteChecksum
00001bc4 g F .text 00000030 ComTransmitPacket 00001bb4 g F .text 00000030 ComTransmitPacket
0000030c g F .text 0000002c EthernetInitExpClk 0000030c g F .text 0000002c EthernetInitExpClk
00001678 g F .text 00000014 disk_status 00001678 g F .text 00000014 disk_status
000020c4 g F .text 0000013c FileSrecParseLine 000020b8 g F .text 0000013c FileSrecParseLine
000041fc g F .text 0000001c uip_listen 00004398 g F .text 0000001c uip_listen
00001b10 g F .text 00000018 netdev_send 00001b00 g F .text 00000018 netdev_send
000017d0 g F .text 000001e0 disk_ioctl 000017c8 g F .text 000001e0 disk_ioctl
00002018 g F .text 00000028 FileHandleFirmwareUpdateRequest 0000200c g F .text 00000028 FileHandleFirmwareUpdateRequest
00000484 g F .text 0000005c EthernetPacketPut 00000484 g F .text 0000005c EthernetPacketPut
0000092c g F .text 00000064 SysCtlPeripheralEnable 0000092c g F .text 00000064 SysCtlPeripheralEnable
0000363c g F .text 0000007e gen_numname 20000fe0 g O .bss 00000001 uip_flags
20000fdc g O .bss 00000001 uip_flags
00000158 g F .text 00000040 FileFirmwareUpdateCompletedHook 00000158 g F .text 00000040 FileFirmwareUpdateCompletedHook
00001c50 g F .text 00000010 XcpIsConnected 00001c40 g F .text 00000010 XcpIsConnected
00003ef8 g F .text 000000bc f_unlink 00004050 g F .text 000000ac f_unlink
00005070 g F .text 00000004 NvmInit 0000520c g F .text 00000004 NvmInit
00005240 g F .text 00000018 FlashInit 000053dc g F .text 00000018 FlashInit
00005080 g F .text 00000004 NvmGetUserProgBaseAddress 0000521c g F .text 00000004 NvmGetUserProgBaseAddress
200016a2 g .bss 00000000 _ebss 200016a6 g .bss 00000000 _ebss
00004002 g F .text 00000032 f_putc 0000414a g F .text 00000044 f_puts
00004034 g F .text 0000001e f_puts 000055d4 g F .text 0000000c UnusedISR
00005438 g F .text 0000000c UnusedISR
00000430 g F .text 00000054 EthernetPacketGetNonBlocking 00000430 g F .text 00000054 EthernetPacketGetNonBlocking
00001bc0 g F .text 00000002 ComFree 00001bb0 g F .text 00000002 ComFree
00000e68 g F .text 00000034 GPIOPinTypeEthernetLED 00000e68 g F .text 00000034 GPIOPinTypeEthernetLED
00004f4c g F .text 00000028 UartInit 000050e8 g F .text 00000028 UartInit
00005078 g F .text 00000004 NvmErase 00005214 g F .text 00000004 NvmErase
000019d0 g F .text 0000010c netdev_init_mac 000019c0 g F .text 0000010c netdev_init_mac
000010b0 g F .text 00000028 UARTCharGetNonBlocking 000010b0 g F .text 00000028 UARTCharGetNonBlocking
00001248 g F .text 00000040 SSIDataPut 00001248 g F .text 00000040 SSIDataPut
20000008 g .bss 00000000 _bss 20000008 g .bss 00000000 _bss
00003d68 g F .text 0000000e f_close 00003ea8 g F .text 0000001a f_close
00001c70 g F .text 00000220 XcpPacketReceived 00001c60 g F .text 00000220 XcpPacketReceived
000041c8 g F .text 00000006 uip_tcpchksum 00004364 g F .text 00000006 uip_tcpchksum
00004ef4 g F .text 00000004 CpuInit 00005090 g F .text 00000004 CpuInit
000039cc g F .text 00000160 f_read 00003b04 g F .text 00000152 f_read
000053fc g F .text 00000034 FlashDone 00005598 g F .text 00000034 FlashDone
20000fe0 g O .bss 00000004 uip_appdata 20000fe4 g O .bss 00000004 uip_appdata
20000fe4 g O .bss 00000004 uip_conn 20000fe8 g O .bss 00000004 uip_conn
20000fe8 g O .bss 00000068 uip_conns 20000fec g O .bss 00000068 uip_conns
00000604 g F .text 000000e4 FlashProgram 00000604 g F .text 000000e4 FlashProgram
000019b0 g F .text 00000008 get_fattime 00001c24 g F .text 0000001c XcpInit
00001c34 g F .text 0000001c XcpInit 00001fc8 g F .text 00000030 FileInit
00001fd8 g F .text 0000002c FileInit
00000518 g F .text 00000028 EthernetIntStatus 00000518 g F .text 00000028 EthernetIntStatus
00004db0 g F .text 00000144 uip_arp_out 00004f4c g F .text 00000144 uip_arp_out
000052a0 g F .text 000000d0 FlashErase 0000543c g F .text 000000d0 FlashErase
00005544 g F .text 0000009e memset 000056e0 g F .text 0000009e memset
00000198 g F .text 00000014 FileFirmwareUpdateErrorHook 00000198 g F .text 00000014 FileFirmwareUpdateErrorHook
000001f4 g F .text 0000002c main 000001f4 g F .text 0000002c main
00003cbe g F .text 000000aa f_sync 00003e14 g F .text 00000094 f_sync
00000ae8 g F .text 000001ac SysCtlClockGet 00000ae8 g F .text 000001ac SysCtlClockGet
00002040 g F .text 00000044 FileSrecGetLineType 00002034 g F .text 00000044 FileSrecGetLineType
00000f88 g F .text 00000034 UARTDisable 00000f88 g F .text 00000034 UARTDisable
00005084 g F .text 00000012 NvmDone 00005220 g F .text 00000012 NvmDone
000003f0 g F .text 00000040 EthernetEnable 000003f0 g F .text 00000040 EthernetEnable
0000386c g F .text 00000020 f_mount 00003964 g F .text 00000050 f_mount
00004f74 g F .text 0000006c UartTransmitPacket 00005110 g F .text 0000006c UartTransmitPacket
0000507c g F .text 00000004 NvmVerifyChecksum 00005218 g F .text 00000004 NvmVerifyChecksum
00004f2c g F .text 0000001e CpuMemCopy 000050c8 g F .text 0000001e CpuMemCopy
00002e86 g F .text 000000f2 put_fat 00003ec2 g F .text 00000134 f_lseek
00003d76 g F .text 00000138 f_lseek 00004e9c g F .text 000000b0 uip_arp_arpin
00004d00 g F .text 000000b0 uip_arp_arpin 00001bf8 g F .text 00000014 ComGetActiveInterfaceMaxTxLen
00001c08 g F .text 00000014 ComGetActiveInterfaceMaxTxLen 0000517c g F .text 00000090 UartReceivePacket
00004fe0 g F .text 00000090 UartReceivePacket
00000128 g F .text 00000008 FileGetFirmwareFilenameHook 00000128 g F .text 00000008 FileGetFirmwareFilenameHook
00005448 g F .text 00000004 CpuIrqEnable 000055e4 g F .text 00000004 CpuIrqEnable
00000390 g F .text 00000060 EthernetMACAddrSet 00000390 g F .text 00000060 EthernetMACAddrSet
00004ca8 g F .text 00000058 uip_arp_timer 00004e44 g F .text 00000058 uip_arp_timer
20001050 g O .bss 00000002 uip_listenports 20001054 g O .bss 00000002 uip_listenports
20001052 g O .bss 00000004 uip_draddr 20001056 g O .bss 00000004 uip_draddr
20000000 g .data 00000000 _data 20000000 g .data 00000000 _data
00000574 g F .text 00000040 EthernetPHYRead 00000574 g F .text 00000040 EthernetPHYRead
00003eb0 g F .text 00000048 f_stat 00003ff8 g F .text 00000058 f_stat
00001ef8 g F .text 00000002 CopInit 00001ee8 g F .text 00000002 CopInit
00001224 g F .text 00000024 SSIDisable 00001224 g F .text 00000024 SSIDisable
00005074 g F .text 00000004 NvmWrite 00005210 g F .text 00000004 NvmWrite
00004ef8 g F .text 00000034 CpuStartUserProgram 00005094 g F .text 00000034 CpuStartUserProgram
00002d1e g F .text 00000018 clust2sect 20001ea8 g .bss 00000000 _estack
200018a4 g .bss 00000000 _estack
00000338 g F .text 00000058 EthernetConfigSet 00000338 g F .text 00000058 EthernetConfigSet
000053b4 g F .text 00000048 FlashVerifyChecksum 00005550 g F .text 00000048 FlashVerifyChecksum
00002598 g F .text 0000003c NetTransmitPacket 00002650 g F .text 0000003c NetTransmitPacket
20000008 g .data 00000000 _edata 20000008 g .data 00000000 _edata
00002004 g F .text 00000014 FileIsIdle 00001ff8 g F .text 00000014 FileIsIdle
00004b98 g F .text 00000006 htons 00004d34 g F .text 00000006 htons
00003b2c g F .text 00000192 f_write 00003c56 g F .text 0000017a f_write
00000000 g O .text 000000f0 _vectab 00000000 g O .text 000000f0 _vectab
000006e8 g F .text 00000060 FlashUserGet 000006e8 g F .text 00000060 FlashUserGet
00000f04 g F .text 00000034 GPIOPinTypeUART 00000f04 g F .text 00000034 GPIOPinTypeUART
0000388c g F .text 00000140 f_open 000039b4 g F .text 00000150 f_open
00001710 g F .text 000000c0 disk_write 0000170c g F .text 000000bc disk_write
00000e9c g F .text 00000034 GPIOPinTypeGPIOOutput 00000e9c g F .text 00000034 GPIOPinTypeGPIOOutput
000001ac g F .text 00000048 FileFirmwareUpdateLogHook 000001ac g F .text 00000048 FileFirmwareUpdateLogHook
20000004 g O .data 00000004 __ctype_ptr__ 20000004 g O .data 00000004 __ctype_ptr__
00001c1c g F .text 00000004 ComIsConnected 00001c0c g F .text 00000004 ComIsConnected
000004e0 g F .text 00000038 EthernetIntDisable 000004e0 g F .text 00000038 EthernetIntDisable
00005f44 g O .text 00000101 _ctype_ 00005fd0 g O .text 00000101 _ctype_
00000540 g F .text 00000034 EthernetIntClear 00000540 g F .text 00000034 EthernetIntClear
000000f0 g F .text 00000038 FileIsFirmwareUpdateRequestedHook 000000f0 g F .text 00000038 FileIsFirmwareUpdateRequestedHook
00001104 g F .text 00000020 UARTBusy 00001104 g F .text 00000020 UARTBusy
000041d0 g F .text 0000002c uip_init 0000436c g F .text 0000002c uip_init
00001bf4 g F .text 00000014 ComGetActiveInterfaceMaxRxLen 00001be4 g F .text 00000014 ComGetActiveInterfaceMaxRxLen
000025d4 g F .text 000000b0 NetReceivePacket 0000268c g F .text 000000b0 NetReceivePacket
00000ce8 g F .text 00000058 GPIODirModeSet 00000ce8 g F .text 00000058 GPIODirModeSet
0000168c g F .text 00000084 disk_read 0000168c g F .text 00000080 disk_read
00001e90 g F .text 00000048 BackDoorCheck 00001e80 g F .text 00000048 BackDoorCheck
200016a2 g .bss 00000000 _stack 200016a6 g .bss 00000000 _stack
20001056 g O .bss 00000004 uip_netmask 2000105a g O .bss 00000004 uip_netmask
2000105a g O .bss 00000004 uip_hostaddr 2000105e g O .bss 00000004 uip_hostaddr
00004054 g F .text 0000003c ff_convert 00004190 g F .text 0000003c ff_convert
000050e0 g F .text 00000010 TimerGet 0000527c g F .text 00000010 TimerGet
00002684 g F .text 00000064 NetApp 0000273c g F .text 00000064 NetApp
00000fbc g F .text 000000d0 UARTConfigSetExpClk 00000fbc g F .text 000000d0 UARTConfigSetExpClk
0000252c g F .text 0000006c NetInit 000025e4 g F .text 0000006c NetInit
00000998 g F .text 00000150 SysCtlClockSet 00000998 g F .text 00000150 SysCtlClockSet
00000d40 g F .text 00000104 GPIOPadConfigSet 00000d40 g F .text 00000104 GPIOPadConfigSet
00005098 g F .text 00000020 TimerInit 00005234 g F .text 00000020 TimerInit
2000105e g O .bss 00000642 uip_buf 20001062 g O .bss 00000642 uip_buf
000005b4 g F .text 00000050 FlashClear 000005b4 g F .text 00000050 FlashClear
00004ba0 g F .text 00000024 uip_send 00004d3c g F .text 00000024 uip_send
200016a0 g O .bss 00000002 uip_slen 200016a4 g O .bss 00000002 uip_slen
00000130 g F .text 00000028 FileFirmwareUpdateStartedHook 00000130 g F .text 00000028 FileFirmwareUpdateStartedHook
00000f58 g F .text 00000030 UARTEnable 00000f58 g F .text 00000030 UARTEnable

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -30,6 +30,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -226,7 +238,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -280,7 +292,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -307,7 +319,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -336,7 +347,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -402,7 +412,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -470,10 +480,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -506,12 +516,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -540,7 +549,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -548,7 +556,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -646,27 +653,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2010/4/26 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

File diff suppressed because it is too large Load Diff

View File

@ -39,7 +39,7 @@
<Wnd0> <Wnd2>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-4214-26312</Identity> <Identity>TabID-4214-26312</Identity>
@ -51,20 +51,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-14429-10902</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1><Wnd4><Tabs><Tab><Identity>TabID-29443-18340</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4></Windows> <SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-14429-10902</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3><Wnd5><Tabs><Tab><Identity>TabID-29443-18340</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>75</YPos2><SelStart2>5793</SelStart2><SelEnd2>5793</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>30</YPos2><SelStart2>2788</SelStart2><SelEnd2>2788</SelEnd2></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>75</YPos2><SelStart2>5273</SelStart2><SelEnd2>5273</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>19</YPos2><SelStart2>2788</SelStart2><SelEnd2>2788</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\fatfs\mmc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>532</YPos2><SelStart2>17458</SelStart2><SelEnd2>17458</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>5144</YPos2><SelStart2>174744</SelStart2><SelEnd2>174744</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>977</SelStart2><SelEnd2>977</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-028D7138><key>iaridepm.enu1</key></Toolbar-028D7138></Sizes></Row0><Row1><Sizes><Toolbar-103EBDB0><key>debuggergui.enu1</key></Toolbar-103EBDB0></Sizes></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>285</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>243</yscreen><sizeHorzCX>125000</sizeHorzCX><sizeHorzCY>241071</sizeHorzCY><sizeVertCX>149479</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd4></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>198413</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-04F8A660><key>iaridepm.enu1</key></Toolbar-04F8A660></Sizes></Row0><Row1><Sizes><Toolbar-0A9A6AE8><key>debuggergui.enu1</key></Toolbar-0A9A6AE8></Sizes></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>285</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>243</yscreen><sizeHorzCX>125000</sizeHorzCX><sizeHorzCY>241311</sizeHorzCY><sizeVertCX>149479</sizeVertCX><sizeVertCY>736842</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>736842</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>198610</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Project> </Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0 LimitSize=0
ByteLimit=50 ByteLimit=50
[DebugChecksum] [DebugChecksum]
Checksum=1760179919 Checksum=707773344
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0
@ -19,7 +19,7 @@ ShowArgs=0
MixedMode=1 MixedMode=1
[LMIFTDIDriver] [LMIFTDIDriver]
LMI_ResetMode=0x00000000 LMI_ResetMode=0x00000000
LMIFTDIserialNo=04110706A LMIFTDIserialNo=04110716A
LMIFTDIfoundProbes= LMIFTDIfoundProbes=
LMI_LeaveTargetRunning=0x00000000 LMI_LeaveTargetRunning=0x00000000
[watch_formats] [watch_formats]

View File

@ -12,9 +12,9 @@
<Column0>235</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths> <Column0>376</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace> </Workspace>
<Build><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build><Find-in-Files><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ColumnWidth0>552</ColumnWidth0><ColumnWidth1>78</ColumnWidth1><ColumnWidth2>946</ColumnWidth2></Find-in-Files><TerminalIO/><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Select-Ambiguous-Definitions><Find-All-References><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-All-References><Debug-Log><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>279</ColumnWidth1></Debug-Log></Static> <Build><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build><Find-in-Files><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ColumnWidth0>552</ColumnWidth0><ColumnWidth1>78</ColumnWidth1><ColumnWidth2>946</ColumnWidth2><ColumnWidth3>379</ColumnWidth3></Find-in-Files><TerminalIO/><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Find-in-Files</Factory></Window><Window><Factory>Find-All-References</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Select-Ambiguous-Definitions><Find-All-References><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-All-References><Debug-Log><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>279</ColumnWidth1></Debug-Log></Static>
<Windows> <Windows>
<Wnd0> <Wnd0>
@ -25,7 +25,7 @@
<Factory>Workspace</Factory> <Factory>Workspace</Factory>
<Session> <Session>
<NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Boot</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Source</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S/IAR</ExpandedNode><ExpandedNode>lm3s6965/Source/fatfs</ExpandedNode></NodeDict></Session> <NodeDict><ExpandedNode>lm3s6965</ExpandedNode><ExpandedNode>lm3s6965/Boot</ExpandedNode><ExpandedNode>lm3s6965/Boot/lib</ExpandedNode><ExpandedNode>lm3s6965/Boot/lib/fatfs</ExpandedNode><ExpandedNode>lm3s6965/Output</ExpandedNode><ExpandedNode>lm3s6965/Source</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S</ExpandedNode><ExpandedNode>lm3s6965/Source/ARMCM3_LM3S/IAR</ExpandedNode><ExpandedNode>lm3s6965/Source/fatfs</ExpandedNode><ExpandedNode>lm3s6965/Source/third_party</ExpandedNode><ExpandedNode>lm3s6965/Source/third_party/fatfs</ExpandedNode></NodeDict></Session>
</Tab> </Tab>
</Tabs> </Tabs>
@ -35,14 +35,14 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>75</YPos2><SelStart2>5273</SelStart2><SelEnd2>5273</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>19</YPos2><SelStart2>2907</SelStart2><SelEnd2>2907</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>75</YPos2><SelStart2>5273</SelStart2><SelEnd2>5273</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>19</YPos2><SelStart2>2290</SelStart2><SelEnd2>2290</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\fatfs\mmc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>532</YPos2><SelStart2>17458</SelStart2><SelEnd2>17458</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>5144</YPos2><SelStart2>174744</SelStart2><SelEnd2>174744</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\third_party\fatfs\src\diskio.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>977</SelStart2><SelEnd2>977</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-0679A660><key>iaridepm.enu1</key></Toolbar-0679A660></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>562</Bottom><Right>326</Right><x>-2</x><y>-2</y><xscreen>372</xscreen><yscreen>353</yscreen><sizeHorzCX>193750</sizeHorzCX><sizeHorzCY>350546</sizeHorzCY><sizeVertCX>170833</sizeVertCX><sizeVertCY>560079</sizeVertCY></Rect></Wnd0><Wnd3><Rect><Top>0</Top><Left>0</Left><Bottom>6750305</Bottom><Right>7471215</Right><x>-2</x><y>560</y><xscreen>258</xscreen><yscreen>237</yscreen><sizeHorzCX>134375</sizeHorzCX><sizeHorzCY>235353</sizeHorzCY><sizeVertCX>170833</sizeVertCX><sizeVertCY>399206</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-061643F8><key>iaridepm.enu1</key></Toolbar-061643F8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>463</Bottom><Right>467</Right><x>-2</x><y>-2</y><xscreen>372</xscreen><yscreen>353</yscreen><sizeHorzCX>193750</sizeHorzCX><sizeHorzCY>350546</sizeHorzCY><sizeVertCX>244271</sizeVertCX><sizeVertCY>461768</sizeVertCY></Rect></Wnd0><Wnd3><Rect><Top>0</Top><Left>0</Left><Bottom>7536743</Bottom><Right>7209065</Right><x>-2</x><y>461</y><xscreen>258</xscreen><yscreen>237</yscreen><sizeHorzCX>134375</sizeHorzCX><sizeHorzCY>235353</sizeHorzCY><sizeVertCX>244271</sizeVertCX><sizeVertCY>497517</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -30,6 +30,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -226,7 +238,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -280,7 +292,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -307,7 +319,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -336,7 +347,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -402,7 +412,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -470,10 +480,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -506,12 +516,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -540,7 +549,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -548,7 +556,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -646,27 +653,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -24,6 +24,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -237,7 +249,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -7,38 +7,38 @@ start address 0x08000000
Program Header: Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15 LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x000050ac memsz 0x000050ac flags r-x filesz 0x00005248 memsz 0x00005248 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x080050ac align 2**15 LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005248 align 2**15
filesz 0x00000008 memsz 0x00001150 flags rw- filesz 0x00000008 memsz 0x00001158 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point] private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 000050ac 08000000 08000000 00008000 2**2 0 .text 00005248 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000008 20000000 080050ac 00010000 2**2 1 .data 00000008 20000000 08005248 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .bss 00001148 20000008 080050b4 00010008 2**2 2 .bss 00001150 20000008 08005250 00010008 2**2
ALLOC ALLOC
3 .debug_info 0000b1c0 00000000 00000000 00010008 2**0 3 .debug_info 0000c02f 00000000 00000000 00010008 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 000024da 00000000 00000000 0001b1c8 2**0 4 .debug_abbrev 00002514 00000000 00000000 0001c037 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
5 .debug_loc 0000905b 00000000 00000000 0001d6a2 2**0 5 .debug_loc 00009b46 00000000 00000000 0001e54b 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000009c0 00000000 00000000 000266fd 2**0 6 .debug_aranges 000009c0 00000000 00000000 00028091 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000930 00000000 00000000 000270bd 2**0 7 .debug_ranges 00000938 00000000 00000000 00028a51 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_line 0000368b 00000000 00000000 000279ed 2**0 8 .debug_line 000037dd 00000000 00000000 00029389 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 0000269e 00000000 00000000 0002b078 2**0 9 .debug_str 000026e1 00000000 00000000 0002cb66 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0002d716 2**0 10 .comment 00000030 00000000 00000000 0002f247 2**0
CONTENTS, READONLY CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 0002d746 2**0 11 .ARM.attributes 00000033 00000000 00000000 0002f277 2**0
CONTENTS, READONLY CONTENTS, READONLY
12 .debug_frame 00001868 00000000 00000000 0002d77c 2**2 12 .debug_frame 000018bc 00000000 00000000 0002f2ac 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE: SYMBOL TABLE:
08000000 l d .text 00000000 .text 08000000 l d .text 00000000 .text
@ -56,210 +56,213 @@ SYMBOL TABLE:
00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 hooks.c 00000000 l df *ABS* 00000000 hooks.c
08004704 l O .text 00000020 firmwareFilename 080049ac l O .text 00000020 firmwareFilename
20000008 l O .bss 00000228 logfile 20000008 l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 mmc.c 00000000 l df *ABS* 00000000 mmc.c
0800045c l F .text 00000036 xchg_spi 08000458 l F .text 00000036 xchg_spi
08000494 l F .text 0000002a wait_ready 08000490 l F .text 0000002a wait_ready
080004c0 l F .text 0000001a deselect 080004bc l F .text 0000001a deselect
080004dc l F .text 0000002c select 080004d8 l F .text 0000002c select
08000508 l F .text 00000090 send_cmd 08000504 l F .text 00000090 send_cmd
08000598 l F .text 0000005c xmit_datablock 08000594 l F .text 0000005c xmit_datablock
080005f4 l F .text 0000005e rcvr_datablock 080005f0 l F .text 0000005e rcvr_datablock
20000230 l O .bss 00000004 CardType 20000234 l O .bss 00000004 CardType
20000000 l O .data 00000001 Stat 20000000 l O .data 00000001 Stat
00000000 l df *ABS* 00000000 stm32f10x_gpio.c 00000000 l df *ABS* 00000000 stm32f10x_gpio.c
00000000 l df *ABS* 00000000 stm32f10x_rcc.c 00000000 l df *ABS* 00000000 stm32f10x_rcc.c
00000000 l df *ABS* 00000000 stm32f10x_spi.c 00000000 l df *ABS* 00000000 stm32f10x_spi.c
00000000 l df *ABS* 00000000 stm32f10x_usart.c 00000000 l df *ABS* 00000000 stm32f10x_usart.c
00000000 l df *ABS* 00000000 ff.c 00000000 l df *ABS* 00000000 ff.c
08000f34 l F .text 00000012 mem_cpy 08000f20 l F .text 00000016 ld_dword
08000f48 l F .text 0000001e ld_clust 08000f38 l F .text 00000012 mem_cpy
08000f68 l F .text 0000001e sum_sfn 08000f4c l F .text 00000016 clust2sect
08000f88 l F .text 00000096 check_fs 08000f64 l F .text 0000001e sum_sfn
08001020 l F .text 00000076 sync_window 08000f84 l F .text 00000056 get_ldnumber
08001098 l F .text 00000032 move_window 08000fdc l F .text 00000034 validate
080010cc l F .text 00000038 validate 08001010 l F .text 0000006c sync_window
08001104 l F .text 00000394 chk_mounted 0800107c l F .text 0000003c move_window
08001498 l F .text 0000012c get_fileinfo 080010b8 l F .text 000000b8 sync_fs
080015c4 l F .text 000000bc sync_fs 08001170 l F .text 00000128 put_fat
08001784 l F .text 00000098 dir_sdi 08001298 l F .text 00000018 st_clust
0800192c l F .text 000000cc create_chain 080012b0 l F .text 000000f4 get_fileinfo
080019f8 l F .text 0000012a dir_next 080013a4 l F .text 000000d6 get_fat
08001b24 l F .text 000001a2 dir_find 0800147c l F .text 000000b4 dir_sdi
08001cc8 l F .text 00000332 follow_path 08001530 l F .text 000000d8 create_chain
08001ffc l F .text 00000130 dir_read 08001608 l F .text 00000096 remove_chain
0800212c l F .text 00000058 dir_remove 080016a0 l F .text 00000126 dir_next
08002184 l F .text 0000006e remove_chain 080017c8 l F .text 00000058 dir_remove
0800228c l F .text 00000236 dir_register 08001820 l F .text 000001c2 dir_find
20000234 l O .bss 00000200 LfnBuf 080019e4 l F .text 000002fe dir_register
20000434 l O .bss 00000002 Fsid 08001ce4 l F .text 00000070 check_fs
08004750 l O .text 00000080 ExCvt 08001d54 l F .text 0000030a find_volume
080047d0 l O .text 0000000d LfnOfs 08002060 l F .text 00000156 dir_read
20000438 l O .bss 00000004 FatFs 080021b8 l F .text 0000001e ld_clust
080021d8 l F .text 00000352 follow_path
08002a58 l F .text 00000046 putc_bfd
20000238 l O .bss 00000200 LfnBuf
20000438 l O .bss 00000002 Fsid
080049f8 l O .text 00000080 ExCvt
08004a78 l O .text 0000000d LfnOfs
2000043c l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c 00000000 l df *ABS* 00000000 unicode.c
080047e0 l O .text 000001e0 tbl_lower.4259 08004a88 l O .text 000000bc cvt2.4272
080049c0 l O .text 00000100 Tbl 08004b44 l O .text 00000100 Tbl
08004ac0 l O .text 000001e0 tbl_upper.4260 08004c44 l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c 00000000 l df *ABS* 00000000 com.c
2000043c l O .bss 00000040 xcpCtoReqPacket.4388 20000440 l O .bss 00000040 xcpCtoReqPacket.4398
20000001 l O .data 00000001 comActiveInterface 20000001 l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 xcp.c 00000000 l df *ABS* 00000000 xcp.c
08002f9c l F .text 00000016 XcpSetCtoError 080030b8 l F .text 00000016 XcpSetCtoError
08004ca0 l O .text 00000008 xcpStationId 08004e38 l O .text 00000008 xcpStationId
2000047c l O .bss 0000004c xcpInfo 20000480 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c 00000000 l df *ABS* 00000000 backdoor.c
200004c8 l O .bss 00000001 backdoorOpen 200004cc l O .bss 00000001 backdoorOpen
200004cc l O .bss 00000004 backdoorOpenTime 200004d0 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c 00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 file.c 00000000 l df *ABS* 00000000 file.c
080033f4 l F .text 0000002e FileLibByteNibbleToChar 08003510 l F .text 0000002e FileLibByteNibbleToChar
08003424 l F .text 00000020 FileLibByteToHexString 08003540 l F .text 00000020 FileLibByteToHexString
08003444 l F .text 00000046 FileLibLongToIntString 08003560 l F .text 00000046 FileLibLongToIntString
0800348c l F .text 00000066 FileLibHexStringToByte 080035a8 l F .text 00000066 FileLibHexStringToByte
200004d0 l O .bss 00000040 loggingStr 200004d4 l O .bss 00000040 loggingStr
20000510 l O .bss 00000001 firmwareUpdateState 20000514 l O .bss 00000001 firmwareUpdateState
20000514 l O .bss 00000008 eraseInfo 20000518 l O .bss 00000008 eraseInfo
2000051c l O .bss 00000458 fatFsObjects 20000520 l O .bss 00000458 fatFsObjects
20000974 l O .bss 00000184 lineParseObject 20000978 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 assert.c 00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 cpu.c 00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 can.c 00000000 l df *ABS* 00000000 can.c
08004e90 l O .text 00000024 canTiming 0800502c l O .text 00000024 canTiming
00000000 l df *ABS* 00000000 uart.c 00000000 l df *ABS* 00000000 uart.c
08003ee8 l F .text 0000004e UartTransmitByte 080040f0 l F .text 0000004e UartTransmitByte
20000af8 l O .bss 00000004 xcpCtoRxStartTime.4407 20000afc l O .bss 00000001 xcpCtoRxInProgress.4416
20000afc l O .bss 00000041 xcpCtoReqPacket.4404 20000b00 l O .bss 00000004 xcpCtoRxStartTime.4417
20000b40 l O .bss 00000001 xcpCtoRxLength.4405 20000b04 l O .bss 00000041 xcpCtoReqPacket.4414
20000b41 l O .bss 00000001 xcpCtoRxInProgress.4406 20000b48 l O .bss 00000001 xcpCtoRxLength.4415
00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c 00000000 l df *ABS* 00000000 timer.c
20000b44 l O .bss 00000004 millisecond_counter 20000b4c l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c 00000000 l df *ABS* 00000000 flash.c
08004170 l F .text 00000012 FlashLock 08004378 l F .text 00000012 FlashLock
08004184 l F .text 00000044 FlashGetSector 0800438c l F .text 00000044 FlashGetSector
080041c8 l F .text 000000d0 FlashWriteBlock 080043d0 l F .text 000000d0 FlashWriteBlock
08004298 l F .text 00000062 FlashSwitchBlock 080044a0 l F .text 00000062 FlashSwitchBlock
080042fc l F .text 00000084 FlashAddToBlock 08004504 l F .text 00000084 FlashAddToBlock
08004edc l O .text 0000009c flashLayout 08005078 l O .text 0000009c flashLayout
20000b48 l O .bss 00000204 bootBlockInfo 20000b50 l O .bss 00000204 bootBlockInfo
20000d4c l O .bss 00000204 blockInfo 20000d54 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 cpu_comp.c 00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c 00000000 l df *ABS* 00000000 cstart.c
080046e4 l F .text 00000000 zero_loop 080048ec l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 ctype_.c 00000000 l df *ABS* 00000000 ctype_.c
00000000 l df *ABS* 00000000 00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__ 00000200 l *ABS* 00000000 __STACKSIZE__
08002ea0 g F .text 00000020 ComInit 08002fbc g F .text 00000020 ComInit
0800439c g F .text 00000050 FlashWrite 080045a4 g F .text 00000050 FlashWrite
08002d3c g F .text 0000004e f_gets 08002dec g F .text 0000004e f_gets
08003bec g F .text 00000008 AssertFailure 08003df4 g F .text 00000008 AssertFailure
08001698 g F .text 000000ea get_fat 08004068 g F .text 00000088 CanReceivePacket
08003e60 g F .text 00000088 CanReceivePacket 080048a8 g F .text 00000058 reset_handler
080046a0 g F .text 00000058 reset_handler 08004340 g F .text 00000022 TimerUpdate
08004138 g F .text 00000022 TimerUpdate 08003100 g F .text 00000010 XcpPacketTransmitted
08002fe4 g F .text 00000010 XcpPacketTransmitted 08000ed8 g F .text 00000004 SPI_I2S_SendData
08000eec g F .text 00000004 SPI_I2S_SendData 08002fdc g F .text 00000054 ComTask
08002ec0 g F .text 00000054 ComTask 08002f84 g F .text 00000020 BootInit
08002e68 g F .text 00000020 BootInit 080036dc g F .text 00000038 FileSrecVerifyChecksum
080035b8 g F .text 00000038 FileSrecVerifyChecksum 08000edc g F .text 00000006 SPI_I2S_ReceiveData
08000ef0 g F .text 00000006 SPI_I2S_ReceiveData 080034e4 g F .text 00000022 BackDoorInit
080033c8 g F .text 00000022 BackDoorInit 08000f14 g F .text 0000000c USART_GetFlagStatus
08000f28 g F .text 0000000c USART_GetFlagStatus 0800350c g F .text 00000002 CopService
080033f0 g F .text 00000002 CopService 08005248 g .text 00000000 _etext
080050ac g .text 00000000 _etext 080048a0 g F .text 00000004 CpuIrqDisable
08004698 g F .text 00000004 CpuIrqDisable 08002edc g F .text 000000a6 ff_wtoupper
08002e38 g F .text 0000002e ff_wtoupper 08004880 g F .text 0000000a FlashGetUserProgBaseAddress
08004678 g F .text 0000000a FlashGetUserProgBaseAddress 08003894 g F .text 00000560 FileTask
08003770 g F .text 0000047c FileTask 08004330 g F .text 0000000e TimerReset
08004128 g F .text 0000000e TimerReset 08000650 g F .text 00000330 disk_initialize
08000654 g F .text 00000330 disk_initialize 08002fa4 g F .text 00000018 BootTask
08002e88 g F .text 00000018 BootTask 08004774 g F .text 00000058 FlashWriteChecksum
0800456c g F .text 00000058 FlashWriteChecksum 08000ee4 g F .text 0000001c SPI_CalculateCRC
08000ef8 g F .text 0000001c SPI_CalculateCRC 08000e30 g F .text 00000024 RCC_APB2PeriphClockCmd
08000e44 g F .text 00000024 RCC_APB2PeriphClockCmd 08003034 g F .text 00000034 ComTransmitPacket
08002f18 g F .text 00000034 ComTransmitPacket 08000d84 g F .text 000000a4 GPIO_Init
08000d98 g F .text 000000a4 GPIO_Init 08000980 g F .text 00000014 disk_status
08000984 g F .text 00000014 disk_status 08003714 g F .text 0000017e FileSrecParseLine
080035f0 g F .text 0000017e FileSrecParseLine 08000af4 g F .text 0000028e disk_ioctl
08000b00 g F .text 0000028e disk_ioctl 08003658 g F .text 00000036 FileHandleFirmwareUpdateRequest
08003534 g F .text 00000036 FileHandleFirmwareUpdateRequest 08000e54 g F .text 00000024 RCC_APB1PeriphClockCmd
08000e68 g F .text 00000024 RCC_APB1PeriphClockCmd 08000f00 g F .text 0000000c SPI_I2S_GetFlagStatus
080021f4 g F .text 00000098 gen_numname 080001cc g F .text 00000054 FileFirmwareUpdateCompletedHook
08000f14 g F .text 0000000c SPI_I2S_GetFlagStatus 080030ec g F .text 00000012 XcpIsConnected
080001d0 g F .text 00000054 FileFirmwareUpdateCompletedHook 08002d24 g F .text 000000c8 f_unlink
08002fd0 g F .text 00000012 XcpIsConnected 080042cc g F .text 00000008 NvmInit
08002c80 g F .text 000000bc f_unlink 08004588 g F .text 0000001a FlashInit
080040c4 g F .text 00000008 NvmInit 080042ec g F .text 00000008 NvmGetUserProgBaseAddress
08004380 g F .text 0000001a FlashInit 20000f58 g .bss 00000000 _ebss
080040e4 g F .text 00000008 NvmGetUserProgBaseAddress 08002e3c g F .text 00000052 f_puts
20000f50 g .bss 00000000 _ebss 0800488c g F .text 00000012 UnusedISR
08002d8c g F .text 00000034 f_putc 08003030 g F .text 00000002 ComFree
08002dc0 g F .text 0000002c f_puts 08000e28 g F .text 00000004 GPIO_SetBits
08004684 g F .text 00000012 UnusedISR 08004140 g F .text 0000002a UartInit
08002f14 g F .text 00000002 ComFree 080042dc g F .text 00000008 NvmErase
08000e3c g F .text 00000004 GPIO_SetBits
08003f38 g F .text 0000002a UartInit
080040d4 g F .text 00000008 NvmErase
20000008 g .bss 00000000 _bss 20000008 g .bss 00000000 _bss
08002a88 g F .text 00000014 f_close 08002b3c g F .text 00000024 f_close
08002ff4 g F .text 00000388 XcpPacketReceived 08003110 g F .text 00000388 XcpPacketReceived
08003bf4 g F .text 00000008 CpuInit 08003dfc g F .text 00000008 CpuInit
0800265c g F .text 000001a8 f_read 0800272c g F .text 0000017c f_read
0800462c g F .text 0000004c FlashDone 08004834 g F .text 0000004c FlashDone
08000e40 g F .text 00000004 GPIO_ResetBits 08000e2c g F .text 00000004 GPIO_ResetBits
08003db8 g F .text 000000a8 CanTransmitPacket 08003fc0 g F .text 000000a8 CanTransmitPacket
08000d90 g F .text 00000008 get_fattime 080030d0 g F .text 0000001c XcpInit
08002fb4 g F .text 0000001c XcpInit 08003610 g F .text 00000034 FileInit
080034f4 g F .text 0000002c FileInit 080045f4 g F .text 0000017e FlashErase
080043ec g F .text 0000017e FlashErase 0800490c g F .text 0000009e memset
08000224 g F .text 00000020 FileFirmwareUpdateErrorHook 08000220 g F .text 00000020 FileFirmwareUpdateErrorHook
080002a4 g F .text 000001b8 main 080002a0 g F .text 000001b8 main
080029dc g F .text 000000ac f_sync 08002aa0 g F .text 0000009c f_sync
0800356c g F .text 0000004c FileSrecGetLineType 08003690 g F .text 0000004c FileSrecGetLineType
080040ec g F .text 00000012 NvmDone 080042f4 g F .text 00000012 NvmDone
080024c4 g F .text 0000002a f_mount 0800252c g F .text 0000007a f_mount
08003f64 g F .text 00000066 UartTransmitPacket 0800416c g F .text 00000066 UartTransmitPacket
080040dc g F .text 00000008 NvmVerifyChecksum 080042e4 g F .text 00000008 NvmVerifyChecksum
08003c30 g F .text 0000001e CpuMemCopy 08003e38 g F .text 0000001e CpuMemCopy
08000ed0 g F .text 0000001c SPI_Cmd 08000ebc g F .text 0000001c SPI_Cmd
0800181c g F .text 0000010e put_fat 08002b60 g F .text 00000170 f_lseek
08002a9c g F .text 00000198 f_lseek 0800308c g F .text 00000024 ComGetActiveInterfaceMaxTxLen
08002f70 g F .text 00000024 ComGetActiveInterfaceMaxTxLen 080041d4 g F .text 000000f8 UartReceivePacket
08003fcc g F .text 000000f8 UartReceivePacket 08000190 g F .text 0000000a FileGetFirmwareFilenameHook
08000194 g F .text 0000000a FileGetFirmwareFilenameHook 080048a4 g F .text 00000004 CpuIrqEnable
0800469c g F .text 00000004 CpuIrqEnable
20000000 g .data 00000000 _data 20000000 g .data 00000000 _data
08002c34 g F .text 0000004a f_stat 08002cd0 g F .text 00000054 f_stat
080033ec g F .text 00000002 CopInit 08003508 g F .text 00000002 CopInit
08003c50 g F .text 00000168 CanInit 08003e58 g F .text 00000168 CanInit
080040cc g F .text 00000008 NvmWrite 080042d4 g F .text 00000008 NvmWrite
08003bfc g F .text 00000034 CpuStartUserProgram 08003e04 g F .text 00000034 CpuStartUserProgram
08001680 g F .text 00000016 clust2sect 20001158 g .bss 00000000 _estack
20001150 g .bss 00000000 _estack 08000f0c g F .text 00000008 USART_SendData
08000f20 g F .text 00000008 USART_SendData 080047cc g F .text 00000068 FlashVerifyChecksum
080045c4 g F .text 00000068 FlashVerifyChecksum
20000008 g .data 00000000 _edata 20000008 g .data 00000000 _edata
08003520 g F .text 00000014 FileIsIdle 08003644 g F .text 00000014 FileIsIdle
08002804 g F .text 000001d8 f_write 080028a8 g F .text 000001b0 f_write
08000000 g O .text 00000150 _vectab 08000000 g O .text 00000150 _vectab
080024f0 g F .text 0000016a f_open 080025a8 g F .text 00000184 f_open
08000a38 g F .text 000000c6 disk_write 08000a30 g F .text 000000c2 disk_write
08000244 g F .text 00000060 FileFirmwareUpdateLogHook 08000240 g F .text 00000060 FileFirmwareUpdateLogHook
20000004 g O .data 00000004 __ctype_ptr__ 20000004 g O .data 00000004 __ctype_ptr__
08002f94 g F .text 00000008 ComIsConnected 080030b0 g F .text 00000008 ComIsConnected
08004fa8 g O .text 00000101 _ctype_ 08005144 g O .text 00000101 _ctype_
08000150 g F .text 00000044 FileIsFirmwareUpdateRequestedHook 08000150 g F .text 0000003e FileIsFirmwareUpdateRequestedHook
08002f4c g F .text 00000024 ComGetActiveInterfaceMaxRxLen 08003068 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
08000998 g F .text 000000a0 disk_read 08000994 g F .text 0000009c disk_read
0800337c g F .text 0000004c BackDoorCheck 08003498 g F .text 0000004c BackDoorCheck
20000f50 g .bss 00000000 _stack 20000f58 g .bss 00000000 _stack
08000e8c g F .text 00000042 SPI_Init 08000e78 g F .text 00000042 SPI_Init
08002dec g F .text 0000004a ff_convert 08002e90 g F .text 0000004a ff_convert
0800415c g F .text 00000012 TimerGet 08004364 g F .text 00000012 TimerGet
08004100 g F .text 00000028 TimerInit 08004308 g F .text 00000028 TimerInit
080001a0 g F .text 00000030 FileFirmwareUpdateStartedHook 0800019c g F .text 00000030 FileFirmwareUpdateStartedHook

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -24,6 +24,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -237,7 +249,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -31,7 +31,7 @@
<Wnd2> <Wnd0>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-12163-3113</Identity> <Identity>TabID-12163-3113</Identity>
@ -47,7 +47,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd4> <SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-22911-3116</Identity> <Identity>TabID-22911-3116</Identity>
@ -59,20 +59,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd4><Wnd6><Tabs><Tab><Identity>TabID-14651-9098</Identity><TabName>Watch 1</TabName><Factory>WATCH_1</Factory></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd6><Wnd7><Tabs><Tab><Identity>TabID-4648-18854</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd7></Windows> <SelectedTab>0</SelectedTab></Wnd1><Wnd3><Tabs><Tab><Identity>TabID-14651-9098</Identity><TabName>Watch 1</TabName><Factory>WATCH_1</Factory></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3><Wnd5><Tabs><Tab><Identity>TabID-4648-18854</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>30</YPos2><SelStart2>2792</SelStart2><SelEnd2>2792</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\com.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>93</YPos2><SelStart2>4626</SelStart2><SelEnd2>4626</SelEnd2></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>30</YPos2><SelStart2>2792</SelStart2><SelEnd2>2792</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-016B7A60><key>iaridepm.enu1</key></Toolbar-016B7A60></Sizes></Row0><Row1><Sizes><Toolbar-09990CE0><key>debuggergui.enu1</key></Toolbar-09990CE0></Sizes></Row1><Row2><Sizes><Toolbar-09990C18><key>armjlink2.enu1</key></Toolbar-09990C18></Sizes></Row2></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>713</Bottom><Right>259</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202381</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>713</Bottom><Right>389</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>203646</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd6></Sizes></Row0><Row1><Sizes><Wnd7><Rect><Top>-2</Top><Left>387</Left><Bottom>713</Bottom><Right>587</Right><x>387</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd7></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>202</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>204</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>202381</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>202381</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-00BEA5F0><key>iaridepm.enu1</key></Toolbar-00BEA5F0></Sizes></Row0><Row1><Sizes><Toolbar-0D2AD598><key>debuggergui.enu1</key></Toolbar-0D2AD598></Sizes></Row1><Row2><Sizes><Toolbar-0D2ADBD8><key>armjlink2.enu1</key></Toolbar-0D2ADBD8></Sizes></Row2></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>712</Bottom><Right>259</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202582</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>712</Bottom><Right>389</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>203646</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd3></Sizes></Row0><Row1><Sizes><Wnd5><Rect><Top>-2</Top><Left>387</Left><Bottom>712</Bottom><Right>587</Right><x>387</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd5></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>202</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>204</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>202582</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>202582</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Project> </Project>

View File

@ -18,7 +18,7 @@ ActionState=1
Enabled=0 Enabled=0
ShowSource=1 ShowSource=1
[DebugChecksum] [DebugChecksum]
Checksum=-512831567 Checksum=-1815749163
[DisAssemblyWindow] [DisAssemblyWindow]
NumStates=_ 1 NumStates=_ 1
State 1=_ 1 State 1=_ 1
@ -81,7 +81,7 @@ Exclusions=
[CallStackLog] [CallStackLog]
Enabled=0 Enabled=0
[CallStackStripe] [CallStackStripe]
ShowTiming=160 ShowTiming=1
[Disassemble mode] [Disassemble mode]
mode=0 mode=0
[Breakpoints2] [Breakpoints2]

View File

@ -17,7 +17,7 @@
<Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1059</ColumnWidth1><ColumnWidth2>282</ColumnWidth2><ColumnWidth3>70</ColumnWidth3></Build><Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1413</ColumnWidth1></Debug-Log><TerminalIO/><Find-in-Files><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-in-Files></Static> <Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1059</ColumnWidth1><ColumnWidth2>282</ColumnWidth2><ColumnWidth3>70</ColumnWidth3></Build><Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1413</ColumnWidth1></Debug-Log><TerminalIO/><Find-in-Files><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Find-in-Files></Static>
<Windows> <Windows>
<Wnd1> <Wnd0>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-32216-31616</Identity> <Identity>TabID-32216-31616</Identity>
@ -29,20 +29,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd3><Tabs><Tab><Identity>TabID-13144-32069</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-25023-6652</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-18334-26223</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows> <SelectedTab>0</SelectedTab></Wnd0><Wnd2><Tabs><Tab><Identity>TabID-13144-32069</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-25023-6652</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-18334-26223</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd2></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>30</YPos2><SelStart2>2792</SelStart2><SelEnd2>2792</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\Source\com.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>93</YPos2><SelStart2>4626</SelStart2><SelEnd2>4626</SelEnd2></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>30</YPos2><SelStart2>2792</SelStart2><SelEnd2>2792</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-016B7A60><key>iaridepm.enu1</key></Toolbar-016B7A60></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>752</Bottom><Right>400</Right><x>-2</x><y>-2</y><xscreen>154</xscreen><yscreen>164</yscreen><sizeHorzCX>80208</sizeHorzCX><sizeHorzCY>162698</sizeHorzCY><sizeVertCX>209375</sizeVertCX><sizeVertCY>748016</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>211</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>213</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>211310</sizeHorzCY><sizeVertCX>209375</sizeVertCX><sizeVertCY>352183</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-00BEA5F0><key>iaridepm.enu1</key></Toolbar-00BEA5F0></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>751</Bottom><Right>400</Right><x>-2</x><y>-2</y><xscreen>154</xscreen><yscreen>164</yscreen><sizeHorzCX>80208</sizeHorzCX><sizeHorzCY>162860</sizeHorzCY><sizeVertCX>209375</sizeVertCX><sizeVertCY>747766</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>211</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>213</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>211519</sizeHorzCY><sizeVertCX>209375</sizeVertCX><sizeVertCY>352532</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -24,6 +24,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -237,7 +249,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -24,6 +24,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -237,7 +249,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -1,10 +1,10 @@
# depslib dependency file v1.0 # depslib dependency file v1.0
1477582107 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\led.c 1485627604 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\led.c
"boot.h" "boot.h"
"led.h" "led.h"
"stm32f10x.h" "stm32f10x.h"
1483541398 c:\work\software\openblt\target\source\boot.h 1485627342 c:\work\software\openblt\target\source\boot.h
"types.h" "types.h"
"assert.h" "assert.h"
"blt_conf.h" "blt_conf.h"
@ -17,56 +17,56 @@
"file.h" "file.h"
"com.h" "com.h"
1477299962 c:\work\software\openblt\target\source\armcm3_stm32f1\types.h 1485627342 c:\work\software\openblt\target\source\armcm3_stm32f1\types.h
1469431761 c:\work\software\openblt\target\source\assert.h 1485627196 c:\work\software\openblt\target\source\assert.h
1483956969 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\blt_conf.h 1485627609 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\blt_conf.h
1469431761 c:\work\software\openblt\target\source\plausibility.h 1485627342 c:\work\software\openblt\target\source\plausibility.h
1476728168 c:\work\software\openblt\target\source\cpu.h 1493026658 c:\work\software\openblt\target\source\cpu.h
1469431761 c:\work\software\openblt\target\source\cop.h 1485627344 c:\work\software\openblt\target\source\cop.h
1481972114 c:\work\software\openblt\target\source\nvm.h 1485627196 c:\work\software\openblt\target\source\nvm.h
1469431761 c:\work\software\openblt\target\source\timer.h 1485627344 c:\work\software\openblt\target\source\timer.h
1469431761 c:\work\software\openblt\target\source\backdoor.h 1485627195 c:\work\software\openblt\target\source\backdoor.h
1469431761 c:\work\software\openblt\target\source\file.h 1485627343 c:\work\software\openblt\target\source\file.h
"ff.h" "ff.h"
1469431761 c:\work\software\openblt\target\source\com.h 1485627343 c:\work\software\openblt\target\source\com.h
"xcp.h" "xcp.h"
1476783465 c:\work\software\openblt\target\source\xcp.h 1493026917 c:\work\software\openblt\target\source\xcp.h
1477582005 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\led.h 1485627604 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\led.h
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\stm32f10x.h 1485627606 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\stm32f10x.h
"core_cm3.h" "core_cm3.h"
"system_stm32f10x.h" "system_stm32f10x.h"
<stdint.h> <stdint.h>
"stm32f10x_conf.h" "stm32f10x_conf.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cm3.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cm3.h
<stdint.h> <stdint.h>
<core_cmInstr.h> <core_cmInstr.h>
<core_cmFunc.h> <core_cmFunc.h>
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cminstr.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cminstr.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cmfunc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\cmsis\core_cmfunc.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\system_stm32f10x.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\system_stm32f10x.h
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\stm32f10x_conf.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\stm32f10x_conf.h
"stm32f10x_adc.h" "stm32f10x_adc.h"
"stm32f10x_bkp.h" "stm32f10x_bkp.h"
"stm32f10x_can.h" "stm32f10x_can.h"
@ -91,252 +91,252 @@
"stm32f10x_wwdg.h" "stm32f10x_wwdg.h"
"misc.h" "misc.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_adc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_adc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_bkp.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_bkp.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_can.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_can.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_cec.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_cec.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_crc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_crc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dac.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dac.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dbgmcu.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dbgmcu.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dma.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_dma.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_exti.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_exti.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_flash.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_flash.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_fsmc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_fsmc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_gpio.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_gpio.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_i2c.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_i2c.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_iwdg.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_iwdg.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_pwr.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_pwr.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_rcc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_rcc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_rtc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_rtc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_sdio.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_sdio.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_spi.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_spi.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_tim.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_tim.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_usart.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_usart.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_wwdg.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\stm32f10x_wwdg.h
"stm32f10x.h" "stm32f10x.h"
1477581193 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\misc.h 1485627607 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\inc\misc.h
"stm32f10x.h" "stm32f10x.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\misc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\misc.c
"misc.h" "misc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_adc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_adc.c
"stm32f10x_adc.h" "stm32f10x_adc.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_bkp.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_bkp.c
"stm32f10x_bkp.h" "stm32f10x_bkp.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_can.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_can.c
"stm32f10x_can.h" "stm32f10x_can.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_cec.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_cec.c
"stm32f10x_cec.h" "stm32f10x_cec.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_crc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_crc.c
"stm32f10x_crc.h" "stm32f10x_crc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dac.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dac.c
"stm32f10x_dac.h" "stm32f10x_dac.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dbgmcu.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dbgmcu.c
"stm32f10x_dbgmcu.h" "stm32f10x_dbgmcu.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dma.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_dma.c
"stm32f10x_dma.h" "stm32f10x_dma.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_exti.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_exti.c
"stm32f10x_exti.h" "stm32f10x_exti.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_flash.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_flash.c
"stm32f10x_flash.h" "stm32f10x_flash.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_fsmc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_fsmc.c
"stm32f10x_fsmc.h" "stm32f10x_fsmc.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_gpio.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_gpio.c
"stm32f10x_gpio.h" "stm32f10x_gpio.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1481973725 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\hooks.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\hooks.c
"boot.h" "boot.h"
"stm32f10x.h" "stm32f10x.h"
"led.h" "led.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_i2c.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_i2c.c
"stm32f10x_i2c.h" "stm32f10x_i2c.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_iwdg.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_iwdg.c
"stm32f10x_iwdg.h" "stm32f10x_iwdg.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_pwr.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_pwr.c
"stm32f10x_pwr.h" "stm32f10x_pwr.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_rcc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_rcc.c
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_rtc.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_rtc.c
"stm32f10x_rtc.h" "stm32f10x_rtc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_sdio.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_sdio.c
"stm32f10x_sdio.h" "stm32f10x_sdio.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_spi.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_spi.c
"stm32f10x_spi.h" "stm32f10x_spi.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_tim.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_tim.c
"stm32f10x_tim.h" "stm32f10x_tim.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_usart.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_usart.c
"stm32f10x_usart.h" "stm32f10x_usart.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_wwdg.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\spl\src\stm32f10x_wwdg.c
"stm32f10x_wwdg.h" "stm32f10x_wwdg.h"
"stm32f10x_rcc.h" "stm32f10x_rcc.h"
1477581193 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\system_stm32f10x.c 1485627606 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\system_stm32f10x.c
"stm32f10x.h" "stm32f10x.h"
1479142742 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\startup_stm32f10x_md.s 1485627609 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\startup_stm32f10x_md.s
1477299900 source:c:\work\software\openblt\target\source\armcm3_stm32f1\can.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\can.c
"boot.h" "boot.h"
1477299912 source:c:\work\software\openblt\target\source\armcm3_stm32f1\cpu.c 1493026570 source:c:\work\software\openblt\target\source\armcm3_stm32f1\cpu.c
"boot.h" "boot.h"
1481974446 source:c:\work\software\openblt\target\source\armcm3_stm32f1\flash.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\flash.c
"boot.h" "boot.h"
"flash_layout.c" "flash_layout.c"
1477586072 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\flash_layout.c 1477586072 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\flash_layout.c
1477300021 source:c:\work\software\openblt\target\source\armcm3_stm32f1\gcc\cpu_comp.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\gcc\cpu_comp.c
"boot.h" "boot.h"
1481974007 source:c:\work\software\openblt\target\source\armcm3_stm32f1\nvm.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\nvm.c
"boot.h" "boot.h"
"flash.h" "flash.h"
1481974267 c:\work\software\openblt\target\source\armcm3_stm32f1\flash.h 1485627342 c:\work\software\openblt\target\source\armcm3_stm32f1\flash.h
1477299955 source:c:\work\software\openblt\target\source\armcm3_stm32f1\timer.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\timer.c
"boot.h" "boot.h"
1477299969 source:c:\work\software\openblt\target\source\armcm3_stm32f1\uart.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\uart.c
"boot.h" "boot.h"
1477299976 source:c:\work\software\openblt\target\source\armcm3_stm32f1\usb.c 1485627342 source:c:\work\software\openblt\target\source\armcm3_stm32f1\usb.c
"boot.h" "boot.h"
"usb_lib.h" "usb_lib.h"
"usb_desc.h" "usb_desc.h"
"usb_pwr.h" "usb_pwr.h"
"usb_istr.h" "usb_istr.h"
1477295250 source:c:\work\software\openblt\target\source\assert.c 1485627196 source:c:\work\software\openblt\target\source\assert.c
"boot.h" "boot.h"
1481971479 source:c:\work\software\openblt\target\source\backdoor.c 1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h" "boot.h"
1476728156 source:c:\work\software\openblt\target\source\boot.c 1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h" "boot.h"
1469431756 source:c:\work\software\openblt\target\source\com.c 1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h" "boot.h"
"can.h" "can.h"
"uart.h" "uart.h"
"usb.h" "usb.h"
"net.h" "net.h"
1469431761 c:\work\software\openblt\target\source\can.h 1485627196 c:\work\software\openblt\target\source\can.h
1469431761 c:\work\software\openblt\target\source\uart.h 1485627342 c:\work\software\openblt\target\source\uart.h
1469431761 c:\work\software\openblt\target\source\usb.h 1485627194 c:\work\software\openblt\target\source\usb.h
1469431761 c:\work\software\openblt\target\source\net.h 1485627344 c:\work\software\openblt\target\source\net.h
1469431756 source:c:\work\software\openblt\target\source\cop.c 1485627343 source:c:\work\software\openblt\target\source\cop.c
"boot.h" "boot.h"
1481972707 source:c:\work\software\openblt\target\source\file.c 1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h" "boot.h"
<string.h> <string.h>
<ctype.h> <ctype.h>
1469431757 source:c:\work\software\openblt\target\source\net.c 1485627344 source:c:\work\software\openblt\target\source\net.c
"boot.h" "boot.h"
"netdev.h" "netdev.h"
"uip.h" "uip.h"
"uip_arp.h" "uip_arp.h"
1481972673 source:c:\work\software\openblt\target\source\xcp.c 1493026773 source:c:\work\software\openblt\target\source\xcp.c
"boot.h" "boot.h"
1477597382 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\main.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\main.c
"boot.h" "boot.h"
"stm32f10x.h" "stm32f10x.h"
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_core.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_core.c
"usb_lib.h" "usb_lib.h"
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_lib.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_lib.h
"stm32l1xx.h" "stm32l1xx.h"
"stm32f10x.h" "stm32f10x.h"
"usb_type.h" "usb_type.h"
@ -352,104 +352,104 @@
"otgd_fs_dev.h" "otgd_fs_dev.h"
"otgd_fs_int.h" "otgd_fs_int.h"
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_type.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_type.h
"usb_conf.h" "usb_conf.h"
1474440714 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_conf.h 1485627604 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_conf.h
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_regs.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_regs.h
1474440721 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_def.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_def.h
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_core.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_core.h
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_init.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_init.h
1474440721 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_mem.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_mem.h
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_int.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_int.h
1474440719 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_sil.h 1485627605 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\inc\usb_sil.h
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_init.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_init.c
"usb_lib.h" "usb_lib.h"
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_int.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_int.c
"usb_lib.h" "usb_lib.h"
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_mem.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_mem.c
"usb_lib.h" "usb_lib.h"
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_regs.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_regs.c
"usb_lib.h" "usb_lib.h"
1474440718 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_sil.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\usb_fs_device\src\usb_sil.c
"usb_lib.h" "usb_lib.h"
1474440727 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_desc.c 1485627609 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_desc.c
"usb_lib.h" "usb_lib.h"
"usb_desc.h" "usb_desc.h"
1474440728 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_desc.h 1485627609 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_desc.h
1474440714 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_endp.c 1485627604 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_endp.c
"usb_lib.h" "usb_lib.h"
"usb_desc.h" "usb_desc.h"
"usb_mem.h" "usb_mem.h"
"usb_istr.h" "usb_istr.h"
"usb_pwr.h" "usb_pwr.h"
1474440714 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_istr.h 1485627604 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_istr.h
"usb_conf.h" "usb_conf.h"
1474440727 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_pwr.h 1485627609 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_pwr.h
1474440728 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_istr.c 1485627609 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_istr.c
"usb_lib.h" "usb_lib.h"
"usb_prop.h" "usb_prop.h"
"usb_pwr.h" "usb_pwr.h"
"usb_istr.h" "usb_istr.h"
1474440714 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_prop.h 1485627604 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_prop.h
1474440728 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_prop.c 1485627609 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_prop.c
"usb_lib.h" "usb_lib.h"
"usb_conf.h" "usb_conf.h"
"usb_prop.h" "usb_prop.h"
"usb_desc.h" "usb_desc.h"
"usb_pwr.h" "usb_pwr.h"
1474440715 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_pwr.c 1485627605 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\usb_pwr.c
"stm32f10x.h" "stm32f10x.h"
"usb_lib.h" "usb_lib.h"
"usb_conf.h" "usb_conf.h"
"usb_pwr.h" "usb_pwr.h"
"types.h" "types.h"
1456841907 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h
"integer.h" "integer.h"
"ffconf.h" "ffconf.h"
1453811453 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h
<windows.h> <windows.h>
<tchar.h> <tchar.h>
1453811539 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\fatfs\ffconf.h 1493280503 c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\fatfs\ffconf.h
1477597860 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\fatfs\mmc.c 1493289317 source:c:\work\software\openblt\target\demo\armcm3_stm32f1_olimexino_stm32_gcc\boot\lib\fatfs\mmc.c
"diskio.h" "diskio.h"
"stm32f10x.h" "stm32f10x.h"
"boot.h" "boot.h"
1456841906 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h
"integer.h" "integer.h"
1477296647 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c
"ff.h" "ff.h"
"diskio.h" "diskio.h"
<stdarg.h> <stdarg.h>
1453811453 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c
"../ff.h" "../ff.h"
"cc932.c" "cc932.c"
"cc936.c" "cc936.c"
@ -457,18 +457,18 @@
"cc950.c" "cc950.c"
"ccsbcs.c" "ccsbcs.c"
1456841901 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c
"../ff.h" "../ff.h"

View File

@ -32,7 +32,7 @@
<Device> <Device>
<Add option="$device=cortex-m3" /> <Add option="$device=cortex-m3" />
<Add option="$lscript=./../cfg/stm32f103rb_flash.ld" /> <Add option="$lscript=./../cfg/stm32f103rb_flash.ld" />
<Add option="$stack=0x0400" /> <Add option="$stack=0x0800" />
<Add option="$heap=0x0000" /> <Add option="$heap=0x0000" />
</Device> </Device>
<Compiler> <Compiler>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -23,6 +23,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -237,7 +249,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -657,26 +664,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -544,7 +544,7 @@
"stm32f2xx_conf.h" "stm32f2xx_conf.h"
"led.h" "led.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\stm32f2xx_conf.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\stm32f2xx_conf.h
"stm32f2xx_adc.h" "stm32f2xx_adc.h"
"stm32f2xx_can.h" "stm32f2xx_can.h"
"stm32f2xx_crc.h" "stm32f2xx_crc.h"
@ -572,106 +572,106 @@
"stm32f2xx_wwdg.h" "stm32f2xx_wwdg.h"
"misc.h" "misc.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_adc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_adc.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\stm32f2xx.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\stm32f2xx.h
"core_cm3.h" "core_cm3.h"
"system_stm32f2xx.h" "system_stm32f2xx.h"
<stdint.h> <stdint.h>
"stm32f2xx_conf.h" "stm32f2xx_conf.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cm3.h 1485627380 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cm3.h
<stdint.h> <stdint.h>
<core_cmInstr.h> <core_cmInstr.h>
<core_cmFunc.h> <core_cmFunc.h>
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cminstr.h 1485627380 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cminstr.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cmfunc.h 1485627380 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\cmsis\core_cmfunc.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1469192680 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\system_stm32f2xx.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\system_stm32f2xx.h
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_can.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_can.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_crc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_crc.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_cryp.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_cryp.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dac.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dac.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dbgmcu.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dbgmcu.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dcmi.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dcmi.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dma.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_dma.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_exti.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_exti.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_flash.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_flash.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_fsmc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_fsmc.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_hash.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_hash.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_gpio.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_gpio.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_i2c.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_i2c.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_iwdg.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_iwdg.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_pwr.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_pwr.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rcc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rcc.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rng.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rng.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rtc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_rtc.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_sdio.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_sdio.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_spi.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_spi.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_syscfg.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_syscfg.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_tim.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_tim.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_usart.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_usart.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_wwdg.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\stm32f2xx_wwdg.h
"stm32f2xx.h" "stm32f2xx.h"
1469192681 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\misc.h 1485627379 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\inc\misc.h
"stm32f2xx.h" "stm32f2xx.h"
1469269322 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\led.h 1485627381 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\led.h
1452185785 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\app.h 1452185785 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\app.h
"assert.h" "assert.h"
@ -684,124 +684,124 @@
1469268259 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hw.c 1469268259 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hw.c
"header.h" "header.h"
1469269996 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\led.c 1485627377 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\led.c
"boot.h" "boot.h"
"led.h" "led.h"
"stm32f2xx.h" "stm32f2xx.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\misc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\misc.c
"misc.h" "misc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_adc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_adc.c
"stm32f2xx_adc.h" "stm32f2xx_adc.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_can.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_can.c
"stm32f2xx_can.h" "stm32f2xx_can.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_crc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_crc.c
"stm32f2xx_crc.h" "stm32f2xx_crc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp.c
"stm32f2xx_cryp.h" "stm32f2xx_cryp.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_aes.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_aes.c
"stm32f2xx_cryp.h" "stm32f2xx_cryp.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_des.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_des.c
"stm32f2xx_cryp.h" "stm32f2xx_cryp.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_tdes.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_cryp_tdes.c
"stm32f2xx_cryp.h" "stm32f2xx_cryp.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dac.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dac.c
"stm32f2xx_dac.h" "stm32f2xx_dac.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dbgmcu.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dbgmcu.c
"stm32f2xx_dbgmcu.h" "stm32f2xx_dbgmcu.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dcmi.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dcmi.c
"stm32f2xx_dcmi.h" "stm32f2xx_dcmi.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dma.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_dma.c
"stm32f2xx_dma.h" "stm32f2xx_dma.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_exti.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_exti.c
"stm32f2xx_exti.h" "stm32f2xx_exti.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_flash.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_flash.c
"stm32f2xx_flash.h" "stm32f2xx_flash.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_fsmc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_fsmc.c
"stm32f2xx_fsmc.h" "stm32f2xx_fsmc.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_gpio.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_gpio.c
"stm32f2xx_gpio.h" "stm32f2xx_gpio.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash.c
"stm32f2xx_hash.h" "stm32f2xx_hash.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash_md5.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash_md5.c
"stm32f2xx_hash.h" "stm32f2xx_hash.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash_sha1.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_hash_sha1.c
"stm32f2xx_hash.h" "stm32f2xx_hash.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_i2c.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_i2c.c
"stm32f2xx_i2c.h" "stm32f2xx_i2c.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_iwdg.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_iwdg.c
"stm32f2xx_iwdg.h" "stm32f2xx_iwdg.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_pwr.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_pwr.c
"stm32f2xx_pwr.h" "stm32f2xx_pwr.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rcc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rcc.c
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rng.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rng.c
"stm32f2xx_rng.h" "stm32f2xx_rng.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rtc.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_rtc.c
"stm32f2xx_rtc.h" "stm32f2xx_rtc.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_sdio.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_sdio.c
"stm32f2xx_sdio.h" "stm32f2xx_sdio.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_spi.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_spi.c
"stm32f2xx_spi.h" "stm32f2xx_spi.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_syscfg.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_syscfg.c
"stm32f2xx_syscfg.h" "stm32f2xx_syscfg.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_tim.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_tim.c
"stm32f2xx_tim.h" "stm32f2xx_tim.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_usart.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_usart.c
"stm32f2xx_usart.h" "stm32f2xx_usart.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192681 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_wwdg.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\spl\src\stm32f2xx_wwdg.c
"stm32f2xx_wwdg.h" "stm32f2xx_wwdg.h"
"stm32f2xx_rcc.h" "stm32f2xx_rcc.h"
1469192680 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\system_stm32f2xx.c 1485627379 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\system_stm32f2xx.c
"stm32f2xx.h" "stm32f2xx.h"
1452185952 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\os.c 1452185952 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\os.c
@ -809,14 +809,14 @@
1469192680 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\startup_stm32f2xx.s 1469192680 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\startup_stm32f2xx.s
1476735414 source:c:\work\software\openblt\target\source\armcm3_stm32f2\gcc\cstart.s 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\gcc\cstart.s
1469648505 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hooks.c 1485627377 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hooks.c
"boot.h" "boot.h"
"led.h" "led.h"
"stm32f2xx.h" "stm32f2xx.h"
1469435448 c:\work\software\openblt\target\source\boot.h 1485627342 c:\work\software\openblt\target\source\boot.h
"types.h" "types.h"
"assert.h" "assert.h"
"blt_conf.h" "blt_conf.h"
@ -829,116 +829,118 @@
"file.h" "file.h"
"com.h" "com.h"
1469284395 c:\work\software\openblt\target\source\armcm3_stm32f2\types.h 1485627343 c:\work\software\openblt\target\source\armcm3_stm32f2\types.h
1469435361 c:\work\software\openblt\target\source\assert.h 1485627196 c:\work\software\openblt\target\source\assert.h
1475609651 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\\blt_conf.h 1485627381 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\\blt_conf.h
1469435361 c:\work\software\openblt\target\source\plausibility.h 1485627342 c:\work\software\openblt\target\source\plausibility.h
1476731768 c:\work\software\openblt\target\source\cpu.h 1493026658 c:\work\software\openblt\target\source\cpu.h
1469435361 c:\work\software\openblt\target\source\cop.h 1485627344 c:\work\software\openblt\target\source\cop.h
1469435361 c:\work\software\openblt\target\source\nvm.h 1485627196 c:\work\software\openblt\target\source\nvm.h
1469435361 c:\work\software\openblt\target\source\timer.h 1485627344 c:\work\software\openblt\target\source\timer.h
1469435361 c:\work\software\openblt\target\source\backdoor.h 1485627195 c:\work\software\openblt\target\source\backdoor.h
1469435361 c:\work\software\openblt\target\source\file.h 1485627343 c:\work\software\openblt\target\source\file.h
"ff.h" "ff.h"
1469435361 c:\work\software\openblt\target\source\com.h 1485627343 c:\work\software\openblt\target\source\com.h
"xcp.h" "xcp.h"
1475609171 c:\work\software\openblt\target\source\xcp.h 1493026917 c:\work\software\openblt\target\source\xcp.h
1476735355 source:c:\work\software\openblt\target\source\armcm3_stm32f2\cpu.c 1493026587 source:c:\work\software\openblt\target\source\armcm3_stm32f2\cpu.c
"boot.h" "boot.h"
1469271534 source:c:\work\software\openblt\target\source\armcm3_stm32f2\flash.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\flash.c
"boot.h" "boot.h"
"stm32f2xx.h" "stm32f2xx.h"
"flash_layout.c"
1469435358 source:c:\work\software\openblt\target\source\armcm3_stm32f2\nvm.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\nvm.c
"boot.h" "boot.h"
"flash.h" "flash.h"
1470741810 c:\work\software\openblt\target\source\armcm3_stm32f2\flash.h 1485627343 c:\work\software\openblt\target\source\armcm3_stm32f2\flash.h
1469290821 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\main.c 1485627377 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\main.c
"boot.h" "boot.h"
"stm32f2xx.h" "stm32f2xx.h"
1469435358 source:c:\work\software\openblt\target\source\armcm3_stm32f2\timer.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\timer.c
"boot.h" "boot.h"
"stm32f2xx.h" "stm32f2xx.h"
1469435358 source:c:\work\software\openblt\target\source\armcm3_stm32f2\uart.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\uart.c
"boot.h" "boot.h"
"stm32f2xx.h" "stm32f2xx.h"
1469435356 source:c:\work\software\openblt\target\source\assert.c 1485627196 source:c:\work\software\openblt\target\source\assert.c
"boot.h" "boot.h"
1469435356 source:c:\work\software\openblt\target\source\backdoor.c 1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h" "boot.h"
1476731756 source:c:\work\software\openblt\target\source\boot.c 1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h" "boot.h"
1469435356 source:c:\work\software\openblt\target\source\com.c 1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h" "boot.h"
"can.h" "can.h"
"uart.h" "uart.h"
"usb.h" "usb.h"
"net.h" "net.h"
1469435361 c:\work\software\openblt\target\source\can.h 1485627196 c:\work\software\openblt\target\source\can.h
1469435361 c:\work\software\openblt\target\source\uart.h 1485627342 c:\work\software\openblt\target\source\uart.h
1469435361 c:\work\software\openblt\target\source\usb.h 1485627194 c:\work\software\openblt\target\source\usb.h
1469435361 c:\work\software\openblt\target\source\net.h 1485627344 c:\work\software\openblt\target\source\net.h
1469435356 source:c:\work\software\openblt\target\source\cop.c 1485627343 source:c:\work\software\openblt\target\source\cop.c
"boot.h" "boot.h"
1469284606 source:c:\work\software\openblt\target\source\file.c 1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h" "boot.h"
<string.h> <string.h>
<ctype.h> <ctype.h>
1469435357 source:c:\work\software\openblt\target\source\xcp.c 1493026773 source:c:\work\software\openblt\target\source\xcp.c
"boot.h" "boot.h"
1456845507 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h
"integer.h" "integer.h"
"ffconf.h" "ffconf.h"
1453815053 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h
<windows.h> <windows.h>
<tchar.h> <tchar.h>
1453815156 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\fatfs\ffconf.h 1493280503 c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\fatfs\ffconf.h
1469283277 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\fatfs\mmc.c 1493290294 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\lib\fatfs\mmc.c
"diskio.h" "diskio.h"
"stm32f2xx.h" "stm32f2xx.h"
"stm32f2xx_conf.h" "stm32f2xx_conf.h"
"boot.h"
1456845506 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h
"integer.h" "integer.h"
1456845501 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c
"ff.h" "ff.h"
"diskio.h" "diskio.h"
<stdarg.h> <stdarg.h>
1453815053 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c
"../ff.h" "../ff.h"
"cc932.c" "cc932.c"
"cc936.c" "cc936.c"
@ -946,28 +948,28 @@
"cc950.c" "cc950.c"
"ccsbcs.c" "ccsbcs.c"
1456845501 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c
"../ff.h" "../ff.h"
1456845502 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c
"../ff.h" "../ff.h"
1456845502 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c
"../ff.h" "../ff.h"
1456845502 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c
"../ff.h" "../ff.h"
1456845502 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c
"../ff.h" "../ff.h"
1469290576 source:c:\work\software\openblt\target\source\armcm3_stm32f2\can.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\can.c
"boot.h" "boot.h"
1476735258 source:c:\work\software\openblt\target\source\armcm3_stm32f2\gcc\cpu_comp.c 1485627343 source:c:\work\software\openblt\target\source\armcm3_stm32f2\gcc\cpu_comp.c
"boot.h" "boot.h"
1469435357 source:c:\work\software\openblt\target\source\net.c 1485627344 source:c:\work\software\openblt\target\source\net.c
"boot.h" "boot.h"
"netdev.h" "netdev.h"
"uip.h" "uip.h"

View File

@ -32,7 +32,7 @@
<Device> <Device>
<Add option="$device=cortex-m3" /> <Add option="$device=cortex-m3" />
<Add option="$lscript=..\..\..\..\Source\ARMCM3_STM32F2\GCC\memory.x" /> <Add option="$lscript=..\..\..\..\Source\ARMCM3_STM32F2\GCC\memory.x" />
<Add option="$stack=0x0100" /> <Add option="$stack=0x0800" />
<Add option="$heap=0x0000" /> <Add option="$heap=0x0000" />
</Device> </Device>
<Compiler> <Compiler>

View File

@ -3,12 +3,17 @@
<ActiveTarget name="Debug" /> <ActiveTarget name="Debug" />
<File name="..\blt_conf.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\blt_conf.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor> <Cursor>
<Cursor1 position="1558" topLine="93" /> <Cursor1 position="5338" topLine="69" />
</Cursor>
</File>
<File name="..\lib\SPL\src\stm32f2xx_adc.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="50838" topLine="1279" />
</Cursor> </Cursor>
</File> </File>
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor> <Cursor>
<Cursor1 position="2953" topLine="24" /> <Cursor1 position="2697" topLine="24" />
</Cursor> </Cursor>
</File> </File>
<File name="..\..\..\..\Source\ARMCM3_STM32F2\GCC\cstart.S" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\..\..\..\Source\ARMCM3_STM32F2\GCC\cstart.S" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -21,8 +21,21 @@
#include "diskio.h" #include "diskio.h"
#include "stm32f2xx.h" /* STM32 registers */ #include "stm32f2xx.h" /* STM32 registers */
#include "stm32f2xx_conf.h" /* STM32 peripheral drivers */ #include "stm32f2xx_conf.h" /* STM32 peripheral drivers */
#include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -63,9 +76,6 @@
static volatile static volatile
DSTATUS Stat = STA_NOINIT; /* Disk status */ DSTATUS Stat = STA_NOINIT; /* Disk status */
static volatile
UINT Timer1, Timer2; /* 1000Hz decrement timer */
static static
UINT CardType; UINT CardType;
@ -247,11 +257,14 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
Timer2 = 500; /* Wait for ready in timeout of 500ms */
do { do {
d = xchg_spi(0xFF); d = xchg_spi(0xFF);
} while ((d != 0xFF) && Timer2); } while ((d != 0xFF) && (TimerGet() < timeOutTime));
return (d == 0xFF) ? 1 : 0; return (d == 0xFF) ? 1 : 0;
} }
@ -298,12 +311,14 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
Timer1 = 100;
do { /* Wait for data packet in timeout of 100ms */ do { /* Wait for data packet in timeout of 100ms */
token = xchg_spi(0xFF); token = xchg_spi(0xFF);
} while ((token == 0xFF) && Timer1); } while ((token == 0xFF) && (TimerGet() < timeOutTime));
if(token != 0xFE) return 0; /* If not valid data token, retutn with error */ if(token != 0xFE) return 0; /* If not valid data token, retutn with error */
@ -323,7 +338,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -352,7 +366,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -418,6 +431,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -429,12 +443,13 @@ DSTATUS disk_initialize (
ty = 0; ty = 0;
if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */ if (send_cmd(CMD0, 0) == 1) { /* Enter Idle state */
Timer1 = 1000; /* Initialization timeout of 1000 msec */ timeOutTime = TimerGet() + 1000; /* Initialization timeout of 1000 msec */
if (send_cmd(CMD8, 0x1AA) == 1) { /* SDv2? */ if (send_cmd(CMD8, 0x1AA) == 1) { /* SDv2? */
for (n = 0; n < 4; n++) ocr[n] = xchg_spi(0xFF); /* Get trailing return value of R7 resp */ for (n = 0; n < 4; n++) ocr[n] = xchg_spi(0xFF); /* Get trailing return value of R7 resp */
if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */ if (ocr[2] == 0x01 && ocr[3] == 0xAA) { /* The card can work at vdd range of 2.7-3.6V */
while (Timer1 && send_cmd(ACMD41, 0x40000000)); /* Wait for leaving idle state (ACMD41 with HCS bit) */ while ((TimerGet() < timeOutTime) && send_cmd(ACMD41, 0x40000000)); /* Wait for leaving idle state (ACMD41 with HCS bit) */
if (Timer1 && send_cmd(CMD58, 0) == 0) { /* Check CCS bit in the OCR */ if ((TimerGet() < timeOutTime) && send_cmd(CMD58, 0) == 0) { /* Check CCS bit in the OCR */
for (n = 0; n < 4; n++) ocr[n] = xchg_spi(0xFF); for (n = 0; n < 4; n++) ocr[n] = xchg_spi(0xFF);
ty = (ocr[0] & 0x40) ? CT_SD2|CT_BLOCK : CT_SD2; /* SDv2 */ ty = (ocr[0] & 0x40) ? CT_SD2|CT_BLOCK : CT_SD2; /* SDv2 */
} }
@ -445,8 +460,8 @@ DSTATUS disk_initialize (
} else { } else {
ty = CT_MMC; cmd = CMD1; /* MMCv3 */ ty = CT_MMC; cmd = CMD1; /* MMCv3 */
} }
while (Timer1 && send_cmd(cmd, 0)); /* Wait for leaving idle state */ while ((TimerGet() < timeOutTime) && send_cmd(cmd, 0)); /* Wait for leaving idle state */
if (!Timer1 || send_cmd(CMD16, 512) != 0) /* Set read/write block length to 512 */ if (!(TimerGet() < timeOutTime) || send_cmd(CMD16, 512) != 0) /* Set read/write block length to 512 */
ty = 0; ty = 0;
} }
} }
@ -484,10 +499,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -520,12 +535,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -554,7 +568,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -562,7 +575,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -660,40 +672,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*-----------------------------------------------------------------------*/
/* Device Timer Driven Procedure */
/*-----------------------------------------------------------------------*/
/* This function must be called by timer interrupt in period of 1ms */
void disk_timerproc(void)
{
UINT n;
n = Timer1; /* 1000Hz decrement timer with zero stopped */
if (n) Timer1 = --n;
n = Timer2;
if (n) Timer2 = --n;
}
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File> <!DOCTYPE CrossStudio_Project_File>
<solution Name="stm32f407_crossworks" target="8" version="2"> <solution Name="stm32f407_crossworks" target="8" version="2">
<project Name="openblt_olimex_stm32e407"> <project Name="openblt_olimex_stm32e407">
<configuration Name="Common" Placement="Flash" Target="STM32F407ZG" arm_architecture="v7EM" arm_core_type="Cortex-M4" arm_fp_abi="Soft" arm_fpu_type="FPv4-SP-D16" arm_gcc_target="arm-unknown-eabi" arm_keep_assembly="No" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="No" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F407ZG;0x100000;0x20000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="Default" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/ethernetlib/inc;-I./../lib/ethernetlib/src;-I./../lib/uip;-I./../lib/stdperiphlib;-I./../lib/stdperiphlib/CMSIS/Device/ST/STM32F4xx/Include;-I./../lib/stdperiphlib/CMSIS/Include;-I./../lib/fatfs;-I./../lib/stdperiphlib/STM32F4xx_StdPeriph_Driver/inc;-I./../lib/usbdevicelib/Core/inc;-I./../lib/usbdevicelib/Core/src;-I./../lib/usbotgdriver/inc;-I./../lib/usbotgdriver/src;-I./../../../../Source;-I./../../../../Source/ARMCM4_STM32F4;-I./../../../../Source/third_party/fatfs/src;-I./../../../../Source/third_party/uip/uip" c_preprocessor_definitions="USE_STDPERIPH_DRIVER;USE_USB_OTG_FS;HSE_VALUE=12000000;VECT_TAB_FLASH" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Level 2" link_IOLibraryName="target" link_include_standard_libraries="Yes" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/STM32/STM32F407ZG_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName(&quot;$(Target)&quot;)" target_reset_script="Reset()"/> <configuration Name="Common" Placement="Flash" Target="STM32F407ZG" arm_architecture="v7EM" arm_core_type="Cortex-M4" arm_fp_abi="Soft" arm_fpu_type="FPv4-SP-D16" arm_gcc_target="arm-unknown-eabi" arm_keep_assembly="No" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_long_calls="No" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F407ZG;0x100000;0x20000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="Default" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/ethernetlib/inc;-I./../lib/ethernetlib/src;-I./../lib/uip;-I./../lib/stdperiphlib;-I./../lib/stdperiphlib/CMSIS/Device/ST/STM32F4xx/Include;-I./../lib/stdperiphlib/CMSIS/Include;-I./../lib/fatfs;-I./../lib/stdperiphlib/STM32F4xx_StdPeriph_Driver/inc;-I./../lib/usbdevicelib/Core/inc;-I./../lib/usbdevicelib/Core/src;-I./../lib/usbotgdriver/inc;-I./../lib/usbotgdriver/src;-I./../../../../Source;-I./../../../../Source/ARMCM4_STM32F4;-I./../../../../Source/third_party/fatfs/src;-I./../../../../Source/third_party/uip/uip" c_preprocessor_definitions="USE_STDPERIPH_DRIVER;USE_USB_OTG_FS;HSE_VALUE=12000000;VECT_TAB_FLASH;STM32F4XX" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Level 2" link_IOLibraryName="target" link_include_standard_libraries="Yes" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/STM32/STM32F407ZG_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName(&quot;$(Target)&quot;)" target_reset_script="Reset()"/>
<configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/STM32/Release/STM32F2xx_Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" arm_target_loader_can_erase_all="Yes" arm_target_loader_can_lock_all="No" arm_target_loader_can_lock_range="No" arm_target_loader_can_unlock_all="No" arm_target_loader_can_unlock_range="No" target_reset_script="FLASHReset()"/> <configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/STM32/Release/STM32F2xx_Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" arm_target_loader_can_erase_all="Yes" arm_target_loader_can_lock_all="No" arm_target_loader_can_lock_range="No" arm_target_loader_can_unlock_all="No" arm_target_loader_can_unlock_range="No" target_reset_script="FLASHReset()"/>
<folder Name="Source Files"> <folder Name="Source Files">
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/> <configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/>

View File

@ -29,6 +29,8 @@
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo;Boot" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo;Boot;lib" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo;Boot;lib;stdperiphlib" name="unnamed" />
</Project> </Project>
<Register1> <Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_stm32e407" /> <RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_stm32e407" />
@ -56,9 +58,9 @@
</TraceWindow> </TraceWindow>
<Watch1> <Watch1>
<Watches active="1" update="Never" > <Watches active="1" update="Never" >
<Watchpoint linenumber="124" radix="-1" name="free_running_counter_now" expression="free_running_counter_now" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="152" radix="-1" name="free_running_counter_accumulative" expression="free_running_counter_accumulative" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="121" radix="-1" name="free_running_counter_last" expression="free_running_counter_last" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" /> <Watchpoint linenumber="121" radix="-1" name="free_running_counter_last" expression="free_running_counter_last" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="152" radix="-1" name="free_running_counter_accumulative" expression="free_running_counter_accumulative" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="124" radix="-1" name="free_running_counter_now" expression="free_running_counter_now" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
</Watches> </Watches>
</Watch1> </Watch1>
<Watch2> <Watch2>
@ -71,7 +73,7 @@
<Watches active="0" update="Never" /> <Watches active="0" update="Never" />
</Watch4> </Watch4>
<Files> <Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Boot\main.c" y="49" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="5" /> <SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Users\voorburg\Desktop\BltTest\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Boot\main.c" y="0" path="C:\Users\voorburg\Desktop\BltTest\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="0" />
</Files> </Files>
<ARMCrossStudioWindow activeProject="openblt_olimex_stm32e407" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\ARMCM4_STM32F4\Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" /> <ARMCrossStudioWindow activeProject="openblt_olimex_stm32e407" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\ARMCM4_STM32F4\Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session> </session>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA) * \param sector: start sector number (LBA)
* \param count: sector count * \param count: sector count
*/ */
DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count) DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, UINT count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3274,8 +3274,7 @@ DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count)
* \param count: Sector count (1..255) * \param count: Sector count (1..255)
* \note this function needs DMA access and is disabled if _READONLY is set * \note this function needs DMA access and is disabled if _READONLY is set
*/ */
#if _READONLY == 0 DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR; return RES_ERROR;
} }
#endif
/*! /*!
* \brief ioctl implementation * \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
return res; return res;
} }
/*!
* \brief user provided timer function for FatFs module
*/
DWORD get_fattime(void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}
/********************************* end of mmc.c ****************************************/ /********************************* end of mmc.c ****************************************/

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File> <!DOCTYPE CrossStudio_Project_File>
<solution Name="stm32f407_crossworks" target="8" version="2"> <solution Name="stm32f407_crossworks" target="8" version="2">
<project Name="demoprog_olimex_stm32e407"> <project Name="demoprog_olimex_stm32e407">
<configuration Name="Common" Placement="Flash" Target="STM32F407ZG" arm_architecture="v7EM" arm_core_type="Cortex-M4" arm_fpu_type="FPv4-SP-D16" arm_gcc_target="arm-unknown-eabi" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F407ZG;0x100000;0x20000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="Default" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/ethernetlib/inc;-I./../lib/ethernetlib/src;-I./../lib/uip;-I./../lib/stdperiphlib;-I./../lib/stdperiphlib/CMSIS/Device/ST/STM32F4xx/Include;-I./../lib/stdperiphlib/CMSIS/Include;-I./../lib/stdperiphlib/STM32F4xx_StdPeriph_Driver/inc;-I./../../../../Source/third_party/uip/uip" c_preprocessor_definitions="USE_STDPERIPH_DRIVER;HSE_VALUE=12000000;VECT_TAB_FLASH" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Level 1" link_IOLibraryName="target" link_include_standard_libraries="Yes" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/STM32/STM32F407ZG_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName(&quot;$(Target)&quot;)" target_reset_script="Reset()"/> <configuration Name="Common" Placement="Flash" Target="STM32F407ZG" arm_architecture="v7EM" arm_core_type="Cortex-M4" arm_fpu_type="FPv4-SP-D16" arm_gcc_target="arm-unknown-eabi" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F407ZG;0x100000;0x20000" arm_target_debug_interface_type="ADIv5" arm_target_interface_type="Default" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/ethernetlib/inc;-I./../lib/ethernetlib/src;-I./../lib/uip;-I./../lib/stdperiphlib;-I./../lib/stdperiphlib/CMSIS/Device/ST/STM32F4xx/Include;-I./../lib/stdperiphlib/CMSIS/Include;-I./../lib/stdperiphlib/STM32F4xx_StdPeriph_Driver/inc;-I./../../../../Source/third_party/uip/uip" c_preprocessor_definitions="USE_STDPERIPH_DRIVER;HSE_VALUE=12000000;VECT_TAB_FLASH;STM32F4XX" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Level 1" link_IOLibraryName="target" link_include_standard_libraries="Yes" linker_keep_symbols="_vectors;EntryFromProg" linker_memory_map_file="$(TargetsDir)/STM32/STM32F407ZG_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName(&quot;$(Target)&quot;)" target_reset_script="Reset()"/>
<configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/STM32/Release/STM32F2xx_Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" arm_target_loader_can_erase_all="Yes" arm_target_loader_can_lock_all="No" arm_target_loader_can_lock_range="No" arm_target_loader_can_unlock_all="No" arm_target_loader_can_unlock_range="No" target_reset_script="FLASHReset()"/> <configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/STM32/Release/STM32F2xx_Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" arm_target_loader_can_erase_all="Yes" arm_target_loader_can_lock_all="No" arm_target_loader_can_lock_range="No" arm_target_loader_can_unlock_all="No" arm_target_loader_can_unlock_range="No" target_reset_script="FLASHReset()"/>
<folder Name="Source Files"> <folder Name="Source Files">
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/> <configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/>

View File

@ -27,7 +27,8 @@
<ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo;Prog" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo;Prog" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;System Files" name="unnamed" /> <ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo;Prog;lib" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;demoprog_olimex_stm32e407;Source Files;Demo;Prog;lib;stdperiphlib" name="unnamed" />
</Project> </Project>
<Register1> <Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="demoprog_olimex_stm32e407" /> <RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="demoprog_olimex_stm32e407" />
@ -51,9 +52,9 @@
</TraceWindow> </TraceWindow>
<Watch1> <Watch1>
<Watches active="1" update="Never" > <Watches active="1" update="Never" >
<Watchpoint linenumber="121" radix="-1" name="free_running_counter_last" expression="free_running_counter_last" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="152" radix="-1" name="free_running_counter_accumulative" expression="free_running_counter_accumulative" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="124" radix="-1" name="free_running_counter_now" expression="free_running_counter_now" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" /> <Watchpoint linenumber="124" radix="-1" name="free_running_counter_now" expression="free_running_counter_now" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="152" radix="-1" name="free_running_counter_accumulative" expression="free_running_counter_accumulative" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
<Watchpoint linenumber="121" radix="-1" name="free_running_counter_last" expression="free_running_counter_last" filename="d:/usr/feaser/software/openblt/target/source/armcm3_stm32/timer.c" />
</Watches> </Watches>
</Watch1> </Watch1>
<Watch2> <Watch2>
@ -66,7 +67,7 @@
<Watches active="0" update="Never" /> <Watches active="0" update="Never" />
</Watch4> </Watch4>
<Files> <Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Prog\main.c" y="0" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Prog\main.c" left="18" selected="1" name="unnamed" top="0" /> <SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="67" debugPath="C:\Users\voorburg\Desktop\BltTest\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Prog\main.c" y="5" path="C:\Users\voorburg\Desktop\BltTest\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_Crossworks\Prog\main.c" left="0" selected="1" name="unnamed" top="0" />
</Files> </Files>
<ARMCrossStudioWindow activeProject="demoprog_olimex_stm32e407" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\third_party\uip\uip" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" /> <ARMCrossStudioWindow activeProject="demoprog_olimex_stm32e407" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:\Work\software\OpenBLT\Target\Source\third_party\uip\uip" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session> </session>

View File

@ -7,40 +7,40 @@ start address 0x08000000
Program Header: Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15 LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x0000a088 memsz 0x0000a088 flags r-x filesz 0x0000a1a0 memsz 0x0000a1a0 flags r-x
LOAD off 0x00018000 vaddr 0x20000000 paddr 0x0800a088 align 2**15 LOAD off 0x00018000 vaddr 0x20000000 paddr 0x0800a1a0 align 2**15
filesz 0x000000ec memsz 0x000000ec flags rw- filesz 0x000000ec memsz 0x000000ec flags rw-
LOAD off 0x00018100 vaddr 0x20000100 paddr 0x0800a200 align 2**15 LOAD off 0x00018100 vaddr 0x20000100 paddr 0x0800a300 align 2**15
filesz 0x00000000 memsz 0x00003564 flags rw- filesz 0x00000000 memsz 0x00003564 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point] private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 0000a088 08000000 08000000 00008000 2**2 0 .text 0000a1a0 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000000ec 20000000 0800a088 00018000 2**2 1 .data 000000ec 20000000 0800a1a0 00018000 2**2
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .bss 00003564 20000100 0800a200 00018100 2**7 2 .bss 00003564 20000100 0800a300 00018100 2**7
ALLOC ALLOC
3 .debug_info 0001fcd0 00000000 00000000 000180ec 2**0 3 .debug_info 00020b3d 00000000 00000000 000180ec 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 0000540f 00000000 00000000 00037dbc 2**0 4 .debug_abbrev 00005463 00000000 00000000 00038c29 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
5 .debug_loc 0000f535 00000000 00000000 0003d1cb 2**0 5 .debug_loc 0000ffde 00000000 00000000 0003e08c 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000015a0 00000000 00000000 0004c700 2**0 6 .debug_aranges 000015a0 00000000 00000000 0004e06a 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00001458 00000000 00000000 0004dca0 2**0 7 .debug_ranges 00001460 00000000 00000000 0004f60a 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_line 00007b4e 00000000 00000000 0004f0f8 2**0 8 .debug_line 00007d1e 00000000 00000000 00050a6a 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 00007422 00000000 00000000 00056c46 2**0 9 .debug_str 0000745f 00000000 00000000 00058788 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0005e068 2**0 10 .comment 00000030 00000000 00000000 0005fbe7 2**0
CONTENTS, READONLY CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 0005e098 2**0 11 .ARM.attributes 00000033 00000000 00000000 0005fc17 2**0
CONTENTS, READONLY CONTENTS, READONLY
12 .debug_frame 00003758 00000000 00000000 0005e0cc 2**2 12 .debug_frame 00003780 00000000 00000000 0005fc4c 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE: SYMBOL TABLE:
08000000 l d .text 00000000 .text 08000000 l d .text 00000000 .text
@ -58,57 +58,57 @@ SYMBOL TABLE:
00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 hooks.c 00000000 l df *ABS* 00000000 hooks.c
08009650 l O .text 00000020 firmwareFilename 08009874 l O .text 00000020 firmwareFilename
20000100 l O .bss 00000228 logfile 20000100 l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 usbd_bulk.c 00000000 l df *ABS* 00000000 usbd_bulk.c
080003dc l F .text 0000000e USBD_bulk_GetCfgDesc 080003d8 l F .text 0000000e USBD_bulk_GetCfgDesc
080003ec l F .text 00000012 usbd_bulk_SOF 080003e8 l F .text 00000012 usbd_bulk_SOF
08000400 l F .text 0000000a usbd_bulk_DataIn 080003fc l F .text 0000000a usbd_bulk_DataIn
0800040c l F .text 0000000c usbd_bulk_DataOut 08000408 l F .text 0000000c usbd_bulk_DataOut
08000418 l F .text 00000068 usbd_bulk_Setup 08000414 l F .text 00000068 usbd_bulk_Setup
08000480 l F .text 00000016 usbd_bulk_DeInit 0800047c l F .text 00000016 usbd_bulk_DeInit
08000498 l F .text 00000030 usbd_bulk_Init 08000494 l F .text 00000030 usbd_bulk_Init
20000328 l O .bss 00000004 usbd_bulk_AltSet 2000032c l O .bss 00000004 usbd_bulk_AltSet
00000000 l df *ABS* 00000000 usbd_desc.c 00000000 l df *ABS* 00000000 usbd_desc.c
00000000 l df *ABS* 00000000 usbd_usr.c 00000000 l df *ABS* 00000000 usbd_usr.c
00000000 l df *ABS* 00000000 usb_bsp.c 00000000 l df *ABS* 00000000 usb_bsp.c
00000000 l df *ABS* 00000000 usbd_core.c 00000000 l df *ABS* 00000000 usbd_core.c
080006a4 l F .text 00000016 USBD_Resume 080006a0 l F .text 00000016 USBD_Resume
080006bc l F .text 0000001c USBD_Suspend 080006b8 l F .text 0000001c USBD_Suspend
080006d8 l F .text 00000010 USBD_SOF 080006d4 l F .text 00000010 USBD_SOF
080006e8 l F .text 0000000e USBD_IsoINIncomplete 080006e4 l F .text 0000000e USBD_IsoINIncomplete
080006f8 l F .text 0000000e USBD_IsoOUTIncomplete 080006f4 l F .text 0000000e USBD_IsoOUTIncomplete
08000708 l F .text 00000016 USBD_DevConnected 08000704 l F .text 00000016 USBD_DevConnected
08000720 l F .text 00000020 USBD_DevDisconnected 0800071c l F .text 00000020 USBD_DevDisconnected
08000740 l F .text 0000002e USBD_Reset 0800073c l F .text 0000002e USBD_Reset
08000770 l F .text 0000004e USBD_SetupStage 0800076c l F .text 0000004e USBD_SetupStage
080007c0 l F .text 000000b8 USBD_DataInStage 080007bc l F .text 000000b8 USBD_DataInStage
08000878 l F .text 00000076 USBD_DataOutStage 08000874 l F .text 00000076 USBD_DataOutStage
00000000 l df *ABS* 00000000 usbd_ioreq.c 00000000 l df *ABS* 00000000 usbd_ioreq.c
00000000 l df *ABS* 00000000 usbd_req.c 00000000 l df *ABS* 00000000 usbd_req.c
20000338 l O .bss 00000001 cfgidx.8604 2000033c l O .bss 00000001 cfgidx.8604
00000000 l df *ABS* 00000000 usb_core.c 00000000 l df *ABS* 00000000 usb_core.c
08000f48 l F .text 00000072 USB_OTG_CoreReset 08000f44 l F .text 00000072 USB_OTG_CoreReset
00000000 l df *ABS* 00000000 usb_dcd.c 00000000 l df *ABS* 00000000 usb_dcd.c
00000000 l df *ABS* 00000000 usb_dcd_int.c 00000000 l df *ABS* 00000000 usb_dcd_int.c
00000000 l df *ABS* 00000000 mmc.c 00000000 l df *ABS* 00000000 mmc.c
08001f84 l F .text 0000004e CmdResp2Error 08001f80 l F .text 0000004e CmdResp2Error
08001fd4 l F .text 00000130 CmdResp1Error 08001fd0 l F .text 00000130 CmdResp1Error
08002104 l F .text 00000266 SDEnWideBus 08002100 l F .text 00000266 SDEnWideBus
20000339 l O .bss 00000001 TransferError 2000033d l O .bss 00000001 TransferError
200000cc l O .data 00000004 DMAEndOfTransfer 200000cc l O .data 00000004 DMAEndOfTransfer
2000033c l O .bss 00000018 SDIO_DataInitStructure 20000340 l O .bss 00000018 SDIO_DataInitStructure
20000354 l O .bss 00000010 CSD_Tab 20000358 l O .bss 00000010 CSD_Tab
20000364 l O .bss 00000004 CardType 20000368 l O .bss 00000004 CardType
20000368 l O .bss 00000010 CID_Tab 2000036c l O .bss 00000010 CID_Tab
20000378 l O .bss 00000004 TransferEnd 2000037c l O .bss 00000004 TransferEnd
2000037c l O .bss 00000018 SDIO_InitStructure 20000380 l O .bss 00000018 SDIO_InitStructure
20000394 l O .bss 00000004 RCA 20000398 l O .bss 00000004 RCA
20000398 l O .bss 00000058 SDCardInfo 200003a0 l O .bss 00000058 SDCardInfo
200003f0 l O .bss 00000014 SDIO_CmdInitStructure 200003f8 l O .bss 00000014 SDIO_CmdInitStructure
200000d0 l O .data 00000001 Stat 200000d0 l O .data 00000001 Stat
20000404 l O .bss 00000004 StopCondition 2000040c l O .bss 00000004 StopCondition
00000000 l df *ABS* 00000000 stm32_eth.c 00000000 l df *ABS* 00000000 stm32_eth.c
00000000 l df *ABS* 00000000 netdev.c 00000000 l df *ABS* 00000000 netdev.c
00000000 l df *ABS* 00000000 stm32f4xx_flash.c 00000000 l df *ABS* 00000000 stm32f4xx_flash.c
@ -120,410 +120,411 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 stm32f4xx_usart.c 00000000 l df *ABS* 00000000 stm32f4xx_usart.c
00000000 l df *ABS* 00000000 system_stm32f4xx.c 00000000 l df *ABS* 00000000 system_stm32f4xx.c
00000000 l df *ABS* 00000000 ff.c 00000000 l df *ABS* 00000000 ff.c
080041dc l F .text 00000012 mem_cpy 080041e4 l F .text 00000016 ld_dword
080041f0 l F .text 0000001e ld_clust 080041fc l F .text 00000012 mem_cpy
08004210 l F .text 0000001e sum_sfn 08004210 l F .text 00000016 clust2sect
08004230 l F .text 00000096 check_fs 08004228 l F .text 0000001e sum_sfn
080042c8 l F .text 00000076 sync_window 08004248 l F .text 00000056 get_ldnumber
08004340 l F .text 00000032 move_window 080042a0 l F .text 00000034 validate
08004374 l F .text 00000038 validate 080042d4 l F .text 0000006c sync_window
080043ac l F .text 00000394 chk_mounted 08004340 l F .text 0000003c move_window
08004740 l F .text 0000012c get_fileinfo 0800437c l F .text 000000b8 sync_fs
0800486c l F .text 000000bc sync_fs 08004434 l F .text 00000128 put_fat
08004a2c l F .text 00000098 dir_sdi 0800455c l F .text 00000018 st_clust
08004bd4 l F .text 000000cc create_chain 08004574 l F .text 000000f4 get_fileinfo
08004ca0 l F .text 0000012a dir_next 08004668 l F .text 000000d6 get_fat
08004dcc l F .text 000001a2 dir_find 08004740 l F .text 000000b4 dir_sdi
08004f70 l F .text 00000332 follow_path 080047f4 l F .text 000000d8 create_chain
080052a4 l F .text 00000130 dir_read 080048cc l F .text 00000096 remove_chain
080053d4 l F .text 00000058 dir_remove 08004964 l F .text 00000126 dir_next
0800542c l F .text 0000006e remove_chain 08004a8c l F .text 00000058 dir_remove
08005534 l F .text 00000236 dir_register 08004ae4 l F .text 000001c2 dir_find
20000408 l O .bss 00000200 LfnBuf 08004ca8 l F .text 000002fe dir_register
20000608 l O .bss 00000002 Fsid 08004fa8 l F .text 00000070 check_fs
080096fc l O .text 00000080 ExCvt 08005018 l F .text 0000030a find_volume
0800977c l O .text 0000000d LfnOfs 08005324 l F .text 00000156 dir_read
2000060c l O .bss 00000004 FatFs 0800547c l F .text 0000001e ld_clust
0800549c l F .text 00000352 follow_path
08005d1c l F .text 00000046 putc_bfd
20000410 l O .bss 00000200 LfnBuf
20000610 l O .bss 00000002 Fsid
08009920 l O .text 00000080 ExCvt
080099a0 l O .text 0000000d LfnOfs
20000614 l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c 00000000 l df *ABS* 00000000 unicode.c
0800978c l O .text 000001e0 tbl_lower.4259 080099b0 l O .text 000000bc cvt2.4272
0800996c l O .text 00000100 Tbl 08009a6c l O .text 00000100 Tbl
08009a6c l O .text 000001e0 tbl_upper.4260 08009b6c l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 uip.c 00000000 l df *ABS* 00000000 uip.c
08006110 l F .text 0000004c chksum 08006248 l F .text 0000004c chksum
0800615c l F .text 00000042 upper_layer_chksum 08006294 l F .text 00000042 upper_layer_chksum
08006220 l F .text 00000030 uip_add_rcv_nxt 08006358 l F .text 00000030 uip_add_rcv_nxt
20000610 l O .bss 00000002 tmp16 20000618 l O .bss 00000002 tmp16
20000612 l O .bss 00000002 ipid 2000061a l O .bss 00000002 ipid
20000614 l O .bss 00000004 iss 2000061c l O .bss 00000004 iss
20000618 l O .bss 00000002 lastport 20000620 l O .bss 00000002 lastport
20000624 l O .bss 00000001 c 2000062c l O .bss 00000001 c
20000625 l O .bss 00000001 opt 2000062d l O .bss 00000001 opt
00000000 l df *ABS* 00000000 uip_arp.c 00000000 l df *ABS* 00000000 uip_arp.c
08007240 l F .text 00000116 uip_arp_update 08007378 l F .text 00000116 uip_arp_update
20000626 l O .bss 00000001 i 2000062e l O .bss 00000001 i
20000627 l O .bss 00000001 tmpage 2000062f l O .bss 00000001 tmpage
20000628 l O .bss 00000060 arp_table 20000630 l O .bss 00000060 arp_table
08009c4c l O .text 00000006 broadcast_ethaddr 08009d60 l O .text 00000006 broadcast_ethaddr
20000688 l O .bss 00000001 c 20000690 l O .bss 00000001 c
20000689 l O .bss 00000001 arptime 20000691 l O .bss 00000001 arptime
2000068c l O .bss 00000004 ipaddr 20000694 l O .bss 00000004 ipaddr
00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c 00000000 l df *ABS* 00000000 com.c
20000698 l O .bss 00000040 xcpCtoReqPacket.4427
200000e4 l O .data 00000001 comActiveInterface 200000e4 l O .data 00000001 comActiveInterface
20000690 l O .bss 00000040 xcpCtoReqPacket.4417
00000000 l df *ABS* 00000000 net.c 00000000 l df *ABS* 00000000 net.c
200006d0 l O .bss 00000004 ARPTimerTimeOut 200006d8 l O .bss 00000004 ARPTimerTimeOut
200006d4 l O .bss 00000004 periodicTimerTimeOut 200006dc l O .bss 00000004 periodicTimerTimeOut
00000000 l df *ABS* 00000000 xcp.c 00000000 l df *ABS* 00000000 xcp.c
08007a9c l F .text 00000016 XcpSetCtoError 08007bd4 l F .text 00000016 XcpSetCtoError
08009c54 l O .text 00000008 xcpStationId 08009d68 l O .text 00000008 xcpStationId
200006d8 l O .bss 0000004c xcpInfo 200006e0 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c 00000000 l df *ABS* 00000000 backdoor.c
20000724 l O .bss 00000001 backdoorOpen 2000072c l O .bss 00000001 backdoorOpen
20000728 l O .bss 00000004 backdoorOpenTime 20000730 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c 00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 file.c 00000000 l df *ABS* 00000000 file.c
08007ef8 l F .text 0000002e FileLibByteNibbleToChar 08008030 l F .text 0000002e FileLibByteNibbleToChar
08007f28 l F .text 00000020 FileLibByteToHexString 08008060 l F .text 00000020 FileLibByteToHexString
08007f48 l F .text 00000046 FileLibLongToIntString 08008080 l F .text 00000046 FileLibLongToIntString
08007f90 l F .text 00000066 FileLibHexStringToByte 080080c8 l F .text 00000066 FileLibHexStringToByte
2000072c l O .bss 00000040 loggingStr 20000734 l O .bss 00000040 loggingStr
2000076c l O .bss 00000001 firmwareUpdateState 20000774 l O .bss 00000001 firmwareUpdateState
20000770 l O .bss 00000008 eraseInfo 20000778 l O .bss 00000008 eraseInfo
20000778 l O .bss 00000458 fatFsObjects 20000780 l O .bss 00000458 fatFsObjects
20000bd0 l O .bss 00000184 lineParseObject 20000bd8 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 assert.c 00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 can.c 00000000 l df *ABS* 00000000 can.c
08009e44 l O .text 00000024 canTiming 08009f5c l O .text 00000024 canTiming
00000000 l df *ABS* 00000000 cpu.c 00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 flash.c 00000000 l df *ABS* 00000000 flash.c
080089f4 l F .text 00000044 FlashGetSector 08008c18 l F .text 00000044 FlashGetSector
08008a38 l F .text 00000078 FlashWriteBlock 08008c5c l F .text 00000078 FlashWriteBlock
08008ab0 l F .text 00000062 FlashSwitchBlock 08008cd4 l F .text 00000062 FlashSwitchBlock
08008b14 l F .text 00000084 FlashAddToBlock 08008d38 l F .text 00000084 FlashAddToBlock
08009e68 l O .text 00000030 flashSectorNumToMask 08009f80 l O .text 00000030 flashSectorNumToMask
08009e98 l O .text 0000006c flashLayout 08009fb0 l O .text 0000006c flashLayout
20000d54 l O .bss 00000204 bootBlockInfo 20000d5c l O .bss 00000204 bootBlockInfo
20000f58 l O .bss 00000204 blockInfo 20000f60 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 uart.c 00000000 l df *ABS* 00000000 uart.c
08008da8 l F .text 00000042 UartTransmitByte 08008fcc l F .text 00000042 UartTransmitByte
08008dec l F .text 0000002c UartReceiveByte 08009010 l F .text 0000002c UartReceiveByte
2000115c l O .bss 00000001 xcpCtoRxLength.7770 20001164 l O .bss 00000001 xcpCtoRxLength.7780
20001160 l O .bss 00000041 xcpCtoReqPacket.7769 20001168 l O .bss 00000041 xcpCtoReqPacket.7779
200011a4 l O .bss 00000001 xcpCtoRxInProgress.7771 200011ac l O .bss 00000001 xcpCtoRxInProgress.7781
200011a8 l O .bss 00000004 xcpCtoRxStartTime.7772 200011b0 l O .bss 00000004 xcpCtoRxStartTime.7782
00000000 l df *ABS* 00000000 usb.c 00000000 l df *ABS* 00000000 usb.c
08008f98 l F .text 0000007c UsbFifoMgrWrite 080091bc l F .text 0000007c UsbFifoMgrWrite
08009014 l F .text 00000076 UsbFifoMgrRead 08009238 l F .text 00000076 UsbFifoMgrRead
200011ac l O .bss 00000004 fifoCtrlFree 200011b4 l O .bss 00000004 fifoCtrlFree
200011b0 l O .bss 00000030 fifoCtrl 200011b8 l O .bss 00000030 fifoCtrl
200011e0 l O .bss 00000041 fifoPipeBulkOUT 200011e8 l O .bss 00000041 fifoPipeBulkOUT
20001224 l O .bss 00000040 xcpCtoReqPacket.8946 2000122c l O .bss 00000040 USB_Tx_Buffer.8970
20001264 l O .bss 00000001 xcpCtoRxLength.8947 2000126c l O .bss 00000040 xcpCtoReqPacket.8956
20001268 l O .bss 00000041 fifoPipeBulkIN 200012ac l O .bss 00000041 fifoPipeBulkIN
200012ac l O .bss 00000040 USB_Tx_Buffer.8960 200012f0 l O .bss 00000001 xcpCtoRxLength.8957
200012ec l O .bss 000005f4 USB_OTG_dev 200012f4 l O .bss 000005f4 USB_OTG_dev
200018e0 l O .bss 00000001 xcpCtoRxInProgress.8948 200018e8 l O .bss 00000001 xcpCtoRxInProgress.8958
00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c 00000000 l df *ABS* 00000000 timer.c
200018e4 l O .bss 00000004 millisecond_counter 200018ec l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 cpu_comp.c 00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c 00000000 l df *ABS* 00000000 cstart.c
080094e8 l F .text 00000000 zero_loop 0800970c l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 memcpy-stub.c 00000000 l df *ABS* 00000000 memcpy-stub.c
00000000 l df *ABS* 00000000 memset.c 00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 ctype_.c 00000000 l df *ABS* 00000000 ctype_.c
00000000 l df *ABS* 00000000 00000000 l df *ABS* 00000000
00000800 l *ABS* 00000000 __STACKSIZE__ 00000800 l *ABS* 00000000 __STACKSIZE__
080076ec g F .text 00000030 ComInit 08007824 g F .text 00000030 ComInit
08008bb4 g F .text 00000050 FlashWrite 08008dd8 g F .text 00000050 FlashWrite
2000006c g O .data 00000012 USBD_DeviceDesc 2000006c g O .data 00000012 USBD_DeviceDesc
080004f4 g F .text 0000001e USBD_USR_ProductStrDescriptor 080004f0 g F .text 0000001e USBD_USR_ProductStrDescriptor
08005fe4 g F .text 0000004e f_gets 080060b0 g F .text 0000004e f_gets
08001790 g F .text 00000010 USB_OTG_ReadDevOutEP_itr 0800178c g F .text 00000010 USB_OTG_ReadDevOutEP_itr
08003a58 g F .text 0000002c FLASH_Unlock 08003a60 g F .text 0000002c FLASH_Unlock
08000694 g F .text 00000010 USB_OTG_BSP_mDelay 08000690 g F .text 00000010 USB_OTG_BSP_mDelay
080005b0 g F .text 0000000a USBD_USR_DeviceConnected 080005ac g F .text 0000000a USBD_USR_DeviceConnected
080036d8 g F .text 00000012 ETH_FlushTransmitFIFO 080036e0 g F .text 00000012 ETH_FlushTransmitFIFO
080086f0 g F .text 00000008 AssertFailure 08008914 g F .text 00000008 AssertFailure
08004940 g F .text 000000ea get_fat 08008b2c g F .text 00000088 CanReceivePacket
08008908 g F .text 00000088 CanReceivePacket
2000009c g O .data 00000004 USBD_DCD_INT_fops 2000009c g O .data 00000004 USBD_DCD_INT_fops
080094a4 g F .text 00000058 reset_handler 080096c8 g F .text 00000058 reset_handler
08003c7c g F .text 00000028 GPIO_PinAFConfig 08003c84 g F .text 00000028 GPIO_PinAFConfig
080017f0 g F .text 0000009a DCD_Init 080017ec g F .text 0000009a DCD_Init
08009450 g F .text 00000022 TimerUpdate 08009674 g F .text 00000022 TimerUpdate
08007ae4 g F .text 00000010 XcpPacketTransmitted 08007c1c g F .text 00000010 XcpPacketTransmitted
080004c8 g F .text 0000000a usbd_bulk_get_rx_buffer_ptr 080004c4 g F .text 0000000a usbd_bulk_get_rx_buffer_ptr
0800322c g F .text 0000009e ETH_StructInit 08003234 g F .text 0000009e ETH_StructInit
0800771c g F .text 000000a4 ComTask 08007854 g F .text 000000a4 ComTask
08003f8c g F .text 0000000c SDIO_ClearFlag 08003f94 g F .text 0000000c SDIO_ClearFlag
08003054 g F .text 00000018 SD_GetStatus 08003050 g F .text 00000018 SD_GetStatus
08003ba0 g F .text 0000003e FLASH_ProgramWord 08003ba8 g F .text 0000003e FLASH_ProgramWord
08003eb0 g F .text 0000000c SDIO_SetPowerState 08003eb8 g F .text 0000000c SDIO_SetPowerState
080033a4 g F .text 000002be ETH_Init 080033ac g F .text 000002be ETH_Init
080011d8 g F .text 00000046 USB_OTG_FlushRxFifo 080011d4 g F .text 00000046 USB_OTG_FlushRxFifo
20002790 g O .bss 00000002 uip_len 20002790 g O .bss 00000002 uip_len
2000061c g O .bss 00000006 uip_ethaddr 20000624 g O .bss 00000006 uip_ethaddr
080061a0 g F .text 0000007e uip_add32 080062d8 g F .text 0000007e uip_add32
080076b4 g F .text 00000020 BootInit 080077ec g F .text 00000020 BootInit
080018e0 g F .text 00000032 DCD_EP_Close 080018dc g F .text 00000032 DCD_EP_Close
080080bc g F .text 00000038 FileSrecVerifyChecksum 080081fc g F .text 00000038 FileSrecVerifyChecksum
0800188c g F .text 00000054 DCD_EP_Open 08001888 g F .text 00000054 DCD_EP_Open
20001928 g O .bss 00000004 SET_TEST_MODE 20001930 g O .bss 00000004 SET_TEST_MODE
08007ecc g F .text 00000022 BackDoorInit 08008004 g F .text 00000022 BackDoorInit
08000a38 g F .text 00000354 USBD_StdDevReq 08000a34 g F .text 00000354 USBD_StdDevReq
08000574 g F .text 0000001e USBD_USR_InterfaceStrDescriptor 08000570 g F .text 0000001e USBD_USR_InterfaceStrDescriptor
08003e10 g F .text 00000024 RCC_AHB1PeriphResetCmd 08003e18 g F .text 00000024 RCC_AHB1PeriphResetCmd
080040b0 g F .text 0000000c USART_GetFlagStatus 080040b8 g F .text 0000000c USART_GetFlagStatus
08007ef4 g F .text 00000002 CopService 0800802c g F .text 00000002 CopService
0800a088 g .text 00000000 _etext 0800a1a0 g .text 00000000 _etext
20000330 g O .bss 00000004 USBD_ep_status 20000334 g O .bss 00000004 USBD_ep_status
0800949c g F .text 00000004 CpuIrqDisable 080096c0 g F .text 00000004 CpuIrqDisable
08002e40 g F .text 0000019a SD_WriteBlock 08002e3c g F .text 0000019a SD_WriteBlock
20000080 g O .data 0000001c USR_cb 20000080 g O .data 0000001c USR_cb
080060e0 g F .text 0000002e ff_wtoupper 080061a0 g F .text 000000a6 ff_wtoupper
08001a10 g F .text 00000014 DCD_DevDisconnect 08001a0c g F .text 00000014 DCD_DevDisconnect
080039a8 g F .text 00000050 netdev_read 080039b0 g F .text 00000050 netdev_read
080062e8 g F .text 00000f1e uip_process 08006420 g F .text 00000f1e uip_process
08008d9c g F .text 0000000a FlashGetUserProgBaseAddress 08008fc0 g F .text 0000000a FlashGetUserProgBaseAddress
080005a0 g F .text 00000008 USBD_USR_DeviceSuspended 0800059c g F .text 00000008 USBD_USR_DeviceSuspended
08003214 g F .text 00000018 ETH_DeInit 0800321c g F .text 00000018 ETH_DeInit
08009508 g F .text 000000a6 memcpy 0800972c g F .text 000000a6 memcpy
08008274 g F .text 0000047c FileTask 080083b4 g F .text 00000560 FileTask
08000dc4 g F .text 00000138 USBD_StdEPReq 08000dc0 g F .text 00000138 USBD_StdEPReq
08009440 g F .text 0000000e TimerReset 08009664 g F .text 0000000e TimerReset
0800306c g F .text 00000038 disk_initialize 08003068 g F .text 00000038 disk_initialize
20002794 g O .bss 00000004 uip_sappdata 20002794 g O .bss 00000004 uip_sappdata
08000190 g F .text 00000002 UsbLeaveLowPowerModeHook 08000190 g F .text 00000002 UsbLeaveLowPowerModeHook
0800375c g F .text 00000226 netdev_init 08003764 g F .text 00000226 netdev_init
08000998 g F .text 0000001e USBD_CtlSendStatus 08000994 g F .text 0000001e USBD_CtlSendStatus
20002798 g O .bss 00000004 uip_acc32 20002798 g O .bss 00000004 uip_acc32
08000d8c g F .text 00000036 USBD_StdItfReq 08000d88 g F .text 00000036 USBD_StdItfReq
08006250 g F .text 00000024 uip_ipchksum 08006388 g F .text 00000024 uip_ipchksum
080027bc g F .text 000002b6 SD_GetCardInfo 080027b8 g F .text 000002b6 SD_GetCardInfo
08003f78 g F .text 00000014 SDIO_GetFlagStatus 08003f80 g F .text 00000014 SDIO_GetFlagStatus
080009d8 g F .text 00000044 USBD_ParseSetupRequest 080009d4 g F .text 00000044 USBD_ParseSetupRequest
080040a8 g F .text 00000008 USART_ReceiveData 080040b0 g F .text 00000008 USART_ReceiveData
080076d4 g F .text 00000018 BootTask 0800780c g F .text 00000018 BootTask
08001a24 g F .text 0000055e USBD_OTG_ISR_Handler 08001a20 g F .text 0000055e USBD_OTG_ISR_Handler
08003028 g F .text 0000002c SD_GetState 08003024 g F .text 0000002c SD_GetState
08008c90 g F .text 00000058 FlashWriteChecksum 08008eb4 g F .text 00000058 FlashWriteChecksum
08002a74 g F .text 00000084 SD_EnableWideBusOperation 08002a70 g F .text 00000084 SD_EnableWideBusOperation
08003dec g F .text 00000024 RCC_APB2PeriphClockCmd 08003df4 g F .text 00000024 RCC_APB2PeriphClockCmd
08003efc g F .text 0000000e SDIO_GetCommandResponse 08003f04 g F .text 0000000e SDIO_GetCommandResponse
08001010 g F .text 000000c8 USB_OTG_SelectCore 0800100c g F .text 000000c8 USB_OTG_SelectCore
080077c8 g F .text 00000060 ComTransmitPacket 08007900 g F .text 00000060 ComTransmitPacket
08003be0 g F .text 00000090 GPIO_Init 08003be8 g F .text 00000090 GPIO_Init
080030a4 g F .text 00000032 disk_status 080030a0 g F .text 00000032 disk_status
080080f4 g F .text 0000017e FileSrecParseLine 08008234 g F .text 0000017e FileSrecParseLine
08001220 g F .text 0000002a USB_OTG_SetCurrentMode 0800121c g F .text 0000002a USB_OTG_SetCurrentMode
080062b4 g F .text 00000032 uip_listen 080063ec g F .text 00000032 uip_listen
08004084 g F .text 0000001c USART_Cmd 0800408c g F .text 0000001c USART_Cmd
080039f8 g F .text 00000060 netdev_send 08003a00 g F .text 00000060 netdev_send
0800125c g F .text 0000000a USB_OTG_ReadCoreItr 08001258 g F .text 0000000a USB_OTG_ReadCoreItr
08000598 g F .text 00000002 USBD_USR_DeviceReset 08000594 g F .text 00000002 USBD_USR_DeviceReset
0800093c g F .text 0000000e USBD_ClrCfg 08000938 g F .text 0000000e USBD_ClrCfg
080031a8 g F .text 00000062 disk_ioctl 080031b8 g F .text 00000062 disk_ioctl
080008f0 g F .text 00000034 USBD_Init 080008ec g F .text 00000034 USBD_Init
08008038 g F .text 00000036 FileHandleFirmwareUpdateRequest 08008178 g F .text 00000036 FileHandleFirmwareUpdateRequest
20000020 g O .data 0000002c USBD_bulk_cb 20000020 g O .data 0000002c USBD_bulk_cb
08003dc8 g F .text 00000024 RCC_APB1PeriphClockCmd 08003dd0 g F .text 00000024 RCC_APB1PeriphClockCmd
0800549c g F .text 00000098 gen_numname
2000279c g O .bss 00000001 uip_flags 2000279c g O .bss 00000001 uip_flags
08000984 g F .text 00000012 USBD_CtlContinueRx 08000980 g F .text 00000012 USBD_CtlContinueRx
20001a80 g O .bss 00000010 EnetDmaRx 20001a80 g O .bss 00000010 EnetDmaRx
08003da4 g F .text 00000024 RCC_AHB2PeriphClockCmd 08003dac g F .text 00000024 RCC_AHB2PeriphClockCmd
0800022c g F .text 00000054 FileFirmwareUpdateCompletedHook 08000228 g F .text 00000054 FileFirmwareUpdateCompletedHook
08007ad0 g F .text 00000012 XcpIsConnected 08007c08 g F .text 00000012 XcpIsConnected
08005f28 g F .text 000000bc f_unlink 08005fe8 g F .text 000000c8 f_unlink
0800018c g F .text 00000002 UsbEnterLowPowerModeHook 0800018c g F .text 00000002 UsbEnterLowPowerModeHook
08003664 g F .text 00000026 ETH_MACTransmissionCmd 0800366c g F .text 00000026 ETH_MACTransmissionCmd
080093dc g F .text 00000008 NvmInit 08009600 g F .text 00000008 NvmInit
08008b98 g F .text 0000001a FlashInit 08008dbc g F .text 0000001a FlashInit
08003a84 g F .text 00000012 FLASH_Lock 08003a8c g F .text 00000012 FLASH_Lock
080093fc g F .text 00000008 NvmGetUserProgBaseAddress 08009620 g F .text 00000008 NvmGetUserProgBaseAddress
20002e64 g .bss 00000000 _ebss 20002e64 g .bss 00000000 _ebss
08006034 g F .text 00000034 f_putc 0800179c g F .text 0000000c USB_OTG_ReadDevAllInEPItr
080017a0 g F .text 0000000c USB_OTG_ReadDevAllInEPItr 08001720 g F .text 00000034 USB_OTG_EPSetStall
08001724 g F .text 00000034 USB_OTG_EPSetStall 08006100 g F .text 00000052 f_puts
08006068 g F .text 0000002c f_puts 08000510 g F .text 0000001e USBD_USR_ManufacturerStrDescriptor
08000514 g F .text 0000001e USBD_USR_ManufacturerStrDescriptor 080096ac g F .text 00000012 UnusedISR
08009488 g F .text 00000012 UnusedISR 080005a4 g F .text 00000008 USBD_USR_DeviceResumed
080005a8 g F .text 00000008 USBD_USR_DeviceResumed 08003eac g F .text 0000000c SDIO_ClockCmd
08003ea4 g F .text 0000000c SDIO_ClockCmd 080078f8 g F .text 00000008 ComFree
080077c0 g F .text 00000008 ComFree 08003f30 g F .text 00000030 SDIO_DataConfig
08003f28 g F .text 00000030 SDIO_DataConfig 080005c4 g F .text 000000ae USB_OTG_BSP_Init
080005c8 g F .text 000000ae USB_OTG_BSP_Init 08000530 g F .text 0000001e USBD_USR_SerialStrDescriptor
08000534 g F .text 0000001e USBD_USR_SerialStrDescriptor 080036bc g F .text 00000012 ETH_SoftwareReset
080036b4 g F .text 00000012 ETH_SoftwareReset 08003344 g F .text 00000068 ETH_WritePHYRegister
0800333c g F .text 00000068 ETH_WritePHYRegister 080015fc g F .text 00000122 USB_OTG_EP0StartXfer
08001600 g F .text 00000122 USB_OTG_EP0StartXfer 080009b4 g F .text 0000001e USBD_CtlReceiveStatus
080009b8 g F .text 0000001e USBD_CtlReceiveStatus 0800903c g F .text 0000003e UartInit
08008e18 g F .text 0000003e UartInit 08000678 g F .text 00000018 USB_OTG_BSP_uDelay
0800067c g F .text 00000018 USB_OTG_BSP_uDelay 08001264 g F .text 0000000c USB_OTG_InitDevSpeed
08001268 g F .text 0000000c USB_OTG_InitDevSpeed 080014cc g F .text 0000012e USB_OTG_EPStartXfer
080014d0 g F .text 0000012e USB_OTG_EPStartXfer 08009594 g F .text 0000006c UsbReceivePipeBulkOUT
08009370 g F .text 0000006c UsbReceivePipeBulkOUT 08003cac g F .text 000000da RCC_GetClocksFreq
08003ca4 g F .text 000000da RCC_GetClocksFreq 08009610 g F .text 00000008 NvmErase
080093ec g F .text 00000008 NvmErase
08000194 g F .text 00000018 CpuUserProgramStartHook 08000194 g F .text 00000018 CpuUserProgramStartHook
08000a1c g F .text 0000001a USBD_CtlError 08000a18 g F .text 0000001a USBD_CtlError
08003984 g F .text 00000022 netdev_init_mac 0800398c g F .text 00000022 netdev_init_mac
08003fa4 g F .text 000000de USART_Init 08003fac g F .text 000000de USART_Init
080019c0 g F .text 00000040 DCD_EP_ClrStall 080019bc g F .text 00000040 DCD_EP_ClrStall
20000100 g .bss 00000000 _bss 20000100 g .bss 00000000 _bss
08005d30 g F .text 00000014 f_close 08005e00 g F .text 00000024 f_close
0800059c g F .text 00000002 USBD_USR_DeviceConfigured 08000598 g F .text 00000002 USBD_USR_DeviceConfigured
08003aa4 g F .text 00000054 FLASH_GetStatus 08003aac g F .text 00000054 FLASH_GetStatus
08007af4 g F .text 00000388 XcpPacketReceived 08007c2c g F .text 00000388 XcpPacketReceived
08006274 g F .text 0000000a uip_tcpchksum 080063ac g F .text 0000000a uip_tcpchksum
08008990 g F .text 00000008 CpuInit 08008bb4 g F .text 00000008 CpuInit
08003a98 g F .text 0000000c FLASH_ClearFlag 08003aa0 g F .text 0000000c FLASH_ClearFlag
08003af8 g F .text 00000038 FLASH_WaitForLastOperation 08003b00 g F .text 00000038 FLASH_WaitForLastOperation
08003714 g F .text 00000026 ETH_DMAReceptionCmd 0800371c g F .text 00000026 ETH_DMAReceptionCmd
08000594 g F .text 00000002 USBD_USR_Init 08000590 g F .text 00000002 USBD_USR_Init
08005904 g F .text 000001a8 f_read 080059f0 g F .text 0000017c f_read
08008d50 g F .text 0000004c FlashDone 08008f74 g F .text 0000004c FlashDone
08001784 g F .text 0000000c USB_OTG_ReadDevAllOutEp_itr 08001780 g F .text 0000000c USB_OTG_ReadDevAllOutEp_itr
08002b24 g F .text 00000172 SD_Init 08002b20 g F .text 00000172 SD_Init
0800124c g F .text 00000010 USB_OTG_IsDeviceMode 08001248 g F .text 00000010 USB_OTG_IsDeviceMode
08000fbc g F .text 0000002a USB_OTG_WritePacket 08000fb8 g F .text 0000002a USB_OTG_WritePacket
200027a0 g O .bss 00000004 uip_appdata 200027a0 g O .bss 00000004 uip_appdata
08001980 g F .text 00000040 DCD_EP_Stall 0800197c g F .text 00000040 DCD_EP_Stall
200027a4 g O .bss 00000004 uip_conn 200027a4 g O .bss 00000004 uip_conn
080036c8 g F .text 00000010 ETH_GetSoftwareResetStatus 080036d0 g F .text 00000010 ETH_GetSoftwareResetStatus
08001758 g F .text 0000002a USB_OTG_EPClearStall 08001754 g F .text 0000002a USB_OTG_EPClearStall
200018e8 g O .bss 00000040 USB_Rx_Buffer 200018f0 g O .bss 00000040 USB_Rx_Buffer
0800917c g F .text 0000007a UsbTransmitPacket 080093a0 g F .text 0000007a UsbTransmitPacket
08002af8 g F .text 0000002c SD_SelectDeselect 08002af4 g F .text 0000002c SD_SelectDeselect
08008860 g F .text 000000a8 CanTransmitPacket 08008a84 g F .text 000000a8 CanTransmitPacket
08000188 g F .text 00000002 UsbConnectHook 08000188 g F .text 00000002 UsbConnectHook
08003ecc g F .text 00000030 SDIO_SendCommand 08003ed4 g F .text 00000030 SDIO_SendCommand
080032cc g F .text 0000006e ETH_ReadPHYRegister 080032d4 g F .text 0000006e ETH_ReadPHYRegister
200027a8 g O .bss 00000068 uip_conns 200027a8 g O .bss 00000068 uip_conns
08001914 g F .text 00000038 DCD_EP_PrepareRx 08001910 g F .text 00000038 DCD_EP_PrepareRx
08001430 g F .text 0000005c USB_OTG_EPActivate 0800142c g F .text 0000005c USB_OTG_EPActivate
0800320c g F .text 00000008 get_fattime 08007bec g F .text 0000001c XcpInit
08007ab4 g F .text 0000001c XcpInit 08000920 g F .text 00000018 USBD_SetCfg
08000924 g F .text 00000018 USBD_SetCfg 08008130 g F .text 00000034 FileInit
08007ff8 g F .text 0000002c FileInit 08003f60 g F .text 0000000e SDIO_ReadData
08003f58 g F .text 0000000e SDIO_ReadData 080092b0 g F .text 000000d8 UsbInit
0800908c g F .text 000000d8 UsbInit 0800761c g F .text 000001d0 uip_arp_out
080074e4 g F .text 000001d0 uip_arp_out 08009388 g F .text 00000016 UsbFree
08009164 g F .text 00000016 UsbFree 08008e28 g F .text 0000008a FlashErase
08008c04 g F .text 0000008a FlashErase 080004d0 g F .text 0000000e USBD_USR_DeviceDescriptor
080004d4 g F .text 0000000e USBD_USR_DeviceDescriptor 080097d4 g F .text 0000009e memset
080095b0 g F .text 0000009e memset 0800027c g F .text 00000020 FileFirmwareUpdateErrorHook
08000280 g F .text 00000020 FileFirmwareUpdateErrorHook 080002fc g F .text 000000dc main
08000300 g F .text 000000dc main 08003b38 g F .text 0000006e FLASH_EraseSector
08003b30 g F .text 0000006e FLASH_EraseSector 08005d64 g F .text 0000009c f_sync
08005c84 g F .text 000000ac f_sync 08002fd8 g F .text 0000004c SD_SendStatus
08002fdc g F .text 0000004c SD_SendStatus 080012c0 g F .text 0000011e USB_OTG_CoreInitDev
080012c4 g F .text 0000011e USB_OTG_CoreInitDev 08001184 g F .text 0000004e USB_OTG_FlushTxFifo
08001188 g F .text 0000004e USB_OTG_FlushTxFifo 080081b0 g F .text 0000004c FileSrecGetLineType
08008070 g F .text 0000004c FileSrecGetLineType 08009628 g F .text 00000012 NvmDone
08009404 g F .text 00000012 NvmDone 080057f0 g F .text 0000007a f_mount
0800576c g F .text 0000002a f_mount 0800907c g F .text 00000066 UartTransmitPacket
08008e58 g F .text 00000066 UartTransmitPacket 08009618 g F .text 00000008 NvmVerifyChecksum
080093f4 g F .text 00000008 NvmVerifyChecksum 08008bf8 g F .text 0000001e CpuMemCopy
080089d4 g F .text 0000001e CpuMemCopy 08003f14 g F .text 0000001a SDIO_GetResponse
08003f0c g F .text 0000001a SDIO_GetResponse
20000068 g O .data 00000004 USBD_LangIDDesc 20000068 g O .data 00000004 USBD_LangIDDesc
08001178 g F .text 0000000e USB_OTG_DisableGlobalInt 08001174 g F .text 0000000e USB_OTG_DisableGlobalInt
080017ac g F .text 00000042 USB_OTG_EP0_OutStart 080017a8 g F .text 00000042 USB_OTG_EP0_OutStart
080010d8 g F .text 00000090 USB_OTG_CoreInit 080010d4 g F .text 00000090 USB_OTG_CoreInit
2000032c g O .bss 00000004 USBD_cfg_status 20000330 g O .bss 00000004 USBD_cfg_status
080040bc g F .text 00000120 SystemInit 080040c4 g F .text 00000120 SystemInit
20000334 g O .bss 00000004 USBD_default_cfg 20000338 g O .bss 00000004 USBD_default_cfg
08004ac4 g F .text 0000010e put_fat 08001948 g F .text 00000034 DCD_EP_Tx
0800194c g F .text 00000034 DCD_EP_Tx 08005e24 g F .text 00000170 f_lseek
08005d44 g F .text 00000198 f_lseek 08003fa0 g F .text 0000000a SYSCFG_ETH_MediaInterfaceConfig
08003f98 g F .text 0000000a SYSCFG_ETH_MediaInterfaceConfig 080074e8 g F .text 00000134 uip_arp_arpin
080073b0 g F .text 00000134 uip_arp_arpin 0800797c g F .text 0000001c ComGetActiveInterfaceMaxTxLen
08007844 g F .text 0000001c ComGetActiveInterfaceMaxTxLen 080090e4 g F .text 000000d8 UartReceivePacket
08008ec0 g F .text 000000d8 UartReceivePacket 080001ec g F .text 0000000a FileGetFirmwareFilenameHook
080001f0 g F .text 0000000a FileGetFirmwareFilenameHook 080096c4 g F .text 00000004 CpuIrqEnable
080094a0 g F .text 00000004 CpuIrqEnable 080005b8 g F .text 0000000a USBD_USR_DeviceDisconnected
080005bc g F .text 0000000a USBD_USR_DeviceDisconnected 08000674 g F .text 00000002 USB_OTG_BSP_EnableInterrupt
08000678 g F .text 00000002 USB_OTG_BSP_EnableInterrupt 08002c94 g F .text 000001a6 SD_ReadBlock
08002c98 g F .text 000001a6 SD_ReadBlock 08007490 g F .text 00000058 uip_arp_timer
08007358 g F .text 00000058 uip_arp_timer 0800096c g F .text 00000012 USBD_CtlContinueSendData
08000970 g F .text 00000012 USBD_CtlContinueSendData
20002810 g O .bss 00000002 uip_listenports 20002810 g O .bss 00000002 uip_listenports
20002814 g O .bss 00000004 uip_draddr 20002814 g O .bss 00000004 uip_draddr
080004e4 g F .text 0000000e USBD_USR_LangIDStrDescriptor 080004e0 g F .text 0000000e USBD_USR_LangIDStrDescriptor
080013e4 g F .text 00000020 USB_OTG_GetDeviceSpeed 080013e0 g F .text 00000020 USB_OTG_GetDeviceSpeed
20000000 g .data 00000000 _data 20000000 g .data 00000000 _data
0800373c g F .text 00000020 ETH_Start 08003744 g F .text 00000020 ETH_Start
20001a90 g O .bss 00000640 RxBuff 20001a90 g O .bss 00000640 RxBuff
08005edc g F .text 0000004a f_stat 08005f94 g F .text 00000054 f_stat
08007ef0 g F .text 00000002 CopInit 08008028 g F .text 00000002 CopInit
0800236c g F .text 0000002c SD_Detect 08002368 g F .text 0000002c SD_Detect
080086f8 g F .text 00000168 CanInit 0800891c g F .text 00000168 CanInit
080093e4 g F .text 00000008 NvmWrite 08009608 g F .text 00000008 NvmWrite
08008998 g F .text 0000003a CpuStartUserProgram 08008bbc g F .text 0000003a CpuStartUserProgram
08000efc g F .text 0000004c USBD_GetString 08000ef8 g F .text 0000004c USBD_GetString
08004928 g F .text 00000016 clust2sect
20003664 g .bss 00000000 _estack 20003664 g .bss 00000000 _estack
080040a0 g F .text 00000008 USART_SendData 080040a8 g F .text 00000008 USART_SendData
080091f8 g F .text 000000c8 UsbReceivePacket 0800941c g F .text 000000c8 UsbReceivePacket
08008ce8 g F .text 00000068 FlashVerifyChecksum 08008f0c g F .text 00000068 FlashVerifyChecksum
080078dc g F .text 00000044 NetTransmitPacket 08007a14 g F .text 00000044 NetTransmitPacket
200000ec g .data 00000000 _edata 200000ec g .data 00000000 _edata
08008024 g F .text 00000014 FileIsIdle 08008164 g F .text 00000014 FileIsIdle
08007208 g F .text 0000000a htons 08007340 g F .text 0000000a htons
08005aac g F .text 000001d8 f_write 08005b6c g F .text 000001b0 f_write
08001274 g F .text 00000050 USB_OTG_EnableDevInt 08001270 g F .text 00000050 USB_OTG_EnableDevInt
08000000 g O .text 00000188 _vectab 08000000 g O .text 00000188 _vectab
08000554 g F .text 0000001e USBD_USR_ConfigStrDescriptor 08000550 g F .text 0000001e USBD_USR_ConfigStrDescriptor
08005798 g F .text 0000016a f_open 0800586c g F .text 00000184 f_open
0800313c g F .text 0000006c disk_write 08003144 g F .text 00000074 disk_write
0800368c g F .text 00000026 ETH_MACReceptionCmd 08003694 g F .text 00000026 ETH_MACReceptionCmd
0800094c g F .text 00000022 USBD_CtlSendData 08000948 g F .text 00000022 USBD_CtlSendData
080002a0 g F .text 00000060 FileFirmwareUpdateLogHook 0800029c g F .text 00000060 FileFirmwareUpdateLogHook
200020d0 g O .bss 00000640 TxBuff 200020d0 g O .bss 00000640 TxBuff
200000e8 g O .data 00000004 __ctype_ptr__ 200000e8 g O .data 00000004 __ctype_ptr__
08007860 g F .text 00000008 ComIsConnected 08007998 g F .text 00000008 ComIsConnected
08001404 g F .text 0000002a USB_OTG_EP0Activate 08001400 g F .text 0000002a USB_OTG_EP0Activate
08000fe8 g F .text 00000026 USB_OTG_ReadPacket 08000fe4 g F .text 00000026 USB_OTG_ReadPacket
08009f84 g O .text 00000101 _ctype_ 0800a09c g O .text 00000101 _ctype_
080036ec g F .text 00000026 ETH_DMATransmissionCmd 080036f4 g F .text 00000026 ETH_DMATransmissionCmd
08003e70 g F .text 00000034 SDIO_Init 08003e78 g F .text 00000034 SDIO_Init
080001ac g F .text 00000044 FileIsFirmwareUpdateRequestedHook 080001ac g F .text 0000003e FileIsFirmwareUpdateRequestedHook
08001a00 g F .text 00000010 DCD_EP_SetAddress 080019fc g F .text 00000010 DCD_EP_SetAddress
08006280 g F .text 00000032 uip_init 080063b8 g F .text 00000032 uip_init
08002398 g F .text 0000027e SD_PowerON 08002394 g F .text 0000027e SD_PowerON
2000192c g O .bss 000000ff USBD_StrDesc 20001934 g O .bss 000000ff USBD_StrDesc
08007828 g F .text 0000001c ComGetActiveInterfaceMaxRxLen 08007960 g F .text 0000001c ComGetActiveInterfaceMaxRxLen
08003d80 g F .text 00000024 RCC_AHB1PeriphClockCmd 08003d88 g F .text 00000024 RCC_AHB1PeriphClockCmd
08007920 g F .text 0000010a NetReceivePacket 08007a58 g F .text 0000010a NetReceivePacket
080030d8 g F .text 00000064 disk_read 080030d4 g F .text 0000006e disk_read
08007e7c g F .text 0000004e BackDoorCheck 08007fb4 g F .text 0000004e BackDoorCheck
20002e64 g .bss 00000000 _stack 20002e64 g .bss 00000000 _stack
08003e34 g F .text 00000024 RCC_APB2PeriphResetCmd 08003e3c g F .text 00000024 RCC_APB2PeriphResetCmd
20002818 g O .bss 00000004 uip_netmask 20002818 g O .bss 00000004 uip_netmask
20000000 g O .data 00000020 usbd_bulk_CfgDesc 20000000 g O .data 00000020 usbd_bulk_CfgDesc
2000281c g O .bss 00000004 uip_hostaddr 2000281c g O .bss 00000004 uip_hostaddr
08006094 g F .text 0000004a ff_convert 08006154 g F .text 0000004a ff_convert
08009474 g F .text 00000012 TimerGet 08009698 g F .text 00000012 TimerGet
08003ebc g F .text 00000010 SDIO_GetPowerState 08003ec4 g F .text 00000010 SDIO_GetPowerState
080092c0 g F .text 000000ae UsbTransmitPipeBulkIN 080094e4 g F .text 000000ae UsbTransmitPipeBulkIN
20002780 g O .bss 00000010 EnetDmaTx 20002780 g O .bss 00000010 EnetDmaTx
08007a2c g F .text 00000070 NetApp 08007b64 g F .text 00000070 NetApp
2000004c g O .data 0000001c USR_desc 2000004c g O .data 0000001c USR_desc
08007868 g F .text 00000074 NetInit 080079a0 g F .text 00000074 NetInit
0800148c g F .text 00000042 USB_OTG_EPDeactivate 08001488 g F .text 00000042 USB_OTG_EPDeactivate
08002618 g F .text 000001a4 SD_InitializeCards 08002614 g F .text 000001a4 SD_InitializeCards
08003c70 g F .text 0000000c GPIO_ReadInputDataBit 08003c78 g F .text 0000000c GPIO_ReadInputDataBit
08009418 g F .text 00000028 TimerInit 0800963c g F .text 00000028 TimerInit
08003f68 g F .text 0000000e SDIO_WriteData 08003f70 g F .text 0000000e SDIO_WriteData
20002820 g O .bss 00000642 uip_buf 20002820 g O .bss 00000642 uip_buf
200000a0 g O .data 0000002c USBD_DCD_INT_cb 200000a0 g O .data 0000002c USBD_DCD_INT_cb
08007214 g F .text 0000002a uip_send 0800734c g F .text 0000002a uip_send
20002e62 g O .bss 00000002 uip_slen 20002e62 g O .bss 00000002 uip_slen
080001fc g F .text 00000030 FileFirmwareUpdateStartedHook 080001f8 g F .text 00000030 FileFirmwareUpdateStartedHook
08001168 g F .text 0000000e USB_OTG_EnableGlobalInt 08001164 g F .text 0000000e USB_OTG_EnableGlobalInt
08003e58 g F .text 00000018 SDIO_DeInit 08003e60 g F .text 00000018 SDIO_DeInit

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -2881,7 +2881,7 @@ static SD_Error FindSCR(uint16_t rca, uint32_t *pscr)
if (timeout > 10000) if (timeout > 10000)
{ {
return SD_DATA_TIMEOUT; return SD_DATA_TIMEOUT;
} }
} }
if (SDIO_GetFlagStatus(SDIO_FLAG_DTIMEOUT) != RESET) if (SDIO_GetFlagStatus(SDIO_FLAG_DTIMEOUT) != RESET)
@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA) * \param sector: start sector number (LBA)
* \param count: sector count * \param count: sector count
*/ */
DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count) DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, UINT count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3274,8 +3274,7 @@ DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count)
* \param count: Sector count (1..255) * \param count: Sector count (1..255)
* \note this function needs DMA access and is disabled if _READONLY is set * \note this function needs DMA access and is disabled if _READONLY is set
*/ */
#if _READONLY == 0 DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR; return RES_ERROR;
} }
#endif
/*! /*!
* \brief ioctl implementation * \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
return res; return res;
} }
/*!
* \brief user provided timer function for FatFs module
*/
DWORD get_fattime(void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}
/********************************* end of mmc.c ****************************************/ /********************************* end of mmc.c ****************************************/

View File

@ -73,14 +73,14 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>28</YPos2><SelStart2>2717</SelStart2><SelEnd2>2717</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>3143</SelStart2><SelEnd2>3143</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>96</YPos2><SelStart2>617</SelStart2><SelEnd2>617</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>28</YPos2><SelStart2>2717</SelStart2><SelEnd2>2717</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>7500</SelStart2><SelEnd2>7500</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-02A27A60><key>iaridepm.enu1</key></Toolbar-02A27A60></Sizes></Row0><Row1><Sizes><Toolbar-0C051330><key>debuggergui.enu1</key></Toolbar-0C051330></Sizes></Row1><Row2><Sizes><Toolbar-0C0513F8><key>armjlink2.enu1</key></Toolbar-0C0513F8></Sizes></Row2></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>717</Bottom><Right>303</Right><x>-2</x><y>-2</y><xscreen>201</xscreen><yscreen>200</yscreen><sizeHorzCX>104688</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>158854</sizeVertCX><sizeVertCY>713294</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>717</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>713294</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104688</sizeVertCX><sizeVertCY>198413</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-052EA5F0><key>iaridepm.enu1</key></Toolbar-052EA5F0></Sizes></Row0><Row1><Sizes><Toolbar-125BE950><key>debuggergui.enu1</key></Toolbar-125BE950></Sizes></Row1><Row2><Sizes><Toolbar-125BF760><key>armjlink2.enu1</key></Toolbar-125BF760></Sizes></Row2></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>716</Bottom><Right>303</Right><x>-2</x><y>-2</y><xscreen>201</xscreen><yscreen>200</yscreen><sizeHorzCX>104688</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>158854</sizeVertCX><sizeVertCY>713009</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>716</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>713009</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104688</sizeVertCX><sizeVertCY>198610</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Project> </Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0 LimitSize=0
ByteLimit=50 ByteLimit=50
[DebugChecksum] [DebugChecksum]
Checksum=183967822 Checksum=-1563361147
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0
@ -29,6 +29,8 @@ Fmt1={W}0:block->base_addr 4 0
Fmt2={W}0:current_base_addr 4 0 Fmt2={W}0:current_base_addr 4 0
[CodeCoverage] [CodeCoverage]
Enabled=_ 0 Enabled=_ 0
[RecentFlashDownload]
Path=C:\Work\software\OpenBLT\Target\Demo\ARMCM4_STM32F4_Olimex_STM32E407_GCC\Boot\bin\openblt_olimex_stm32e407.srec
[Trace1] [Trace1]
Enabled=0 Enabled=0
ShowSource=1 ShowSource=1
@ -48,7 +50,7 @@ Exclusions=
[CallStackLog] [CallStackLog]
Enabled=0 Enabled=0
[CallStackStripe] [CallStackStripe]
ShowTiming=80 ShowTiming=1
[Disassemble mode] [Disassemble mode]
mode=0 mode=0
[Breakpoints2] [Breakpoints2]

View File

@ -42,20 +42,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-19870-1384</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-11216-22197</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-16597-313</Identity><TabName>Find All Declarations</TabName><Factory>Find-All-Declarations</Factory><Session/></Tab><Tab><Identity>TabID-7799-665</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab><Tab><Identity>TabID-26870-1945</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows> <SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-19870-1384</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-11216-22197</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-16597-313</Identity><TabName>Find All Declarations</TabName><Factory>Find-All-Declarations</Factory><Session/></Tab><Tab><Identity>TabID-7799-665</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab><Tab><Identity>TabID-26870-1945</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>1</SelectedTab></Wnd1></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>28</YPos2><SelStart2>2465</SelStart2><SelEnd2>2465</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>7500</SelStart2><SelEnd2>7500</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>96</YPos2><SelStart2>617</SelStart2><SelEnd2>617</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>28</YPos2><SelStart2>2717</SelStart2><SelEnd2>2717</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>92</YPos2><SelStart2>7500</SelStart2><SelEnd2>7500</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-048DA5F0><key>iaridepm.enu1</key></Toolbar-048DA5F0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>962</Bottom><Right>354</Right><x>-2</x><y>-2</y><xscreen>129</xscreen><yscreen>143</yscreen><sizeHorzCX>67188</sizeHorzCX><sizeHorzCY>142006</sizeHorzCY><sizeVertCX>185417</sizeVertCX><sizeVertCY>957299</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>962</Bottom><Right>380</Right><x>-2</x><y>-2</y><xscreen>129</xscreen><yscreen>143</yscreen><sizeHorzCX>67188</sizeHorzCX><sizeHorzCY>142006</sizeHorzCY><sizeVertCX>198958</sizeVertCX><sizeVertCY>957299</sizeVertCY></Rect></Wnd1></Sizes></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-049AA5F0><key>iaridepm.enu1</key></Toolbar-049AA5F0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>962</Bottom><Right>354</Right><x>-2</x><y>-2</y><xscreen>129</xscreen><yscreen>143</yscreen><sizeHorzCX>67188</sizeHorzCX><sizeHorzCY>142006</sizeHorzCY><sizeVertCX>185417</sizeVertCX><sizeVertCY>957299</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>962</Bottom><Right>415</Right><x>-2</x><y>-2</y><xscreen>129</xscreen><yscreen>143</yscreen><sizeHorzCX>67188</sizeHorzCX><sizeHorzCY>142006</sizeHorzCY><sizeVertCX>217188</sizeVertCX><sizeVertCY>957299</sizeVertCY></Rect></Wnd1></Sizes></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA) * \param sector: start sector number (LBA)
* \param count: sector count * \param count: sector count
*/ */
DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count) DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, UINT count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3274,8 +3274,7 @@ DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, BYTE count)
* \param count: Sector count (1..255) * \param count: Sector count (1..255)
* \note this function needs DMA access and is disabled if _READONLY is set * \note this function needs DMA access and is disabled if _READONLY is set
*/ */
#if _READONLY == 0 DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
{ {
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */ DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK; SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR; return RES_ERROR;
} }
#endif
/*! /*!
* \brief ioctl implementation * \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
return res; return res;
} }
/*!
* \brief user provided timer function for FatFs module
*/
DWORD get_fattime(void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}
/********************************* end of mmc.c ****************************************/ /********************************* end of mmc.c ****************************************/

View File

@ -497,12 +497,12 @@
1452182499 c:\users\voorburg\desktop\test\stm32p405\src\hw\led.h 1452182499 c:\users\voorburg\desktop\test\stm32p405\src\hw\led.h
1477571940 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\hooks.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\hooks.c
"boot.h" "boot.h"
"stm32f4xx.h" "stm32f4xx.h"
"led.h" "led.h"
1477216154 c:\work\software\openblt\target\source\boot.h 1485627342 c:\work\software\openblt\target\source\boot.h
"types.h" "types.h"
"assert.h" "assert.h"
"blt_conf.h" "blt_conf.h"
@ -515,59 +515,59 @@
"file.h" "file.h"
"com.h" "com.h"
1477295708 c:\work\software\openblt\target\source\armcm4_stm32f4\types.h 1485627343 c:\work\software\openblt\target\source\armcm4_stm32f4\types.h
1469431761 c:\work\software\openblt\target\source\assert.h 1485627196 c:\work\software\openblt\target\source\assert.h
1478123202 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\blt_conf.h 1487087229 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\blt_conf.h
1469431761 c:\work\software\openblt\target\source\plausibility.h 1485627342 c:\work\software\openblt\target\source\plausibility.h
1476728168 c:\work\software\openblt\target\source\cpu.h 1493026658 c:\work\software\openblt\target\source\cpu.h
1469431761 c:\work\software\openblt\target\source\cop.h 1485627344 c:\work\software\openblt\target\source\cop.h
1469431761 c:\work\software\openblt\target\source\nvm.h 1485627196 c:\work\software\openblt\target\source\nvm.h
1469431761 c:\work\software\openblt\target\source\timer.h 1485627344 c:\work\software\openblt\target\source\timer.h
1469431761 c:\work\software\openblt\target\source\backdoor.h 1485627195 c:\work\software\openblt\target\source\backdoor.h
1469431761 c:\work\software\openblt\target\source\file.h 1485627343 c:\work\software\openblt\target\source\file.h
"ff.h" "ff.h"
1469431761 c:\work\software\openblt\target\source\com.h 1485627343 c:\work\software\openblt\target\source\com.h
"xcp.h" "xcp.h"
1476783465 c:\work\software\openblt\target\source\xcp.h 1493026917 c:\work\software\openblt\target\source\xcp.h
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\stm32f4xx.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\stm32f4xx.h
"core_cm4.h" "core_cm4.h"
"system_stm32f4xx.h" "system_stm32f4xx.h"
<stdint.h> <stdint.h>
"stm32f4xx_conf.h" "stm32f4xx_conf.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cm4.h 1485627628 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cm4.h
<stdint.h> <stdint.h>
<core_cmInstr.h> <core_cmInstr.h>
<core_cmFunc.h> <core_cmFunc.h>
<core_cm4_simd.h> <core_cm4_simd.h>
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cminstr.h 1485627628 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cminstr.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cmfunc.h 1485627628 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cmfunc.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cm4_simd.h 1485627628 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\cmsis\core_cm4_simd.h
<cmsis_iar.h> <cmsis_iar.h>
<cmsis_ccs.h> <cmsis_ccs.h>
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\system_stm32f4xx.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\system_stm32f4xx.h
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\stm32f4xx_conf.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\stm32f4xx_conf.h
"stm32f4xx_adc.h" "stm32f4xx_adc.h"
"stm32f4xx_can.h" "stm32f4xx_can.h"
"stm32f4xx_crc.h" "stm32f4xx_crc.h"
@ -595,231 +595,231 @@
"stm32f4xx_wwdg.h" "stm32f4xx_wwdg.h"
"misc.h" "misc.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_adc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_adc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_can.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_can.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_crc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_crc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_cryp.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_cryp.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dac.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dac.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dbgmcu.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dbgmcu.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dcmi.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dcmi.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dma.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_dma.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_exti.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_exti.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_flash.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_flash.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_fsmc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_fsmc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_hash.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_hash.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_gpio.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_gpio.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_i2c.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_i2c.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_iwdg.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_iwdg.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_pwr.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_pwr.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rcc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rcc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rng.h 1485627628 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rng.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rtc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_rtc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_sdio.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_sdio.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_spi.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_spi.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_syscfg.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_syscfg.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_tim.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_tim.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_usart.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_usart.h
"stm32f4xx.h" "stm32f4xx.h"
1453811542 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_wwdg.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\stm32f4xx_wwdg.h
"stm32f4xx.h" "stm32f4xx.h"
1453811541 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\misc.h 1485627627 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\inc\misc.h
"stm32f4xx.h" "stm32f4xx.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\misc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\misc.c
"misc.h" "misc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_adc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_adc.c
"stm32f4xx_adc.h" "stm32f4xx_adc.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_can.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_can.c
"stm32f4xx_can.h" "stm32f4xx_can.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_crc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_crc.c
"stm32f4xx_crc.h" "stm32f4xx_crc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp.c
"stm32f4xx_cryp.h" "stm32f4xx_cryp.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_aes.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_aes.c
"stm32f4xx_cryp.h" "stm32f4xx_cryp.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_des.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_des.c
"stm32f4xx_cryp.h" "stm32f4xx_cryp.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_tdes.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_cryp_tdes.c
"stm32f4xx_cryp.h" "stm32f4xx_cryp.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dac.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dac.c
"stm32f4xx_dac.h" "stm32f4xx_dac.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dbgmcu.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dbgmcu.c
"stm32f4xx_dbgmcu.h" "stm32f4xx_dbgmcu.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dcmi.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dcmi.c
"stm32f4xx_dcmi.h" "stm32f4xx_dcmi.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dma.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_dma.c
"stm32f4xx_dma.h" "stm32f4xx_dma.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_exti.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_exti.c
"stm32f4xx_exti.h" "stm32f4xx_exti.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_flash.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_flash.c
"stm32f4xx_flash.h" "stm32f4xx_flash.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_fsmc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_fsmc.c
"stm32f4xx_fsmc.h" "stm32f4xx_fsmc.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_gpio.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_gpio.c
"stm32f4xx_gpio.h" "stm32f4xx_gpio.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash.c
"stm32f4xx_hash.h" "stm32f4xx_hash.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash_md5.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash_md5.c
"stm32f4xx_hash.h" "stm32f4xx_hash.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash_sha1.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_hash_sha1.c
"stm32f4xx_hash.h" "stm32f4xx_hash.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_i2c.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_i2c.c
"stm32f4xx_i2c.h" "stm32f4xx_i2c.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_iwdg.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_iwdg.c
"stm32f4xx_iwdg.h" "stm32f4xx_iwdg.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_pwr.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_pwr.c
"stm32f4xx_pwr.h" "stm32f4xx_pwr.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rcc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rcc.c
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rng.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rng.c
"stm32f4xx_rng.h" "stm32f4xx_rng.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rtc.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_rtc.c
"stm32f4xx_rtc.h" "stm32f4xx_rtc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_sdio.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_sdio.c
"stm32f4xx_sdio.h" "stm32f4xx_sdio.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_spi.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_spi.c
"stm32f4xx_spi.h" "stm32f4xx_spi.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_syscfg.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_syscfg.c
"stm32f4xx_syscfg.h" "stm32f4xx_syscfg.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_tim.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_tim.c
"stm32f4xx_tim.h" "stm32f4xx_tim.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_usart.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_usart.c
"stm32f4xx_usart.h" "stm32f4xx_usart.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1453811540 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_wwdg.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\spl\src\stm32f4xx_wwdg.c
"stm32f4xx_wwdg.h" "stm32f4xx_wwdg.h"
"stm32f4xx_rcc.h" "stm32f4xx_rcc.h"
1477491762 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\system_stm32f4xx.c 1485627627 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\system_stm32f4xx.c
"stm32f4xx.h" "stm32f4xx.h"
1452181324 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\startup_stm32f4xx.s 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\startup_stm32f4xx.s
1477295648 source:c:\work\software\openblt\target\source\armcm4_stm32f4\can.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\can.c
"boot.h" "boot.h"
1477295655 source:c:\work\software\openblt\target\source\armcm4_stm32f4\cpu.c 1493026617 source:c:\work\software\openblt\target\source\armcm4_stm32f4\cpu.c
"boot.h" "boot.h"
1477295662 source:c:\work\software\openblt\target\source\armcm4_stm32f4\flash.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\flash.c
"boot.h" "boot.h"
"stm32f4xx.h" "stm32f4xx.h"
"stm32f4xx_conf.h" "stm32f4xx_conf.h"
"flash_layout.c" "flash_layout.c"
1477295748 source:c:\work\software\openblt\target\source\armcm4_stm32f4\gcc\cpu_comp.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\gcc\cpu_comp.c
"boot.h" "boot.h"
1477295676 source:c:\work\software\openblt\target\source\armcm4_stm32f4\nvm.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\nvm.c
"boot.h" "boot.h"
"flash.h" "flash.h"
1477295669 c:\work\software\openblt\target\source\armcm4_stm32f4\flash.h 1485627343 c:\work\software\openblt\target\source\armcm4_stm32f4\flash.h
1477295699 source:c:\work\software\openblt\target\source\armcm4_stm32f4\timer.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\timer.c
"boot.h" "boot.h"
"stm32f4xx.h" "stm32f4xx.h"
1477554497 source:c:\work\software\openblt\target\source\armcm4_stm32f4\uart.c 1485627343 source:c:\work\software\openblt\target\source\armcm4_stm32f4\uart.c
"boot.h" "boot.h"
"stm32f4xx.h" "stm32f4xx.h"
"stm32f4xx_conf.h" "stm32f4xx_conf.h"
1477295721 source:c:\work\software\openblt\target\source\armcm4_stm32f4\usb.c 1491556363 source:c:\work\software\openblt\target\source\armcm4_stm32f4\usb.c
"boot.h" "boot.h"
"usb.h" "usb.h"
"usb_core.h" "usb_core.h"
@ -830,185 +830,185 @@
"usbd_desc.h" "usbd_desc.h"
"usbd_bulk.h" "usbd_bulk.h"
1469431761 c:\work\software\openblt\target\source\usb.h 1485627194 c:\work\software\openblt\target\source\usb.h
1477295250 source:c:\work\software\openblt\target\source\assert.c 1485627196 source:c:\work\software\openblt\target\source\assert.c
"boot.h" "boot.h"
1469431756 source:c:\work\software\openblt\target\source\backdoor.c 1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h" "boot.h"
1476728156 source:c:\work\software\openblt\target\source\boot.c 1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h" "boot.h"
1469431756 source:c:\work\software\openblt\target\source\com.c 1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h" "boot.h"
"can.h" "can.h"
"uart.h" "uart.h"
"usb.h" "usb.h"
"net.h" "net.h"
1469431761 c:\work\software\openblt\target\source\can.h 1485627196 c:\work\software\openblt\target\source\can.h
1469431761 c:\work\software\openblt\target\source\uart.h 1485627342 c:\work\software\openblt\target\source\uart.h
1469431761 c:\work\software\openblt\target\source\net.h 1485627344 c:\work\software\openblt\target\source\net.h
1469431756 source:c:\work\software\openblt\target\source\cop.c 1485627343 source:c:\work\software\openblt\target\source\cop.c
"boot.h" "boot.h"
1469281006 source:c:\work\software\openblt\target\source\file.c 1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h" "boot.h"
<string.h> <string.h>
<ctype.h> <ctype.h>
1469431757 source:c:\work\software\openblt\target\source\net.c 1485627344 source:c:\work\software\openblt\target\source\net.c
"boot.h" "boot.h"
"netdev.h" "netdev.h"
"uip.h" "uip.h"
"uip_arp.h" "uip_arp.h"
1476783463 source:c:\work\software\openblt\target\source\xcp.c 1493026773 source:c:\work\software\openblt\target\source\xcp.c
"boot.h" "boot.h"
1477492291 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\led.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\led.c
"boot.h" "boot.h"
"led.h" "led.h"
"stm32f4xx.h" "stm32f4xx.h"
1477492132 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\led.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\led.h
1477571585 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\main.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\main.c
"boot.h" "boot.h"
"stm32f4xx.h" "stm32f4xx.h"
1477492858 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\flash_layout.c 1485627630 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\flash_layout.c
1474440706 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_core.c 1485627625 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_core.c
"usbd_core.h" "usbd_core.h"
"usbd_req.h" "usbd_req.h"
"usbd_ioreq.h" "usbd_ioreq.h"
"usb_dcd_int.h" "usb_dcd_int.h"
"usb_bsp.h" "usb_bsp.h"
1474440706 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_core.h 1485627625 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_core.h
"usb_dcd.h" "usb_dcd.h"
"usbd_def.h" "usbd_def.h"
"usbd_conf.h" "usbd_conf.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_dcd.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_dcd.h
"usb_core.h" "usb_core.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_core.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_core.h
"usb_conf.h" "usb_conf.h"
"usb_regs.h" "usb_regs.h"
"usb_defines.h" "usb_defines.h"
1474440704 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usb_conf.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usb_conf.h
"stm32f4xx.h" "stm32f4xx.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_regs.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_regs.h
"usb_conf.h" "usb_conf.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_defines.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_defines.h
"usb_conf.h" "usb_conf.h"
1474440706 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_def.h 1485627625 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_def.h
"usbd_conf.h" "usbd_conf.h"
1474440704 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_conf.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_conf.h
"usb_conf.h" "usb_conf.h"
1474440706 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_req.h 1485627625 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_req.h
"usbd_def.h" "usbd_def.h"
"usbd_core.h" "usbd_core.h"
"usbd_conf.h" "usbd_conf.h"
1474440706 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_ioreq.h 1485627625 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_ioreq.h
"usbd_def.h" "usbd_def.h"
"usbd_core.h" "usbd_core.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_dcd_int.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_dcd_int.h
"usb_dcd.h" "usb_dcd.h"
1474440705 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_bsp.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\inc\usb_bsp.h
"usb_core.h" "usb_core.h"
"usb_conf.h" "usb_conf.h"
1474440706 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_ioreq.c 1485627625 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_ioreq.c
"usbd_ioreq.h" "usbd_ioreq.h"
1474440706 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_req.c 1485627625 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\src\usbd_req.c
"usbd_req.h" "usbd_req.h"
"usbd_ioreq.h" "usbd_ioreq.h"
"usbd_desc.h" "usbd_desc.h"
1474440704 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_desc.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_desc.h
"usbd_def.h" "usbd_def.h"
1474440705 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_core.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_core.c
"usb_core.h" "usb_core.h"
"usb_bsp.h" "usb_bsp.h"
1474440705 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_dcd.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_dcd.c
"usb_dcd.h" "usb_dcd.h"
"usb_bsp.h" "usb_bsp.h"
1474440705 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_dcd_int.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbotgdriver\src\usb_dcd_int.c
"usb_dcd_int.h" "usb_dcd_int.h"
1474440714 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usb_bsp.c 1485627630 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usb_bsp.c
"usb_bsp.h" "usb_bsp.h"
"usbd_conf.h" "usbd_conf.h"
1474440704 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_bulk.c 1485627624 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_bulk.c
"usbd_bulk.h" "usbd_bulk.h"
"usbd_desc.h" "usbd_desc.h"
"usbd_req.h" "usbd_req.h"
1474440704 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_bulk.h 1485627624 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_bulk.h
"usbd_ioreq.h" "usbd_ioreq.h"
1474440714 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_desc.c 1485627630 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_desc.c
"usbd_core.h" "usbd_core.h"
"usbd_desc.h" "usbd_desc.h"
"usbd_req.h" "usbd_req.h"
"usbd_conf.h" "usbd_conf.h"
"usb_regs.h" "usb_regs.h"
1474440713 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_usr.c 1485627630 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\usbd_usr.c
"usbd_usr.h" "usbd_usr.h"
"usbd_ioreq.h" "usbd_ioreq.h"
"boot.h" "boot.h"
"usb.h" "usb.h"
1474440706 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_usr.h 1485627625 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\usbdevicelib\core\inc\usbd_usr.h
"usbd_core.h" "usbd_core.h"
1456841907 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\ff.h
"integer.h" "integer.h"
"ffconf.h" "ffconf.h"
1453811453 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\integer.h
<windows.h> <windows.h>
<tchar.h> <tchar.h>
1453811539 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\fatfs\ffconf.h 1493280503 c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\fatfs\ffconf.h
1477571442 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\fatfs\mmc.c 1493288739 source:c:\work\software\openblt\target\demo\armcm4_stm32f4_olimex_stm32p405_gcc\boot\lib\fatfs\mmc.c
"diskio.h" "diskio.h"
"stm32f4xx.h" "stm32f4xx.h"
"boot.h" "boot.h"
1456841906 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\diskio.h
"integer.h" "integer.h"
1477296647 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\ff.c
"ff.h" "ff.h"
"diskio.h" "diskio.h"
<stdarg.h> <stdarg.h>
1453811453 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c 1460492726 source:c:\work\software\openblt\target\source\third_party\fatfs\src\option\unicode.c
"../ff.h" "../ff.h"
"cc932.c" "cc932.c"
"cc936.c" "cc936.c"
@ -1016,18 +1016,18 @@
"cc950.c" "cc950.c"
"ccsbcs.c" "ccsbcs.c"
1456841901 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc932.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc936.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc949.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\cc950.c
"../ff.h" "../ff.h"
1456841902 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c 1460492726 c:\work\software\openblt\target\source\third_party\fatfs\src\option\ccsbcs.c
"../ff.h" "../ff.h"

View File

@ -34,7 +34,7 @@
<Add option="$device=cortex-m4" /> <Add option="$device=cortex-m4" />
<Add option="$fpu=fpv4-sp-d16" /> <Add option="$fpu=fpv4-sp-d16" />
<Add option="$lscript=../cfg/stm32f405rg_flash.ld" /> <Add option="$lscript=../cfg/stm32f405rg_flash.ld" />
<Add option="$stack=0x0400" /> <Add option="$stack=0x0800" />
<Add option="$heap=0x0000" /> <Add option="$heap=0x0000" />
</Device> </Device>
<Compiler> <Compiler>

View File

@ -21,6 +21,11 @@
<Cursor1 position="2090" topLine="19" /> <Cursor1 position="2090" topLine="19" />
</Cursor> </Cursor>
</File> </File>
<File name="..\lib\fatfs\mmc.c" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="8844" topLine="227" />
</Cursor>
</File>
<File name="..\lib\SPL\inc\stm32f4xx_rcc.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\lib\SPL\inc\stm32f4xx_rcc.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor> <Cursor>
<Cursor1 position="15860" topLine="331" /> <Cursor1 position="15860" topLine="331" />
@ -51,9 +56,9 @@
<Cursor1 position="1160" topLine="45" /> <Cursor1 position="1160" topLine="45" />
</Cursor> </Cursor>
</File> </File>
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\main.c" open="1" top="1" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor> <Cursor>
<Cursor1 position="2691" topLine="35" /> <Cursor1 position="2693" topLine="35" />
</Cursor> </Cursor>
</File> </File>
<File name="..\startup_stm32f4xx.S" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0"> <File name="..\startup_stm32f4xx.S" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -23,6 +23,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -243,8 +255,8 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -297,7 +309,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -307,7 +319,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
} while ((token == 0xFF) && (TimerGet() < timeOutTime)); } while ((token == 0xFF) && (TimerGet() < timeOutTime));
if(token != 0xFE) return 0; /* If not valid data token, retutn with error */ if(token != 0xFE) return 0; /* If not valid data token, retutn with error */
do { /* Receive the data block into buffer */ do { /* Receive the data block into buffer */
rcvr_spi_m(buff++); rcvr_spi_m(buff++);
rcvr_spi_m(buff++); rcvr_spi_m(buff++);
@ -324,7 +336,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -353,7 +364,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -419,7 +429,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -487,10 +497,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -523,12 +533,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -557,7 +566,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -565,7 +573,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -663,26 +670,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -39,7 +39,7 @@
<Wnd0> <Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-6158-952</Identity> <Identity>TabID-6158-952</Identity>
@ -55,7 +55,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1> <SelectedTab>0</SelectedTab></Wnd3><Wnd4>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-16907-955</Identity> <Identity>TabID-16907-955</Identity>
@ -67,7 +67,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2> <SelectedTab>0</SelectedTab></Wnd4><Wnd5>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-27655-958</Identity> <Identity>TabID-27655-958</Identity>
@ -77,20 +77,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd2></Windows> <SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>76</YPos2><SelStart2>5954</SelStart2><SelEnd2>5954</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>36</YPos2><SelStart2>2831</SelStart2><SelEnd2>2831</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>225</YPos2><SelStart2>5481</SelStart2><SelEnd2>5481</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usbdesc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>424</YPos2><SelStart2>18098</SelStart2><SelEnd2>18098</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usb-ids.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>1320</SelStart2><SelEnd2>1320</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>698</SelStart2><SelEnd2>698</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>135</YPos2><SelStart2>5441</SelStart2><SelEnd2>5441</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>76</YPos2><SelStart2>5954</SelStart2><SelEnd2>5954</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>36</YPos2><SelStart2>2831</SelStart2><SelEnd2>2831</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>225</YPos2><SelStart2>5481</SelStart2><SelEnd2>5481</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usbdesc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>424</YPos2><SelStart2>18098</SelStart2><SelEnd2>18098</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usb-ids.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>1320</SelStart2><SelEnd2>1320</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>698</SelStart2><SelEnd2>698</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>135</YPos2><SelStart2>5441</SelStart2><SelEnd2>5441</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\fatfs\mmc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>206</YPos2><SelStart2>7889</SelStart2><SelEnd2>7889</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-02C17138><key>iaridepm.enu1</key></Toolbar-02C17138></Sizes></Row0><Row1><Sizes><Toolbar-09EB93F8><key>debuggergui.enu1</key></Toolbar-09EB93F8></Sizes></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>341</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>178646</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>741</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>737103</sizeVertCY></Rect></Wnd2></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>198413</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-0629A660><key>iaridepm.enu1</key></Toolbar-0629A660></Sizes></Row0><Row1><Sizes><Toolbar-0B76D828><key>debuggergui.enu1</key></Toolbar-0B76D828></Sizes></Row1></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>341</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>178646</sizeVertCX><sizeVertCY>736842</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>736842</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>104167</sizeVertCX><sizeVertCY>198610</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Project> </Project>

View File

@ -41,7 +41,7 @@ LMIFTDIserialNo=0D11005A
LMIFTDIfoundProbes= LMIFTDIfoundProbes=
LMI_LeaveTargetRunning=0x00000000 LMI_LeaveTargetRunning=0x00000000
[DebugChecksum] [DebugChecksum]
Checksum=-509141111 Checksum=-1186740258
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0

View File

@ -17,7 +17,7 @@
<Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1395</ColumnWidth1><ColumnWidth2>372</ColumnWidth2><ColumnWidth3>93</ColumnWidth3></Build><Find-All-Declarations><ColumnWidth0>142</ColumnWidth0><ColumnWidth1>20</ColumnWidth1><ColumnWidth2>243</ColumnWidth2></Find-All-Declarations><TerminalIO/><Debug-Log><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>371</ColumnWidth1></Debug-Log><Find-in-Files><ColumnWidth0>136</ColumnWidth0><ColumnWidth1>19</ColumnWidth1><ColumnWidth2>234</ColumnWidth2></Find-in-Files><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><ColumnWidth0>136</ColumnWidth0><ColumnWidth1>19</ColumnWidth1><ColumnWidth2>234</ColumnWidth2></Select-Ambiguous-Definitions></Static> <Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1395</ColumnWidth1><ColumnWidth2>372</ColumnWidth2><ColumnWidth3>93</ColumnWidth3></Build><Find-All-Declarations><ColumnWidth0>142</ColumnWidth0><ColumnWidth1>20</ColumnWidth1><ColumnWidth2>243</ColumnWidth2></Find-All-Declarations><TerminalIO/><Debug-Log><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>371</ColumnWidth1></Debug-Log><Find-in-Files><ColumnWidth0>136</ColumnWidth0><ColumnWidth1>19</ColumnWidth1><ColumnWidth2>234</ColumnWidth2></Find-in-Files><PROJECT_GUI_CALL_GRAPH><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><col-names><item>File</item><item>Function</item><item>Line</item></col-names><col-widths><item>200</item><item>700</item><item>100</item></col-widths></PROJECT_GUI_CALL_GRAPH><Select-Ambiguous-Definitions><ColumnWidth0>136</ColumnWidth0><ColumnWidth1>19</ColumnWidth1><ColumnWidth2>234</ColumnWidth2></Select-Ambiguous-Definitions></Static>
<Windows> <Windows>
<Wnd0> <Wnd2>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-23736-13759</Identity> <Identity>TabID-23736-13759</Identity>
@ -29,20 +29,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-11003-23003</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-13665-29690</Identity><TabName>Find All Declarations</TabName><Factory>Find-All-Declarations</Factory><Session/></Tab><Tab><Identity>TabID-2562-1429</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-23273-22207</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-14368-8233</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows> <SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-11003-23003</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-13665-29690</Identity><TabName>Find All Declarations</TabName><Factory>Find-All-Declarations</Factory><Session/></Tab><Tab><Identity>TabID-2562-1429</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-23273-22207</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-14368-8233</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>76</YPos2><SelStart2>5954</SelStart2><SelEnd2>5954</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>36</YPos2><SelStart2>2831</SelStart2><SelEnd2>2831</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>225</YPos2><SelStart2>5481</SelStart2><SelEnd2>5481</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usbdesc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>424</YPos2><SelStart2>18098</SelStart2><SelEnd2>18098</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usb-ids.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>1320</SelStart2><SelEnd2>1320</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>698</SelStart2><SelEnd2>698</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>135</YPos2><SelStart2>5441</SelStart2><SelEnd2>5441</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\blt_conf.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>76</YPos2><SelStart2>5954</SelStart2><SelEnd2>5954</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>36</YPos2><SelStart2>2846</SelStart2><SelEnd2>2846</SelEnd2></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\hooks.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>225</YPos2><SelStart2>5481</SelStart2><SelEnd2>5481</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usbdesc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>424</YPos2><SelStart2>18098</SelStart2><SelEnd2>18098</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\usb-ids.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>1320</SelStart2><SelEnd2>1320</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>698</SelStart2><SelEnd2>698</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\usblib\config\usb_bulk_structs.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>135</YPos2><SelStart2>5441</SelStart2><SelEnd2>5441</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\lib\fatfs\mmc.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>206</YPos2><SelStart2>7889</SelStart2><SelEnd2>7889</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-05DBA660><key>iaridepm.enu1</key></Toolbar-05DBA660></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>578</Bottom><Right>403</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>210938</sizeVertCX><sizeVertCY>575968</sizeVertCY></Rect></Wnd0><Wnd1><Rect><Top>0</Top><Left>0</Left><Bottom>6881384</Bottom><Right>7536751</Right><x>-2</x><y>576</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>210938</sizeVertCX><sizeVertCY>383317</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-0629A660><key>iaridepm.enu1</key></Toolbar-0629A660></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>578</Bottom><Right>403</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>210938</sizeVertCX><sizeVertCY>575968</sizeVertCY></Rect></Wnd2><Wnd3><Rect><Top>0</Top><Left>0</Left><Bottom>0</Bottom><Right>7</Right><x>-2</x><y>576</y><xscreen>1924</xscreen><yscreen>200</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>210938</sizeVertCX><sizeVertCY>383317</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes/></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

File diff suppressed because it is too large Load Diff

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013 / FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/----------------------------------------------------------------------------/ /---------------------------------------------------------------------------*/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations / Function Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */ #define _FS_READONLY 0
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ object instead of the sector buffer in the individual file object for file / Read-only configuration removes writing API functions, f_write(), f_sync(),
/ data transfer. This reduces memory consumption 512 bytes each file object. */ / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
/ and optional writing functions as well. */
#define _FS_READONLY 0 /* 0:Read/Write or 1:Read only */ #define _FS_MINIMIZE 0
/* Setting _FS_READONLY to 1 defines read only configuration. This removes /* This option defines minimization level to remove some basic API functions.
/ writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/ f_truncate and useless f_getfree. */
#define _FS_MINIMIZE 0 /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/ /
/ 0: Full function. / 0: All basic functions are enabled.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed. / are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1. / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */ / 3: f_lseek() function is removed in addition to 2. */
#define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */ #define _USE_STRFUNC 2 /* 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */ /* This option switches string functions, f_gets(), f_putc(), f_puts() and
/ f_printf().
/
/ 0: Disable string functions.
/ 1: Enable without LF-CRLF conversion.
/ 2: Enable with LF-CRLF conversion. */
#define _USE_MKFS 0 /* 0:Disable or 1:Enable */ #define _USE_FIND 0
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */ /* This option switches filtered directory read functions, f_findfirst() and
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
#define _USE_FASTSEEK 0 /* 0:Disable or 1:Enable */ #define _USE_MKFS 0
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */ /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */ #define _USE_FASTSEEK 0
/* To enable volume label functions, set _USE_LAVEL to 1 */ /* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */ #define _USE_EXPAND 0
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */ /* This option switches f_expand function. (0:Disable or 1:Enable) */
#define _USE_CHMOD 0
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
#define _USE_LABEL 0
/* This option switches volume label functions, f_getlabel() and f_setlabel().
/ (0:Disable or 1:Enable) */
#define _USE_FORWARD 0
/* This option switches f_forward() function. (0:Disable or 1:Enable)
/ To enable it, also _FS_TINY need to be 1. */
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations / Locale and Namespace Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _CODE_PAGE 437 #define _CODE_PAGE 437
/* The _CODE_PAGE specifies the OEM code page to be used on the target system. /* This option specifies the OEM code page to be used on the target system.
/ Incorrect setting of the code page can cause a file open failure. / Incorrect setting of the code page can cause a file open failure.
/ /
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows) / 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows) / 437 - U.S.
/ 949 - Korean (DBCS, OEM, Windows) / 720 - Arabic
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows) / 737 - Greek
/ 1250 - Central Europe (Windows) / 771 - KBL
/ 1251 - Cyrillic (Windows) / 775 - Baltic
/ 1252 - Latin 1 (Windows) / 850 - Latin 1
/ 1253 - Greek (Windows) / 852 - Latin 2
/ 1254 - Turkish (Windows) / 855 - Cyrillic
/ 1255 - Hebrew (Windows) / 857 - Turkish
/ 1256 - Arabic (Windows) / 860 - Portuguese
/ 1257 - Baltic (Windows) / 861 - Icelandic
/ 1258 - Vietnam (OEM, Windows) / 862 - Hebrew
/ 437 - U.S. (OEM) / 863 - Canadian French
/ 720 - Arabic (OEM) / 864 - Arabic
/ 737 - Greek (OEM) / 865 - Nordic
/ 775 - Baltic (OEM) / 866 - Russian
/ 850 - Multilingual Latin 1 (OEM) / 869 - Greek 2
/ 858 - Multilingual Latin 1 + Euro (OEM) / 932 - Japanese (DBCS)
/ 852 - Latin 2 (OEM) / 936 - Simplified Chinese (DBCS)
/ 855 - Cyrillic (OEM) / 949 - Korean (DBCS)
/ 866 - Russian (OEM) / 950 - Traditional Chinese (DBCS)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
*/ */
#define _USE_LFN 1 /* 0 to 3 */ #define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */ #define _MAX_LFN 255
/* The _USE_LFN option switches the LFN support. /* The _USE_LFN switches the support of long file name (LFN).
/ /
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect. / 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant. / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK. / 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP. / 3: Enable LFN with dynamic working buffer on the HEAP.
/ /
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN, / To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added / to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ to the project. When enable to use heap, memory control functions / additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ ff_memalloc() and ff_memfree() must be added to the project. */ / It should be set 255 to support full featured LFN operations.
/ When use stack for the working buffer, take care on stack overflow. When use heap
/ memory for the working buffer, memory management functions, ff_memalloc() and
/ ff_memfree(), must be added to the project. */
#define _LFN_UNICODE 0 /* 0:ANSI/OEM or 1:Unicode */ #define _LFN_UNICODE 0
/* To switch the character code set on FatFs API to Unicode, /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ enable LFN feature and set _LFN_UNICODE to 1. */ / To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
/ This option also affects behavior of string I/O functions. */
#define _FS_RPATH 0 /* 0 to 2 */ #define _STRF_ENCODE 3
/* The _FS_RPATH option configures relative path feature. /* When _LFN_UNICODE == 1, this option selects the character encoding on the file to
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
/ /
/ 0: Disable relative path feature and remove related functions. / 0: ANSI/OEM
/ 1: Enable relative path. f_chdrive() and f_chdir() are available. / 1: UTF-16LE
/ 2: f_getcwd() is available in addition to 1. / 2: UTF-16BE
/ 3: UTF-8
/ /
/ Note that output of the f_readdir fnction is affected by this option. */ / This option has no effect when _LFN_UNICODE == 0. */
#define _FS_RPATH 0
/* This option configures support of relative path.
/
/ 0: Disable relative path and remove related functions.
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
/ 2: f_getcwd() function is available in addition to 1.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ Physical Drive Configurations / Drive/Volume Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _VOLUMES 1 #define _VOLUMES 1
/* Number of volumes (logical drives) to be used. */ /* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */ #define _STR_VOLUME_ID 0
/* Maximum sector size to be handled. #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/ Always set 512 for memory card and hard disk but a larger value may be /* _STR_VOLUME_ID switches string support of volume ID.
/ required for on-board flash memory, floppy disk and optical disk. / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size / number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */ / logical drives. Number of items must be equal to _VOLUMES. Valid characters for
/ the drive ID strings are: A-Z and 0-9. */
#define _MULTI_PARTITION 0 /* 0:Single partition, 1:Enable multiple partition */ #define _MULTI_PARTITION 0
/* When set to 0, each volume is bound to the same physical drive number and /* This option switches support of multi-partition on a physical drive.
/ it can mount only first primaly partition. When it is set to 1, each volume / By default (0), each logical drive number is bound to the same physical drive
/ is tied to the partitions listed in VolToPart[]. */ / number and only an FAT volume found on the physical drive will be mounted.
/ When multi-partition is enabled (1), each logical drive number can be bound to
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
/ funciton will be available. */
#define _USE_ERASE 0 /* 0:Disable or 1:Enable */ #define _MIN_SS 512
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command #define _MAX_SS 512
/ should be added to the disk_ioctl functio. */ /* These options configure the range of sector size to be supported. (512, 1024,
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
/ harddisk. But a larger value may be required for on-board flash memory and some
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
/ disk_ioctl() function. */
#define _USE_TRIM 0
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
/ disk_ioctl() function. */
#define _FS_NOFSINFO 0
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
/ option, and f_getfree() function at first time after volume mount will force
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
/
/ bit0=0: Use free cluster count in the FSINFO if available.
/ bit0=1: Do not trust free cluster count in the FSINFO.
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
*/
/*---------------------------------------------------------------------------/ /*---------------------------------------------------------------------------/
/ System Configurations / System Configurations
/----------------------------------------------------------------------------*/ /---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */ #define _FS_TINY 0
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ option defines which access method is used to the word data on the FAT volume. / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS bytes.
/ Instead of private sector buffer eliminated from the file object, common sector
/ buffer in the file system object (FATFS) is used for the file data transfer. */
#define _FS_EXFAT 0
/* This option switches support of exFAT file system in addition to the traditional
/ FAT file system. (0:Disable or 1:Enable) To enable exFAT, also LFN must be enabled.
/ Note that enabling exFAT discards C89 compatibility. */
#define _FS_NORTC 1
#define _NORTC_MON 3
#define _NORTC_MDAY 1
#define _NORTC_YEAR 2016
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
/ To enable timestamp function (_FS_NORTC = 0), get_fattime() function need to be
/ added to the project to get current time form real-time clock. _NORTC_MON,
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
#define _FS_LOCK 0
/* The option _FS_LOCK switches file lock function to control duplicated file open
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
/ is 1.
/ /
/ 0: Byte-by-byte access. / 0: Disable file lock function. To avoid volume corruption, application program
/ 1: Word access. Do not choose this unless following condition is met. / should avoid illegal open, remove and rename to the open objects.
/ >0: Enable file lock function. The value defines how many files/sub-directories
/ can be opened simultaneously under file lock control. Note that the file
/ lock control is independent of re-entrancy. */
#define _FS_REENTRANT 0
#define _FS_TIMEOUT 1000
#define _SYNC_t HANDLE
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
/ to the same volume is under control of this function.
/ /
/ When the byte order on the memory is big-endian or address miss-aligned word / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0. / 1: Enable re-entrancy. Also user provided synchronization handlers,
/ If it is not the case, the value can also be set to 1 to improve the / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ performance and code size. / function, must be added to the project. Samples are available in
*/ / option/syscall.c.
/* A header file that defines sync object types on the O/S, such as
/ windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
#define _FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
#define _SYNC_t HANDLE /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/ /
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect. / The _FS_TIMEOUT defines timeout period in unit of time tick.
/ 1: Enable reentrancy. Also user provided synchronization handlers, / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ function must be added to the project. */ / included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */ /*--- End of configuration options ---*/
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
The value defines how many files can be opened simultaneously. */
#endif /* _FFCONFIG */

View File

@ -32,6 +32,18 @@
#include "boot.h" #include "boot.h"
/*--------------------------------------------------------------------------
Macro Definitions
---------------------------------------------------------------------------*/
/* MMC card type flags (MMC_GET_TYPE) */
#define CT_MMC 0x01 /* MMC ver 3 */
#define CT_SD1 0x02 /* SD ver 1 */
#define CT_SD2 0x04 /* SD ver 2 */
#define CT_SDC (CT_SD1|CT_SD2) /* SD */
#define CT_BLOCK 0x08 /* Block addressing */
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -219,7 +231,7 @@ static
int wait_ready (void) int wait_ready (void)
{ {
BYTE d; BYTE d;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 500 ms from now */ /* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500; timeOutTime = TimerGet() + 500;
@ -273,7 +285,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
) )
{ {
BYTE token; BYTE token;
ULONG timeOutTime; DWORD timeOutTime;
/* set timeout for 100 ms from now */ /* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100; timeOutTime = TimerGet() + 100;
@ -300,7 +312,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */ /* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
static static
int xmit_datablock ( /* 1:OK, 0:Failed */ int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */ const BYTE *buff, /* 512 byte data block to be transmitted */
@ -329,7 +340,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1; return 1;
} }
#endif
@ -395,7 +405,7 @@ DSTATUS disk_initialize (
) )
{ {
BYTE n, cmd, ty, ocr[4]; BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime; DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */ if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -463,10 +473,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
DRESULT disk_read ( DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Pointer to the data buffer to store read data */ BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to read */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -499,12 +509,11 @@ DRESULT disk_read (
/* Write Sector(s) */ /* Write Sector(s) */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write ( DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Pointer to the data to be written */ const BYTE *buff, /* Data to be written */
DWORD sector, /* Start sector number (LBA) */ DWORD sector, /* Sector address in LBA */
BYTE count /* Sector count (1..255) */ UINT count /* Number of sectors to write */
) )
{ {
if (pdrv || !count) return RES_PARERR; if (pdrv || !count) return RES_PARERR;
@ -533,7 +542,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK; return count ? RES_ERROR : RES_OK;
} }
#endif
@ -541,7 +549,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */ /* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl ( DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */ BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */ BYTE cmd, /* Control code */
@ -623,7 +630,7 @@ DRESULT disk_ioctl (
} }
break; break;
case MMC_GET_SDSTAT : /* Receive SD statsu as a data block (64 bytes) */ case MMC_GET_SDSTAT : /* Receive SD status as a data block (64 bytes) */
if ((CardType & CT_SD2) && send_cmd(ACMD13, 0) == 0) { /* SD_STATUS */ if ((CardType & CT_SD2) && send_cmd(ACMD13, 0) == 0) { /* SD_STATUS */
xchg_spi(0xFF); xchg_spi(0xFF);
if (rcvr_datablock(buff, 64)) if (rcvr_datablock(buff, 64))
@ -639,27 +646,6 @@ DRESULT disk_ioctl (
return res; return res;
} }
#endif
/*---------------------------------------------------------*/
/* User Provided Timer Function for FatFs module */
/*---------------------------------------------------------*/
/* This is a real time clock service to be called from */
/* FatFs module. Any valid time must be returned even if */
/* the system does not support a real time clock. */
/* This is not required in read-only configuration. */
DWORD get_fattime (void)
{
/* No RTC supprt. Return a fixed value 2013/5/10 0:00:00 */
return ((DWORD)(2013 - 1980) << 25) /* Y */
| ((DWORD)5 << 21) /* M */
| ((DWORD)10 << 16) /* D */
| ((DWORD)0 << 11) /* H */
| ((DWORD)0 << 5) /* M */
| ((DWORD)0 >> 1); /* S */
}

View File

@ -13,7 +13,7 @@ SECTIONS
__FLASH_segment_start__ = 0x00000000; __FLASH_segment_start__ = 0x00000000;
__FLASH_segment_end__ = 0x00008000; __FLASH_segment_end__ = 0x00008000;
__STACKSIZE__ = 512; __STACKSIZE__ = 2048;
__STACKSIZE_PROCESS__ = 0; __STACKSIZE_PROCESS__ = 0;
__STACKSIZE_IRQ__ = 0; __STACKSIZE_IRQ__ = 0;
__STACKSIZE_FIQ__ = 0; __STACKSIZE_FIQ__ = 0;

View File

@ -6,7 +6,7 @@ MEMORY
SECTIONS SECTIONS
{ {
__STACKSIZE__ = 512; __STACKSIZE__ = 2048;
.text : .text :
{ {

View File

@ -6,7 +6,7 @@ define symbol __ICFEDIT_region_ROM_end__ = 0x00007FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF;
/*-Sizes-*/ /*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200; define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x100; define symbol __ICFEDIT_size_heap__ = 0x100;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/

View File

@ -6,7 +6,7 @@ define symbol __ICFEDIT_region_ROM_end__ = 0x08005FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF;
/*-Sizes-*/ /*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x800; define symbol __ICFEDIT_size_heap__ = 0x800;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/

View File

@ -30,7 +30,7 @@
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h> ; </h>
Stack_Size EQU 0x00000400 Stack_Size EQU 0x00000800
AREA STACK, NOINIT, READWRITE, ALIGN=3 AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size Stack_Mem SPACE Stack_Size

View File

@ -6,7 +6,7 @@ define symbol __ICFEDIT_region_ROM_end__ = 0x00007FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF; define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF;
/*-Sizes-*/ /*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200; define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x100; define symbol __ICFEDIT_size_heap__ = 0x100;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/

View File

@ -114,7 +114,7 @@ void FileInit(void)
/* set the initial state */ /* set the initial state */
firmwareUpdateState = FIRMWARE_UPDATE_STATE_IDLE; firmwareUpdateState = FIRMWARE_UPDATE_STATE_IDLE;
/* mount the file system, using logical disk 0 */ /* mount the file system, using logical disk 0 */
fresult = f_mount(0, &fatFsObjects.fs); fresult = f_mount(&fatFsObjects.fs, "0:", 0);
/* mounting does not access the disk and should succeed unless misconfigured */ /* mounting does not access the disk and should succeed unless misconfigured */
ASSERT_RT(fresult == FR_OK); ASSERT_RT(fresult == FR_OK);
} /*** end of FileInit ***/ } /*** end of FileInit ***/

View File

@ -1,11 +1,13 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en"> <html lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Style-Type" content="text/css">
<meta name="description" content="Open source FAT file system module for embedded projects"> <meta http-equiv="cache-control" content="no-cache">
<meta name="description" content="Open source FAT file system for embedded projects">
<link rel="start" title="Site Top" href="../../"> <link rel="start" title="Site Top" href="../../">
<link rel="up" title="Freewares" href="../../fsw_e.html"> <link rel="up" title="Freewares" href="../../fsw_e.html">
<link rel="alternate" hreflang="en" title="Original" href="http://elm-chan.org/fsw/ff/00index_e.html">
<link rel="alternate" hreflang="ja" title="Japanese version" href="00index_j.html"> <link rel="alternate" hreflang="ja" title="Japanese version" href="00index_j.html">
<link rel="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default"> <link rel="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs - Generic FAT File System Module</title> <title>FatFs - Generic FAT File System Module</title>
@ -17,21 +19,22 @@
<div class="abst"> <div class="abst">
<img src="img/layers.png" class="rset" width="245" height="255" alt="layer"> <img src="img/layers.png" class="rset" width="245" height="255" alt="layer">
<p>FatFs is a generic FAT file system module for small embedded systems. The FatFs is written in compliance with ANSI C and completely separated from the disk I/O layer. Therefore it is independent of hardware architecture. It can be incorporated into low cost microcontrollers, such as AVR, 8051, PIC, ARM, Z80, 68k and etc..., without any change. Petit FatFs module is also available <a href="http://elm-chan.org/fsw/ff/00index_p.html">here</a>.</p> <p>FatFs is a generic FAT file system module for small embedded systems. The FatFs module is written in compliance with ANSI C (C89) and completely separated from the disk I/O layer. Therefore it is independent of the platform. It can be incorporated into small microcontrollers with limited resource, such as 8051, PIC, AVR, ARM, Z80, 78K and etc. Also Petit FatFs module for tiny microcontrollers is available <a href="http://elm-chan.org/fsw/ff/00index_p.html">here</a>.</p>
<h4>Features</h4> <h4>Features</h4>
<ul> <ul>
<li>Windows compatible FAT file system.</li> <li>Windows compatible FAT/exFAT file system.</li>
<li>Platform independent. Easy to port.</li> <li>Platform independent. Easy to port.</li>
<li>Very small footprint for code and work area.</li> <li>Very small footprint for code and work area.</li>
<li>Various configuration options: <li>Various <a href="en/config.html">configuration options</a> to support for:
<ul> <ul>
<li>Multiple volumes (physical drives and partitions).</li> <li>Multiple volumes (physical drives and partitions).</li>
<li>Multiple ANSI/OEM code pages including DBCS.</li> <li>Multiple ANSI/OEM code pages including DBCS.</li>
<li>Long file name support in ANSI/OEM or Unicode.</li> <li>Long file name in ANSI/OEM or Unicode.</li>
<li>RTOS support.</li> <li>exFAT file system.</li>
<li>Multiple sector size support.</li> <li>RTOS envilonment.</li>
<li>Read-only, minimized API, I/O buffer and etc...</li> <li>Fixed or variable sector size.</li>
<li>Read-only, optional API, I/O buffer and etc...</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -40,55 +43,76 @@
<div class="para"> <div class="para">
<h3>Application Interface</h3> <h3>Application Interface</h3>
<p>FatFs module provides following functions to the applications. In other words, this list describes what FatFs can do to access the FAT volumes.</p> <img src="img/layers1.png" class="rset" width="245" height="220" alt="layer">
<ul> <ul>
<li><a href="en/mount.html">f_mount</a> - Register/Unregister a work area</li> <li>File Access
<li><a href="en/open.html">f_open</a> - Open/Create a file</li> <ul>
<li><a href="en/close.html">f_close</a> - Close a file</li> <li><a href="en/open.html">f_open</a> - Open/Create a file</li>
<li><a href="en/read.html">f_read</a> - Read file</li> <li><a href="en/close.html">f_close</a> - Close an open file</li>
<li><a href="en/write.html">f_write</a> - Write file</li> <li><a href="en/read.html">f_read</a> - Read data</li>
<li><a href="en/lseek.html">f_lseek</a> - Move read/write pointer, Expand file size</li> <li><a href="en/write.html">f_write</a> - Write data</li>
<li><a href="en/truncate.html">f_truncate</a> - Truncate file size</li> <li><a href="en/lseek.html">f_lseek</a> - Move read/write pointer, Expand size</li>
<li><a href="en/sync.html">f_sync</a> - Flush cached data</li> <li><a href="en/truncate.html">f_truncate</a> - Truncate size</li>
<li><a href="en/opendir.html">f_opendir</a> - Open a directory</li> <li><a href="en/sync.html">f_sync</a> - Flush cached data</li>
<li><a href="en/readdir.html">f_readdir</a> - Read a directory item</li> <li><a href="en/forward.html">f_forward</a> - Forward data to the stream</li>
<li><a href="en/getfree.html">f_getfree</a> - Get free clusters</li> <li><a href="en/expand.html">f_expand</a> - Allocate a contiguous block to the file</li>
<li><a href="en/stat.html">f_stat</a> - Get file status</li> <li><a href="en/gets.html">f_gets</a> - Read a string</li>
<li><a href="en/mkdir.html">f_mkdir</a> - Create a directory</li> <li><a href="en/putc.html">f_putc</a> - Write a character</li>
<li><a href="en/unlink.html">f_unlink</a> - Remove a file or directory</li> <li><a href="en/puts.html">f_puts</a> - Write a string</li>
<li><a href="en/chmod.html">f_chmod</a> - Change attribute</li> <li><a href="en/printf.html">f_printf</a> - Write a formatted string</li>
<li><a href="en/utime.html">f_utime</a> - Change timestamp</li> <li><a href="en/tell.html">f_tell</a> - Get current read/write pointer</li>
<li><a href="en/rename.html">f_rename</a> - Rename/Move a file or directory</li> <li><a href="en/eof.html">f_eof</a> - Test for end-of-file</li>
<li><a href="en/chdir.html">f_chdir</a> - Change current directory</li> <li><a href="en/size.html">f_size</a> - Get size</li>
<li><a href="en/chdrive.html">f_chdrive</a> - Change current drive</li> <li><a href="en/error.html">f_error</a> - Test for an error</li>
<li><a href="en/getcwd.html">f_getcwd</a> - Retrieve the current directory</li> </ul>
<li><a href="en/getlabel.html">f_getlabel</a> - Get volume label</li> </li>
<li><a href="en/setlabel.html">f_setlabel</a> - Set volume label</li> <li>Directory Access
<li><a href="en/forward.html">f_forward</a> - Forward file data to the stream directly</li> <ul>
<li><a href="en/mkfs.html">f_mkfs</a> - Create a file system on the drive</li> <li><a href="en/opendir.html">f_opendir</a> - Open a directory</li>
<li><a href="en/fdisk.html">f_fdisk</a> - Divide a physical drive</li> <li><a href="en/closedir.html">f_closedir</a> - Close an open directory</li>
<li><a href="en/gets.html">f_gets</a> - Read a string</li> <li><a href="en/readdir.html">f_readdir</a> - Read an directory item</li>
<li><a href="en/putc.html">f_putc</a> - Write a character</li> <li><a href="en/findfirst.html">f_findfirst</a> - Open a directory and read first item matched</li>
<li><a href="en/puts.html">f_puts</a> - Write a string</li> <li><a href="en/findnext.html">f_findnext</a> - Read a next item matched</li>
<li><a href="en/printf.html">f_printf</a> - Write a formatted string</li> </ul>
<li><a href="en/tell.html">f_tell</a> - Get the current read/write pointer</li> </li>
<li><a href="en/eof.html">f_eof</a> - Test for end-of-file on a file</li> <li>File/Directory Management
<li><a href="en/size.html">f_size</a> - Get size of a file</li> <ul>
<li><a href="en/error.html">f_error</a> - Test for an error on a file</li> <li><a href="en/stat.html">f_stat</a> - Check existance of a file or sub-directory</li>
<li><a href="en/unlink.html">f_unlink</a> - Remove a file or sub-directory</li>
<li><a href="en/rename.html">f_rename</a> - Rename or move a file or sub-directory</li>
<li><a href="en/chmod.html">f_chmod</a> - Change attribute of a file or sub-directory</li>
<li><a href="en/utime.html">f_utime</a> - Change timestamp of a file or sub-directory</li>
<li><a href="en/mkdir.html">f_mkdir</a> - Create a sub-directory</li>
<li><a href="en/chdir.html">f_chdir</a> - Change current directory</li>
<li><a href="en/chdrive.html">f_chdrive</a> - Change current drive</li>
<li><a href="en/getcwd.html">f_getcwd</a> - Retrieve the current directory and drive</li>
</ul>
</li>
<li>Volume Management
<ul>
<li><a href="en/mount.html">f_mount</a> - Register/Unregister a work area of a volume</li>
<li><a href="en/mkfs.html">f_mkfs</a> - Create an FAT volume on the logical drive</li>
<li><a href="en/fdisk.html">f_fdisk</a> - Create logical drives on the physical drive</li>
<li><a href="en/getfree.html">f_getfree</a> - Get total size and free size on the volume</li>
<li><a href="en/getlabel.html">f_getlabel</a> - Get volume label</li>
<li><a href="en/setlabel.html">f_setlabel</a> - Set volume label</li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="para"> <div class="para">
<h3>Disk I/O Interface</h3> <h3>Device Control Interface</h3>
<p>Since the FatFs module is completely separated from disk I/O layer, it requires following functions at least to access the physical media. When O/S related feature is enabled, it will require process/memory functions in addition. However the low level disk I/O module is not a part of FatFs module, so that it must be provided by user. The sample drivers are also available in the resources.</p> <img src="img/layers2.png" class="rset" width="245" height="220" alt="layer">
<p>Since the FatFs module is a file system layer, it is completely separated from the physical devices, such as memory card, harddisk and any type of storage device. FatFs accesses the storage devices via a simple interface shown below. The low level device control module is <em>not a part of FatFs module</em>. It is provided by implementer. Also sample implementations for some platforms are available in the downloads.</p>
<ul> <ul>
<li><a href="en/dinit.html">disk_initialize</a> - Initialize disk drive</li> <li><a href="en/dstat.html">disk_status</a> - Get device status</li>
<li><a href="en/dstat.html">disk_status</a> - Get disk status</li> <li><a href="en/dinit.html">disk_initialize</a> - Initialize device</li>
<li><a href="en/dread.html">disk_read</a> - Read sector(s)</li> <li><a href="en/dread.html">disk_read</a> - Read sector(s)</li>
<li><a href="en/dwrite.html">disk_write</a> - Write sector(s)</li> <li><a href="en/dwrite.html">disk_write</a> - Write sector(s)</li>
<li><a href="en/dioctl.html">disk_ioctl</a> - Control device dependent features</li> <li><a href="en/dioctl.html">disk_ioctl</a> - Control device dependent functions</li>
<li><a href="en/fattime.html">get_fattime</a> - Get current time</li> <li><a href="en/fattime.html">get_fattime</a> - Get current time</li>
</ul> </ul>
</div> </div>
@ -97,11 +121,25 @@
<h3>Resources</h3> <h3>Resources</h3>
<p>The FatFs module is a free software opened for education, research and development. You can use, modify and/or redistribute it for personal projects or commercial products without any restriction under your responsibility. For further information, refer to the application note.</p> <p>The FatFs module is a free software opened for education, research and development. You can use, modify and/or redistribute it for personal projects or commercial products without any restriction under your responsibility. For further information, refer to the application note.</p>
<ul> <ul>
<li><a href="http://elm-chan.org/fsw/ff/bd/"><em>FatFs User Forum</em></a></li> <li>Read first: <a href="en/appnote.html">FatFs module application note</a> <span class="mfd">April 12, 2016</span></li>
<li>Read first: <a href="en/appnote.html">FatFs module application note</a> <span class="mfd">April 20, 2013</span></li> <li>Download: <a href="ff12.zip">FatFs R0.12</a> | <a href="updates.txt">Updates</a> | <a href="patches.html">Patches</a> <span class="mfd">April 12, 2016</span></li>
</ul> <li>Download: <a href="ffsample.zip">FatFs sample projects for various platforms</a> <span class="mfd">April 12, 2016</span></li>
<li>Download: <a href="archives.html">Old Releases</a></li>
<li>Community: <a href="http://elm-chan.org/fsw/ff/bd/">FatFs User Forum</a></li>
<li><a href="https://msdn.microsoft.com/en-us/windows/hardware/gg463080.aspx">FAT32 Specification by Microsoft</a>↗ (The authorized document on FAT file system)</li>
<li><a href="http://elm-chan.org/docs/fat.html">The basics of FAT file system [ja]</a></li>
<li><a href="http://elm-chan.org/docs/mmc/mmc_e.html">How to Use MMC/SDC</a></li>
<li><a href="http://elm-chan.org/junk/fa/faff.html">Playing with FlashAir and FatFs</a></li>
<li><a href="http://stm32f4-discovery.com/2014/07/library-21-read-sd-card-fatfs-stm32f4xx-devices/">Read SD card with FatFs on STM32F4xx devices by Tilen Majerle</a>↗ (Quick and easy implementation for STM32F4-Discovery)</li>
<li><a href="http://nemuisan.blog.bai.ne.jp/">Nemuisan's Blog</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)</li>
<li><a href="http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html">ARM-Projects by Martin THOMAS</a>↗ (Examples for LPC2000, AT91SAM and STM32)</li>
<li><a href="img/rwtest1.png">Benchmark 1</a> (ATmega1284/20MHz with MMC via USART in SPI, CFC via GPIO)</li>
<li><a href="img/rwtest2.png">Benchmark 2</a> (LPC2368/72MHz with MMC via MCI)</li>
<li><a href="rc/fd.mp4">Demo movie of an application</a> (this project is in ffsample.zip/lpc23xx)</li></ul>
</div> </div>
<hr>
<p class="foot"><a href="../../fsw_e.html">Return</a></p>
</body> </body>
</html> </html>

View File

@ -1,36 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja"> <html lang="ja">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Style-Type" content="text/css">
<meta name="description" content="組み込みシステム向け汎用FATファイル・システム"> <meta http-equiv="cache-control" content="no-cache">
<meta name="description" content="組み込みシステム向け汎用FATファイルシステム">
<link rel="start" title="Site Top" href="../../index_j.html"> <link rel="start" title="Site Top" href="../../index_j.html">
<link rel="up" title="Freewares" href="../../fsw.html"> <link rel="up" title="Freewares" href="../../fsw.html">
<link rel="alternate" hreflang="en" title="英文" href="00index_e.html"> <link rel="alternate" hreflang="ja" title="オリジナル版" href="http://elm-chan.org/fsw/ff/00index_j.html">
<link rel="alternate" hreflang="en" title="英文版" href="00index_e.html">
<link rel="stylesheet" href="css_j.css" type="text/css" media="screen" title="ELM Default"> <link rel="stylesheet" href="css_j.css" type="text/css" media="screen" title="ELM Default">
<title>ELM - FatFs 汎用FATファイルシステム・モジュール</title> <title>FatFs 汎用FATファイルシステム モジュール</title>
</head> </head>
<body> <body>
<h1>FatFs 汎用FATファイルシステムモジュール</h1> <h1>FatFs 汎用FATファイルシステム モジュール</h1>
<hr> <hr>
<div class="abst"> <div class="abst">
<img src="img/layers.png" class="rset" width="245" height="255" alt="layer"> <img src="img/layers.png" class="rset" width="245" height="255" alt="layer">
<p>FatFsは小規模な組み込みシステム向けの汎用FATファイルシステム・モジュールです。ANSI C準拠でハードウェア・アーキテクチャには依存しないので、必要なワーク・エリアが確保できれば、8051, PIC, AVR, SH, Z80, 68k, H8, ARMなど安価なマイコンでも使用可能です。FatFsをシュリンクした<a href="http://elm-chan.org/fsw/ff/00index_p.html">ぷちFatFs</a>もあります。</p> <p>FatFsは小規模な組み込みシステム向けの汎用FATファイルシステム モジュールです。ANSI C(C89)準拠でハードウェア アーキテクチャには依存しないので、必要なワーク エリアが確保できれば、8051, PIC, AVR, SH, Z80, 68k, H8, ARMなど安価なマイコンでも使用可能です。このほか、FatFsを極小マイコン向けにシュリンクした<a href="http://elm-chan.org/fsw/ff/00index_p.html">ぷちFatFs</a>もあります。</p>
<h4>FatFsモジュールの特徴</h4> <h4>FatFsモジュールの特徴</h4>
<ul> <ul>
<li>Windows互換 FATファイル・システム</li> <li>Windows互換 FAT/exFATファイル システム</li>
<li>プラットフォーム非依存</li> <li>プラットフォーム非依存</li>
<li>コンパクトなコードとRAM使用量</li> <li>コンパクトなコードとRAM使用量</li>
<li>多くの構成オプション: <li>多くの<a href="ja/config.html">構成オプション</a>:
<ul> <ul>
<li>複数のボリューム(物理ドライブ・区画)</li> <li>ボリューム構成(物理ドライブ数・区画)</li>
<li>DBCSを含む複数のANSI/OEMコード・ページ</li> <li>DBCSを含む複数のANSI/OEMコード ページの選択</li>
<li>長いファイル名(LFN) (Unicode APIも選択可)</li> <li>長いファイル名(LFN)への対応</li>
<li>マルチタスク関連</li> <li>exFATファイルシステムへの対応</li>
<li>マルチ・セクタ・サイズ</li> <li>RTOS環境への対応</li>
<li>リード・オンリー構成、一部APIの削除、バッファ構成、その他…</li> <li>セクタ サイズ(固定/可変)</li>
<li>リード オンリー構成、一部APIの削除、バッファ構成、その他…</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -38,69 +41,105 @@
<div class="para"> <div class="para">
<h3>上位レイヤインターフェース</h3> <h3>上位レイヤ インターフェース</h3>
<p>FatFsモジュールは、アプリケーション・レイヤに対し、次のファイル操作関数(API)を提供します。つまり、このリストはFatFsにできることをシンプルに示しています。</p> <img src="img/layers1.png" class="rset" width="245" height="220" alt="layer">
<ul> <ul>
<li><a href="ja/mount.html">f_mount</a> - ワークエリアの登録・削除</li> <li>ファイル アクセス
<li><a href="ja/open.html">f_open</a> - ファイルのオープン・作成</li> <ul>
<li><a href="ja/close.html">f_close</a> - ファイルのクローズ</li> <li><a href="ja/open.html">f_open</a> - ファイルのオープン・作成</li>
<li><a href="ja/read.html">f_read</a> - ファイルの読み出し</li> <li><a href="ja/close.html">f_close</a> - ファイルのクローズ</li>
<li><a href="ja/write.html">f_write</a> - ファイルの書き込み</li> <li><a href="ja/read.html">f_read</a> - データの読み出し</li>
<li><a href="ja/lseek.html">f_lseek</a> - リード/ライト・ポインタの移動, ファイルの拡張</li> <li><a href="ja/write.html">f_write</a> - データの書き込み</li>
<li><a href="ja/truncate.html">f_truncate</a> - ファイル・サイズの切り詰め</li> <li><a href="ja/lseek.html">f_lseek</a> - リード/ライト ポインタの移動, サイズの拡張</li>
<li><a href="ja/sync.html">f_sync</a> - キャッシュされたデータのフラッシュ</li> <li><a href="ja/truncate.html">f_truncate</a> - サイズの切り詰め</li>
<li><a href="ja/opendir.html">f_opendir</a> - ディレクトリのオープン</li> <li><a href="ja/sync.html">f_sync</a> - キャッシュされたデータのフラッシュ</li>
<li><a href="ja/readdir.html">f_readdir</a> - ディレクトリの読み出し</li> <li><a href="ja/forward.html">f_forward</a> - データをストリーム関数に転送</li>
<li><a href="ja/getfree.html">f_getfree</a> - ボリューム空き領域の取得</li> <li><a href="ja/expand.html">f_expand</a> - 連続領域の割り当て</li>
<li><a href="ja/stat.html">f_stat</a> - ファイル・ステータスの取得</li> <li><a href="ja/gets.html">f_gets</a> - 文字列の読み出し</li>
<li><a href="ja/mkdir.html">f_mkdir</a> - ディレクトリの作成</li> <li><a href="ja/putc.html">f_putc</a> - 文字の書き込み</li>
<li><a href="ja/unlink.html">f_unlink</a> - ファイル/ディレクトリの削除</li> <li><a href="ja/puts.html">f_puts</a> - 文字列の書き込み</li>
<li><a href="ja/chmod.html">f_chmod</a> - ファイル/ディレクトリの属性の変更</li> <li><a href="ja/printf.html">f_printf</a> - 書式化文字列の書き込み</li>
<li><a href="ja/utime.html">f_utime</a> - ファイル/ディレクトリのタイムスタンプの変更</li> <li><a href="ja/tell.html">f_tell</a> - リード/ライト ポインタの取得</li>
<li><a href="ja/rename.html">f_rename</a> - ファイル/ディレクトリの名前変更・移動</li> <li><a href="ja/eof.html">f_eof</a> - 終端の有無の取得</li>
<li><a href="ja/chdir.html">f_chdir</a> - カレント・ディレクトリの変更</li> <li><a href="ja/size.html">f_size</a> - サイズの取得</li>
<li><a href="ja/chdrive.html">f_chdrive</a> - カレント・ドライブの変更</li> <li><a href="ja/error.html">f_error</a> - エラーの有無の取得</li>
<li><a href="ja/getcwd.html">f_getcwd</a> - カレント・ディレクトリの取得</li> </ul>
<li><a href="ja/getlabel.html">f_getlabel</a> - ボリューム・ラベルの取得</li> </li>
<li><a href="ja/setlabel.html">f_setlabel</a> - ボリューム・ラベルの設定</li> <li>ディレクトリ アクセス
<li><a href="ja/forward.html">f_forward</a> - ファイル・データをストリーム関数に転送</li> <ul>
<li><a href="ja/mkfs.html">f_mkfs</a> - 論理ドライブのフォーマット</li> <li><a href="ja/opendir.html">f_opendir</a> - ディレクトリのオープン</li>
<li><a href="ja/fdisk.html">f_fdisk</a> - 物理ドライブの分割</li> <li><a href="ja/closedir.html">f_closedir</a> - ディレクトリのクローズ</li>
<li><a href="ja/gets.html">f_gets</a> - 文字列の読み出し</li> <li><a href="ja/readdir.html">f_readdir</a> - 項目の読み出し</li>
<li><a href="ja/putc.html">f_putc</a> - 文字の書き込み</li> <li><a href="ja/findfirst.html">f_findfirst</a> - ディレクトリのオープンと最初の検索項目の読み出し</li>
<li><a href="ja/puts.html">f_puts</a> - 文字列の書き込み</li> <li><a href="ja/findnext.html">f_findnext</a> - 次の検索項目の読み出し</li>
<li><a href="ja/printf.html">f_printf</a> - 書式化文字列の書き込み</li> </ul>
<li><a href="ja/tell.html">f_tell</a> - 現在のリード/ライト・ポインタの取得</li> </li>
<li><a href="ja/eof.html">f_eof</a> - ファイル終端の有無の取得</li> <li>ファイル/ディレクトリ管理
<li><a href="ja/size.html">f_size</a> - ファイル・サイズの取得</li> <ul>
<li><a href="ja/error.html">f_error</a> - ファイルのエラーの有無の取得</li> <li><a href="ja/stat.html">f_stat</a> - ファイル/サブ ディレクトリの存在チェックと情報の取得</li>
<li><a href="ja/unlink.html">f_unlink</a> - ファイル/サブ ディレクトリの削除</li>
<li><a href="ja/rename.html">f_rename</a> - ファイル/サブ ディレクトリの名前の変更・移動</li>
<li><a href="ja/chmod.html">f_chmod</a> - ファイル/サブ ディレクトリの属性の変更</li>
<li><a href="ja/utime.html">f_utime</a> - ファイル/サブ ディレクトリのタイムスタンプの変更</li>
<li><a href="ja/mkdir.html">f_mkdir</a> - サブ ディレクトリの作成</li>
<li><a href="ja/chdir.html">f_chdir</a> - カレント ディレクトリの変更</li>
<li><a href="ja/chdrive.html">f_chdrive</a> - カレント ドライブの変更</li>
<li><a href="ja/getcwd.html">f_getcwd</a> - カレント ディレクトリの取得</li>
</ul>
</li>
<li>ボリューム管理
<ul>
<li><a href="ja/mount.html">f_mount</a> - ボリューム ワーク エリアの登録・抹消</li>
<li><a href="ja/mkfs.html">f_mkfs</a> - 論理ドライブ上にFATボリュームを作成</li>
<li><a href="ja/fdisk.html">f_fdisk</a> - 物理ドライブ上に複数の論理ドライブを作成</li>
<li><a href="ja/getfree.html">f_getfree</a> - ボリュームのサイズと空きサイズの取得</li>
<li><a href="ja/getlabel.html">f_getlabel</a> - ボリューム ラベルの取得</li>
<li><a href="ja/setlabel.html">f_setlabel</a> - ボリューム ラベルの設定</li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="para"> <div class="para">
<h3>下位レイヤ・インターフェース</h3> <h3>下位レイヤ インターフェース</h3>
<p>FatFsモジュールは、単なるファイル・システム・レイヤなので、メディア制御レイヤは含まれません。使用するメディアに対応した制御関数は、ユーザによって提供される必要があります。FatFsモジュールは、下位レイヤに対し少なくとも次のインターフェースを要求します。OS関連機能を有効にしたときは、加えてプロセス/メモリ関連関数も必要になります。サンプル・プロジェクトに下位レイヤの実装例を示します。</p> <img src="img/layers2.png" class="rset" width="245" height="220" alt="layer">
<p>FatFsモジュールは、単なるファイル システム レイヤなので、その下位に当たるストレージ デバイス制御レイヤは含まれません。プラットフォームやストレージ デバイスに対応した制御レイヤは、インプリメンタによって提供される必要があります。FatFsモジュールは、下位レイヤに対し標準的には次のインターフェースを要求します。一部の拡張機能、たとえばOS関連機能を有効にしたときは、加えてプロセス/メモリ操作関数なども必要になります。サンプル プロジェクトに下位レイヤの実装例を示します。</p>
<ul> <ul>
<li><a href="ja/dinit.html">disk_initialize</a> - ドライブの初期化</li> <li><a href="ja/dstat.html">disk_status</a> - デバイスの状態取得</li>
<li><a href="ja/dstat.html">disk_status</a> - ドライブの状態取得</li> <li><a href="ja/dinit.html">disk_initialize</a> - デバイスの初期化</li>
<li><a href="ja/dread.html">disk_read</a> - データの読み出し</li> <li><a href="ja/dread.html">disk_read</a> - データの読み出し</li>
<li><a href="ja/dwrite.html">disk_write</a> - データの書き込み</li> <li><a href="ja/dwrite.html">disk_write</a> - データの書き込み</li>
<li><a href="ja/dioctl.html">disk_ioctl</a> - その他のドライブ制御</li> <li><a href="ja/dioctl.html">disk_ioctl</a> - その他のデバイス制御</li>
<li><a href="ja/fattime.html">get_fattime</a> - 日付・時刻の取得</li> <li><a href="ja/fattime.html">get_fattime</a> - 日付・時刻の取得</li>
</ul> </ul>
</div> </div>
<div class="para"> <div class="para">
<h3>資料</h3> <h3>資料</h3>
<p>FatFsモジュールはフリーソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーションノートを参照してください。</p> <p>FatFsモジュールはフリー ソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーション ノートを参照してください。</p>
<ul> <ul>
<li><a href="http://elm-chan.org/fsw/ff/bd/"><em>FatFsユーザ・フォーラム</em></a></li> <li>最初に読め: <a href="ja/appnote.html">FatFsモジュール アプリケーション ノート</a> <span class="mfd">2016. 4. 12</span></li>
<li>最初に読め: <a href="ja/appnote.html">FatFsモジュール・アプリケーション・ート</a> <span class="mfd">2013. 4. 20</span></li> <li>ダウンロード: <a href="ff12.zip">FatFs R0.12</a> | <a href="updates.txt">変更点</a> | <a href="patches.html">パッチ</a> <span class="mfd">2016. 4. 12</span></li>
<li>ダウンロード: <a href="ffsample.zip">サンプル プロジェクト</a> <span class="mfd">2016. 4. 12</span></li>
<li>ダウンロード: <a href="archives.html">旧バージョン</a></li>
<li>コミュニティ: <a href="http://elm-chan.org/fsw/ff/bd/">FatFsユーザ フォーラム</a></li>
<li><a href="https://msdn.microsoft.com/en-us/windows/hardware/gg463080.aspx">FATファイルシステム仕様 by Microsoft</a>↗ (The reference document on FAT file system)</li>
<li><a href="http://elm-chan.org/docs/fat.html">FATファイルシステム概要</a> (↑を読むためのガイド)</li>
<li><a href="http://elm-chan.org/docs/mmc/mmc.html">MMCの使いかた</a></li>
<li><a href="http://elm-chan.org/junk/fa/faff.html">FlashAirとFatFs [ja]</a></li>
<li><a href="http://stm32f4-discovery.com/2014/07/library-21-read-sd-card-fatfs-stm32f4xx-devices/">Read SD card with FatFs on STM32F4xx devices by Tilen Majerle</a>↗ (Quick and easy implementation for STM32F4-Discovery)</li>
<li><a href="http://nemuisan.blog.bai.ne.jp/">ねむいさんのぶろぐ</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)</li>
<li><a href="http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html">ARM-Projects by Martin THOMAS</a>↗ (Examples for LPC2000, AT91SAM and STM32)</li>
<li><a href="img/rwtest1.png">パフォーマンス テスト1</a> (ATmega1284/20MHz with MMC via USART in SPI, CFC via GPIO)</li>
<li><a href="img/rwtest2.png">パフォーマンス テスト2</a> (LPC2368/72MHz with MMC via MCI)</li>
<li><a href="rc/fd.mp4">応用例のデモ動画</a> (This project is in ffsample.zip/lpc23xx)</li></ul>
</ul> </ul>
</div> </div>
<hr>
<p class="foot"><a href="../../fsw.html">戻る</a></p>
</body> </body>
</html> </html>

View File

@ -7,6 +7,8 @@ a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative
abbr {border-width: 1px;} abbr {border-width: 1px;}
p {margin: 0 0 0.3em 1em;} p {margin: 0 0 0.3em 1em;}
i {margin: 0 0.3em 0 0;}
b {margin: 0 0.1em;}
em {font-style: normal; font-weight: bold; margin: 0 0.1em;} em {font-style: normal; font-weight: bold; margin: 0 0.1em;}
strong {} strong {}
pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; font-size: 85%; font-family: "Consolas", "Courier New", monospace; background-color: white;} pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; font-size: 85%; font-family: "Consolas", "Courier New", monospace; background-color: white;}
@ -17,6 +19,7 @@ tt {margin: 0 0.2em; font-size: 0.85em; font-family: "Consolas", "Courier New",
tt.arg {font-style: italic;} tt.arg {font-style: italic;}
ol {margin: 0.5em 2.5em;} ol {margin: 0.5em 2.5em;}
ul {margin: 0.5em 2em;} ul {margin: 0.5em 2em;}
ul ul {margin: 0 2em 0.5em 1em;}
dl {margin: 0.5em 1em;} dl {margin: 0.5em 1em;}
dd {margin: 0 2em;} dd {margin: 0 2em;}
dt {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;} dt {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
@ -28,23 +31,27 @@ div.para {clear: both; font-family: serif;}
div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; } div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
.equ {text-indent: 0; margin: 1em 2em 1em;} .equ {text-indent: 0; margin: 1em 2em 1em;}
.indent {margin-left: 2em;} .indent {margin-left: 2em;}
.rset {float: right; margin: 0 0 0.5em 0.5em;} .rset {float: right; margin: 0.3em 0 0.5em 0.5em;}
.lset {float: left; margin: 0 0.5em 0.5em 0.5em;} .lset {float: left; margin: 0.3em 0.5em 0.5em 0.5em;}
ul.flat li {list-style-type: none; margin: 0;} ul.flat li {list-style-type: none; margin: 0;}
a.imglnk img {border: 1px solid;} a.imglnk img {border: 1px solid;}
.iequ {white-space: nowrap; font-weight: bold;} .iequ {white-space: nowrap; font-weight: bold;}
.clr {clear: both;} .clr {clear: both;}
.it {font-style: italic;} .it {font-style: italic;}
.mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap} .mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap}
.ral {text-align: right; }
.lal {text-align: left; }
.cal {text-align: center; }
h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;} h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;}
p.hdd {float: right; text-align: right; margin-top: 0.5em;}
hr.hds {clear: both; margin-bottom: 1em;}
h2 {font-size: 2em; font-family: sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;} h2 {font-size: 2em; font-family: sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;}
h3 {font-size: 1.5em; font-family: sans-serif; margin: 1.5em 0 0.5em;} h3 {font-size: 1.5em; font-family: sans-serif; margin: 1.5em 0 0.5em;}
h4 {font-size: 1.2em; font-family: sans-serif; margin: 1em 0 0.2em;} div.doc h3 {border-color: #b0d8d8; border-style: solid; border-width: 0px 0px 4px 12px; padding: 4px; margin-top: 3em;}
h5 {font-size: 1em; font-family: sans-serif; margin: 0.5em 0 0em;} h4 {font-size: 1.2em; font-family: sans-serif; margin: 2em 0 0.2em;}
h5 {font-size: 1em; font-family: sans-serif; margin: 1em 0 0em;}
p.hdd {float: right; text-align: right; margin-top: 0.5em;}
hr.hds {clear: both; margin-bottom: 1em;}
kbd {letter-spacing: 0;}
small {font-size: 80%;} small {font-size: 80%;}
.indent {margin-left: 2em;} .indent {margin-left: 2em;}

View File

@ -9,7 +9,9 @@ a:hover {background-color: #a0ffff;}
a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative; top: 1px; left: 1px;} a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative; top: 1px; left: 1px;}
abbr {border-width: 1px;} abbr {border-width: 1px;}
p {text-indent: 1em; margin: 0 0 0.3em 0.5em;} p {text-indent: 0.8em; margin: 0 0 0.3em 0.5em;}
i {margin: 0 0.3em 0 0;}
b {margin: 0 0.1em;}
em {font-style: normal; font-weight: bold; margin: 0 0.1em;} em {font-style: normal; font-weight: bold; margin: 0 0.1em;}
strong {} strong {}
pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", " ゴシック", monospace; background-color: white;} pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", " ゴシック", monospace; background-color: white;}
@ -20,6 +22,7 @@ tt {margin: 0 0.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consola
tt.arg {font-style: italic;} tt.arg {font-style: italic;}
ol {margin: 0.5em 2.5em;} ol {margin: 0.5em 2.5em;}
ul {margin: 0.5em 2em;} ul {margin: 0.5em 2em;}
ul ul {margin: 0 2em 0.5em 1em;}
dl {margin: 0.5em 1em;} dl {margin: 0.5em 1em;}
dd {margin: 0em 2em;} dd {margin: 0em 2em;}
dt {font-size: 0.85em; font-family: "Consolas", "Courier New", " ゴシック", monospace;} dt {font-size: 0.85em; font-family: "Consolas", "Courier New", " ゴシック", monospace;}
@ -31,23 +34,27 @@ div.para {clear: both; font-family: "
div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; } div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
.equ {text-indent: 0; margin: 1em 2em 1em;} .equ {text-indent: 0; margin: 1em 2em 1em;}
.indent {margin-left: 2em;} .indent {margin-left: 2em;}
.rset {float: right; margin: 0 0 0.5em 0.5em;} .rset {float: right; margin: 0.3em 0 0.5em 0.5em;}
.lset {float: left; margin: 0 0.5em 0.5em 0.5em;} .lset {float: left; margin: 0.3em 0.5em 0.5em 0.5em;}
ul.flat li {list-style-type: none; margin: 0;} ul.flat li {list-style-type: none; margin: 0;}
a.imglnk img {border: 1px solid;} a.imglnk img {border: 1px solid;}
.iequ {white-space: nowrap; font-weight: bold;} .iequ {white-space: nowrap; font-weight: bold;}
.clr {clear: both;} .clr {clear: both;}
.it {font-style: italic;} .it {font-style: italic;}
.mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap} .mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap}
.ral {text-align: right; }
.lal {text-align: left; }
.cal {text-align: center; }
h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;} h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;}
p.hdd {float: right; text-align: right; margin-top: 0.5em;}
hr.hds {clear: both; margin-bottom: 1em;}
h2 {font-size: 2em; font-family: " Pゴシック",sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;} h2 {font-size: 2em; font-family: " Pゴシック",sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;}
h3 {font-size: 1.5em; font-family: " Pゴシック",sans-serif; margin: 1.5em 0 0.5em;} h3 {font-size: 1.5em; font-family: " Pゴシック",sans-serif; margin: 1.5em 0 0.5em;}
h4 {font-size: 1.2em; font-family: " Pゴシック",sans-serif; margin: 1em 0 0.2em;} div.doc h3 {border-color: #b0d8d8; border-style: solid; border-width: 0px 0px 4px 12px; padding: 4px; margin-top: 3em;}
h5 {font-size: 1em; font-family: " Pゴシック",sans-serif; margin: 0.5em 0 0em;} h4 {font-size: 1.2em; font-family: " Pゴシック",sans-serif; margin: 2em 0 0.2em;}
h5 {font-size: 1em; font-family: " Pゴシック",sans-serif; margin: 1em 0 0em;}
p.hdd {float: right; text-align: right; margin-top: 0.5em;}
hr.hds {clear: both; margin-bottom: 1em;}
kbd {letter-spacing: 0;}
small {font-size: 80%;} small {font-size: 80%;}
.indent {margin-left: 2em;} .indent {margin-left: 2em;}

Some files were not shown because too many files have changed in this diff Show More