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>
<solution Name="EFM32G880_crossworks" target="8" version="2">
<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="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/>
<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;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;Source" 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;Source;ARMCM3_EFM32;Crossworks" 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;Demo;Boot;Lib;Cmsis" name="unnamed" />
</Project>
<Register1>
<RegisterWindow openNodes="" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_efm32g880" />
@ -54,7 +53,8 @@
<Watches active="0" update="Never" />
</Watch4>
<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>
<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>

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File>
<solution Name="EFM32G880_crossworks" target="8" version="2">
<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="RAM" Placement="RAM" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/ram_placement.xml" target_reset_script="SRAMReset()"/>
<folder Name="Source Files">

View File

@ -18,6 +18,7 @@
<Project>
<ProjectSessionItem path="EFM32G880_crossworks" 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;Demo" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;demoprog_olimex_efm32g880;Source Files;Demo;Prog" name="unnamed" />
@ -51,7 +52,7 @@
<Watches active="0" update="Never" />
</Watch4>
<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>
<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>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

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

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -30,6 +30,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -280,7 +292,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -307,7 +319,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -336,7 +347,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -402,7 +412,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -470,10 +480,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -506,12 +516,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -540,7 +549,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -548,7 +556,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -646,27 +653,6 @@ DRESULT disk_ioctl (
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>
<Tab>
<Identity>TabID-4214-26312</Identity>
@ -51,20 +51,20 @@
</Tab>
</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>
<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>
<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>
</Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=1760179919
Checksum=707773344
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@ -19,7 +19,7 @@ ShowArgs=0
MixedMode=1
[LMIFTDIDriver]
LMI_ResetMode=0x00000000
LMIFTDIserialNo=04110706A
LMIFTDIserialNo=04110716A
LMIFTDIfoundProbes=
LMI_LeaveTargetRunning=0x00000000
[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>
<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>
<Wnd0>
@ -25,7 +25,7 @@
<Factory>Workspace</Factory>
<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>
</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>
<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>
</Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -30,6 +30,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -280,7 +292,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -307,7 +319,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -336,7 +347,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -402,7 +412,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -470,10 +480,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -506,12 +516,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -540,7 +549,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -548,7 +556,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -646,27 +653,6 @@ DRESULT disk_ioctl (
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
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

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

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -24,6 +24,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
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>
<Tab>
<Identity>TabID-12163-3113</Identity>
@ -47,7 +47,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd4>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-22911-3116</Identity>
@ -59,20 +59,20 @@
</Tab>
</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>
<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>
<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>
</Project>

View File

@ -18,7 +18,7 @@ ActionState=1
Enabled=0
ShowSource=1
[DebugChecksum]
Checksum=-512831567
Checksum=-1815749163
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
@ -81,7 +81,7 @@ Exclusions=
[CallStackLog]
Enabled=0
[CallStackStripe]
ShowTiming=160
ShowTiming=1
[Disassemble mode]
mode=0
[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>
<Windows>
<Wnd1>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-32216-31616</Identity>
@ -29,20 +29,20 @@
</Tab>
</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>
<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>
<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>
</Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -24,6 +24,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
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
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -24,6 +24,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -657,27 +664,7 @@ DRESULT disk_ioctl (
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
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"
"led.h"
"stm32f10x.h"
1483541398 c:\work\software\openblt\target\source\boot.h
1485627342 c:\work\software\openblt\target\source\boot.h
"types.h"
"assert.h"
"blt_conf.h"
@ -17,56 +17,56 @@
"file.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"
1469431761 c:\work\software\openblt\target\source\com.h
1485627343 c:\work\software\openblt\target\source\com.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"
"system_stm32f10x.h"
<stdint.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>
<core_cmInstr.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_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_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_bkp.h"
"stm32f10x_can.h"
@ -91,252 +91,252 @@
"stm32f10x_wwdg.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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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_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_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_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_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"
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_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"
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_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"
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"
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_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_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"
"stm32f10x.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_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"
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_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"
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"
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_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_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_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_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_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"
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"
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"
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"
"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"
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"
"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"
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"
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"
"usb_lib.h"
"usb_desc.h"
"usb_pwr.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"
1481971479 source:c:\work\software\openblt\target\source\backdoor.c
1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h"
1476728156 source:c:\work\software\openblt\target\source\boot.c
1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h"
1469431756 source:c:\work\software\openblt\target\source\com.c
1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h"
"can.h"
"uart.h"
"usb.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"
1481972707 source:c:\work\software\openblt\target\source\file.c
1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h"
<string.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"
"netdev.h"
"uip.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"
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"
"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"
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"
"stm32f10x.h"
"usb_type.h"
@ -352,104 +352,104 @@
"otgd_fs_dev.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"
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"
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"
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"
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"
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"
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_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_desc.h"
"usb_mem.h"
"usb_istr.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"
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_prop.h"
"usb_pwr.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_conf.h"
"usb_prop.h"
"usb_desc.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"
"usb_lib.h"
"usb_conf.h"
"usb_pwr.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"
"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>
<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"
"stm32f10x.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"
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"
"diskio.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"
"cc932.c"
"cc936.c"
@ -457,18 +457,18 @@
"cc950.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"
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"
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"
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"
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"

View File

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

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -23,6 +23,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -291,7 +303,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -318,7 +330,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -347,7 +358,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -413,7 +423,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -481,10 +491,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -517,12 +527,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -551,7 +560,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -559,7 +567,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -657,26 +664,6 @@ DRESULT disk_ioctl (
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"
"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_can.h"
"stm32f2xx_crc.h"
@ -572,106 +572,106 @@
"stm32f2xx_wwdg.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"
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"
"system_stm32f2xx.h"
<stdint.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>
<core_cmInstr.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_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_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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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
"assert.h"
@ -684,124 +684,124 @@
1469268259 source:c:\work\software\openblt\target\demo\armcm3_stm32f2_olimex_stm32p207_gcc\boot\hw.c
"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"
"led.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"
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_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_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"
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_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"
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"
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"
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_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"
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_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_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"
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"
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_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_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_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"
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"
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_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"
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_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"
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_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_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_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_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_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_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_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_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"
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
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"
"led.h"
"stm32f2xx.h"
1469435448 c:\work\software\openblt\target\source\boot.h
1485627342 c:\work\software\openblt\target\source\boot.h
"types.h"
"assert.h"
"blt_conf.h"
@ -829,116 +829,118 @@
"file.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"
1469435361 c:\work\software\openblt\target\source\com.h
1485627343 c:\work\software\openblt\target\source\com.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"
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"
"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"
"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"
"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"
"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"
"stm32f2xx.h"
1469435356 source:c:\work\software\openblt\target\source\assert.c
1485627196 source:c:\work\software\openblt\target\source\assert.c
"boot.h"
1469435356 source:c:\work\software\openblt\target\source\backdoor.c
1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h"
1476731756 source:c:\work\software\openblt\target\source\boot.c
1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h"
1469435356 source:c:\work\software\openblt\target\source\com.c
1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h"
"can.h"
"uart.h"
"usb.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"
1469284606 source:c:\work\software\openblt\target\source\file.c
1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h"
<string.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"
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"
"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>
<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"
"stm32f2xx.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"
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"
"diskio.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"
"cc932.c"
"cc936.c"
@ -946,28 +948,28 @@
"cc950.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"
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"
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"
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"
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"
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"
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"
1469435357 source:c:\work\software\openblt\target\source\net.c
1485627344 source:c:\work\software\openblt\target\source\net.c
"boot.h"
"netdev.h"
"uip.h"

View File

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

View File

@ -3,12 +3,17 @@
<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">
<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>
</File>
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2953" topLine="24" />
<Cursor1 position="2697" topLine="24" />
</Cursor>
</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">

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -21,8 +21,21 @@
#include "diskio.h"
#include "stm32f2xx.h" /* STM32 registers */
#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
DSTATUS Stat = STA_NOINIT; /* Disk status */
static volatile
UINT Timer1, Timer2; /* 1000Hz decrement timer */
static
UINT CardType;
@ -247,11 +257,14 @@ static
int wait_ready (void)
{
BYTE d;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
Timer2 = 500; /* Wait for ready in timeout of 500ms */
do {
d = xchg_spi(0xFF);
} while ((d != 0xFF) && Timer2);
} while ((d != 0xFF) && (TimerGet() < timeOutTime));
return (d == 0xFF) ? 1 : 0;
}
@ -298,12 +311,14 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
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 */
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 */
@ -323,7 +338,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -352,7 +366,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -418,6 +431,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -429,12 +443,13 @@ DSTATUS disk_initialize (
ty = 0;
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? */
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 */
while (Timer1 && 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 */
while ((TimerGet() < timeOutTime) && send_cmd(ACMD41, 0x40000000)); /* Wait for leaving idle state (ACMD41 with HCS bit) */
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);
ty = (ocr[0] & 0x40) ? CT_SD2|CT_BLOCK : CT_SD2; /* SDv2 */
}
@ -445,8 +460,8 @@ DSTATUS disk_initialize (
} else {
ty = CT_MMC; cmd = CMD1; /* MMCv3 */
}
while (Timer1 && send_cmd(cmd, 0)); /* Wait for leaving idle state */
if (!Timer1 || send_cmd(CMD16, 512) != 0) /* Set read/write block length to 512 */
while ((TimerGet() < timeOutTime) && send_cmd(cmd, 0)); /* Wait for leaving idle state */
if (!(TimerGet() < timeOutTime) || send_cmd(CMD16, 512) != 0) /* Set read/write block length to 512 */
ty = 0;
}
}
@ -484,10 +499,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -520,12 +535,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -554,7 +568,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -562,7 +575,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -660,40 +672,6 @@ DRESULT disk_ioctl (
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>
<solution Name="stm32f407_crossworks" target="8" version="2">
<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()"/>
<folder Name="Source Files">
<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;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;lib" name="unnamed" />
<ProjectSessionItem path="stm32f407_crossworks;openblt_olimex_stm32e407;Source Files;Demo;Boot;lib;stdperiphlib" name="unnamed" />
</Project>
<Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="openbtl_olimex_stm32e407" />
@ -56,9 +58,9 @@
</TraceWindow>
<Watch1>
<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="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>
</Watch1>
<Watch2>
@ -71,7 +73,7 @@
<Watches active="0" update="Never" />
</Watch4>
<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>
<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>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA)
* \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 */
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)
* \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, BYTE count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
{
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR;
}
#endif
/*!
* \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
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 ****************************************/

View File

@ -1,7 +1,7 @@
<!DOCTYPE CrossStudio_Project_File>
<solution Name="stm32f407_crossworks" target="8" version="2">
<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()"/>
<folder Name="Source Files">
<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;Demo" 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>
<Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" hiddenNodes="" unsignedNodes="" visibleGroups="CPU" decimalNodes="" octalNodes="" asciiNodes="" name="demoprog_olimex_stm32e407" />
@ -51,9 +52,9 @@
</TraceWindow>
<Watch1>
<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="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>
</Watch1>
<Watch2>
@ -66,7 +67,7 @@
<Watches active="0" update="Never" />
</Watch4>
<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>
<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>

View File

@ -7,40 +7,40 @@ start address 0x08000000
Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x0000a088 memsz 0x0000a088 flags r-x
LOAD off 0x00018000 vaddr 0x20000000 paddr 0x0800a088 align 2**15
filesz 0x0000a1a0 memsz 0x0000a1a0 flags r-x
LOAD off 0x00018000 vaddr 0x20000000 paddr 0x0800a1a0 align 2**15
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-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
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
1 .data 000000ec 20000000 0800a088 00018000 2**2
1 .data 000000ec 20000000 0800a1a0 00018000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00003564 20000100 0800a200 00018100 2**7
2 .bss 00003564 20000100 0800a300 00018100 2**7
ALLOC
3 .debug_info 0001fcd0 00000000 00000000 000180ec 2**0
3 .debug_info 00020b3d 00000000 00000000 000180ec 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 0000540f 00000000 00000000 00037dbc 2**0
4 .debug_abbrev 00005463 00000000 00000000 00038c29 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_loc 0000f535 00000000 00000000 0003d1cb 2**0
5 .debug_loc 0000ffde 00000000 00000000 0003e08c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000015a0 00000000 00000000 0004c700 2**0
6 .debug_aranges 000015a0 00000000 00000000 0004e06a 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00001458 00000000 00000000 0004dca0 2**0
7 .debug_ranges 00001460 00000000 00000000 0004f60a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00007b4e 00000000 00000000 0004f0f8 2**0
8 .debug_line 00007d1e 00000000 00000000 00050a6a 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00007422 00000000 00000000 00056c46 2**0
9 .debug_str 0000745f 00000000 00000000 00058788 2**0
CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0005e068 2**0
10 .comment 00000030 00000000 00000000 0005fbe7 2**0
CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 0005e098 2**0
11 .ARM.attributes 00000033 00000000 00000000 0005fc17 2**0
CONTENTS, READONLY
12 .debug_frame 00003758 00000000 00000000 0005e0cc 2**2
12 .debug_frame 00003780 00000000 00000000 0005fc4c 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
@ -58,57 +58,57 @@ SYMBOL TABLE:
00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 hooks.c
08009650 l O .text 00000020 firmwareFilename
20000100 l O .bss 00000228 logfile
08009874 l O .text 00000020 firmwareFilename
20000100 l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 usbd_bulk.c
080003dc l F .text 0000000e USBD_bulk_GetCfgDesc
080003ec l F .text 00000012 usbd_bulk_SOF
08000400 l F .text 0000000a usbd_bulk_DataIn
0800040c l F .text 0000000c usbd_bulk_DataOut
08000418 l F .text 00000068 usbd_bulk_Setup
08000480 l F .text 00000016 usbd_bulk_DeInit
08000498 l F .text 00000030 usbd_bulk_Init
20000328 l O .bss 00000004 usbd_bulk_AltSet
080003d8 l F .text 0000000e USBD_bulk_GetCfgDesc
080003e8 l F .text 00000012 usbd_bulk_SOF
080003fc l F .text 0000000a usbd_bulk_DataIn
08000408 l F .text 0000000c usbd_bulk_DataOut
08000414 l F .text 00000068 usbd_bulk_Setup
0800047c l F .text 00000016 usbd_bulk_DeInit
08000494 l F .text 00000030 usbd_bulk_Init
2000032c l O .bss 00000004 usbd_bulk_AltSet
00000000 l df *ABS* 00000000 usbd_desc.c
00000000 l df *ABS* 00000000 usbd_usr.c
00000000 l df *ABS* 00000000 usb_bsp.c
00000000 l df *ABS* 00000000 usbd_core.c
080006a4 l F .text 00000016 USBD_Resume
080006bc l F .text 0000001c USBD_Suspend
080006d8 l F .text 00000010 USBD_SOF
080006e8 l F .text 0000000e USBD_IsoINIncomplete
080006f8 l F .text 0000000e USBD_IsoOUTIncomplete
08000708 l F .text 00000016 USBD_DevConnected
08000720 l F .text 00000020 USBD_DevDisconnected
08000740 l F .text 0000002e USBD_Reset
08000770 l F .text 0000004e USBD_SetupStage
080007c0 l F .text 000000b8 USBD_DataInStage
08000878 l F .text 00000076 USBD_DataOutStage
080006a0 l F .text 00000016 USBD_Resume
080006b8 l F .text 0000001c USBD_Suspend
080006d4 l F .text 00000010 USBD_SOF
080006e4 l F .text 0000000e USBD_IsoINIncomplete
080006f4 l F .text 0000000e USBD_IsoOUTIncomplete
08000704 l F .text 00000016 USBD_DevConnected
0800071c l F .text 00000020 USBD_DevDisconnected
0800073c l F .text 0000002e USBD_Reset
0800076c l F .text 0000004e USBD_SetupStage
080007bc l F .text 000000b8 USBD_DataInStage
08000874 l F .text 00000076 USBD_DataOutStage
00000000 l df *ABS* 00000000 usbd_ioreq.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
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_int.c
00000000 l df *ABS* 00000000 mmc.c
08001f84 l F .text 0000004e CmdResp2Error
08001fd4 l F .text 00000130 CmdResp1Error
08002104 l F .text 00000266 SDEnWideBus
20000339 l O .bss 00000001 TransferError
08001f80 l F .text 0000004e CmdResp2Error
08001fd0 l F .text 00000130 CmdResp1Error
08002100 l F .text 00000266 SDEnWideBus
2000033d l O .bss 00000001 TransferError
200000cc l O .data 00000004 DMAEndOfTransfer
2000033c l O .bss 00000018 SDIO_DataInitStructure
20000354 l O .bss 00000010 CSD_Tab
20000364 l O .bss 00000004 CardType
20000368 l O .bss 00000010 CID_Tab
20000378 l O .bss 00000004 TransferEnd
2000037c l O .bss 00000018 SDIO_InitStructure
20000394 l O .bss 00000004 RCA
20000398 l O .bss 00000058 SDCardInfo
200003f0 l O .bss 00000014 SDIO_CmdInitStructure
20000340 l O .bss 00000018 SDIO_DataInitStructure
20000358 l O .bss 00000010 CSD_Tab
20000368 l O .bss 00000004 CardType
2000036c l O .bss 00000010 CID_Tab
2000037c l O .bss 00000004 TransferEnd
20000380 l O .bss 00000018 SDIO_InitStructure
20000398 l O .bss 00000004 RCA
200003a0 l O .bss 00000058 SDCardInfo
200003f8 l O .bss 00000014 SDIO_CmdInitStructure
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 netdev.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 system_stm32f4xx.c
00000000 l df *ABS* 00000000 ff.c
080041dc l F .text 00000012 mem_cpy
080041f0 l F .text 0000001e ld_clust
08004210 l F .text 0000001e sum_sfn
08004230 l F .text 00000096 check_fs
080042c8 l F .text 00000076 sync_window
08004340 l F .text 00000032 move_window
08004374 l F .text 00000038 validate
080043ac l F .text 00000394 chk_mounted
08004740 l F .text 0000012c get_fileinfo
0800486c l F .text 000000bc sync_fs
08004a2c l F .text 00000098 dir_sdi
08004bd4 l F .text 000000cc create_chain
08004ca0 l F .text 0000012a dir_next
08004dcc l F .text 000001a2 dir_find
08004f70 l F .text 00000332 follow_path
080052a4 l F .text 00000130 dir_read
080053d4 l F .text 00000058 dir_remove
0800542c l F .text 0000006e remove_chain
08005534 l F .text 00000236 dir_register
20000408 l O .bss 00000200 LfnBuf
20000608 l O .bss 00000002 Fsid
080096fc l O .text 00000080 ExCvt
0800977c l O .text 0000000d LfnOfs
2000060c l O .bss 00000004 FatFs
080041e4 l F .text 00000016 ld_dword
080041fc l F .text 00000012 mem_cpy
08004210 l F .text 00000016 clust2sect
08004228 l F .text 0000001e sum_sfn
08004248 l F .text 00000056 get_ldnumber
080042a0 l F .text 00000034 validate
080042d4 l F .text 0000006c sync_window
08004340 l F .text 0000003c move_window
0800437c l F .text 000000b8 sync_fs
08004434 l F .text 00000128 put_fat
0800455c l F .text 00000018 st_clust
08004574 l F .text 000000f4 get_fileinfo
08004668 l F .text 000000d6 get_fat
08004740 l F .text 000000b4 dir_sdi
080047f4 l F .text 000000d8 create_chain
080048cc l F .text 00000096 remove_chain
08004964 l F .text 00000126 dir_next
08004a8c l F .text 00000058 dir_remove
08004ae4 l F .text 000001c2 dir_find
08004ca8 l F .text 000002fe dir_register
08004fa8 l F .text 00000070 check_fs
08005018 l F .text 0000030a find_volume
08005324 l F .text 00000156 dir_read
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
0800978c l O .text 000001e0 tbl_lower.4259
0800996c l O .text 00000100 Tbl
08009a6c l O .text 000001e0 tbl_upper.4260
080099b0 l O .text 000000bc cvt2.4272
08009a6c l O .text 00000100 Tbl
08009b6c l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 uip.c
08006110 l F .text 0000004c chksum
0800615c l F .text 00000042 upper_layer_chksum
08006220 l F .text 00000030 uip_add_rcv_nxt
20000610 l O .bss 00000002 tmp16
20000612 l O .bss 00000002 ipid
20000614 l O .bss 00000004 iss
20000618 l O .bss 00000002 lastport
20000624 l O .bss 00000001 c
20000625 l O .bss 00000001 opt
08006248 l F .text 0000004c chksum
08006294 l F .text 00000042 upper_layer_chksum
08006358 l F .text 00000030 uip_add_rcv_nxt
20000618 l O .bss 00000002 tmp16
2000061a l O .bss 00000002 ipid
2000061c l O .bss 00000004 iss
20000620 l O .bss 00000002 lastport
2000062c l O .bss 00000001 c
2000062d l O .bss 00000001 opt
00000000 l df *ABS* 00000000 uip_arp.c
08007240 l F .text 00000116 uip_arp_update
20000626 l O .bss 00000001 i
20000627 l O .bss 00000001 tmpage
20000628 l O .bss 00000060 arp_table
08009c4c l O .text 00000006 broadcast_ethaddr
20000688 l O .bss 00000001 c
20000689 l O .bss 00000001 arptime
2000068c l O .bss 00000004 ipaddr
08007378 l F .text 00000116 uip_arp_update
2000062e l O .bss 00000001 i
2000062f l O .bss 00000001 tmpage
20000630 l O .bss 00000060 arp_table
08009d60 l O .text 00000006 broadcast_ethaddr
20000690 l O .bss 00000001 c
20000691 l O .bss 00000001 arptime
20000694 l O .bss 00000004 ipaddr
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c
20000698 l O .bss 00000040 xcpCtoReqPacket.4427
200000e4 l O .data 00000001 comActiveInterface
20000690 l O .bss 00000040 xcpCtoReqPacket.4417
00000000 l df *ABS* 00000000 net.c
200006d0 l O .bss 00000004 ARPTimerTimeOut
200006d4 l O .bss 00000004 periodicTimerTimeOut
200006d8 l O .bss 00000004 ARPTimerTimeOut
200006dc l O .bss 00000004 periodicTimerTimeOut
00000000 l df *ABS* 00000000 xcp.c
08007a9c l F .text 00000016 XcpSetCtoError
08009c54 l O .text 00000008 xcpStationId
200006d8 l O .bss 0000004c xcpInfo
08007bd4 l F .text 00000016 XcpSetCtoError
08009d68 l O .text 00000008 xcpStationId
200006e0 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
20000724 l O .bss 00000001 backdoorOpen
20000728 l O .bss 00000004 backdoorOpenTime
2000072c l O .bss 00000001 backdoorOpen
20000730 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 file.c
08007ef8 l F .text 0000002e FileLibByteNibbleToChar
08007f28 l F .text 00000020 FileLibByteToHexString
08007f48 l F .text 00000046 FileLibLongToIntString
08007f90 l F .text 00000066 FileLibHexStringToByte
2000072c l O .bss 00000040 loggingStr
2000076c l O .bss 00000001 firmwareUpdateState
20000770 l O .bss 00000008 eraseInfo
20000778 l O .bss 00000458 fatFsObjects
20000bd0 l O .bss 00000184 lineParseObject
08008030 l F .text 0000002e FileLibByteNibbleToChar
08008060 l F .text 00000020 FileLibByteToHexString
08008080 l F .text 00000046 FileLibLongToIntString
080080c8 l F .text 00000066 FileLibHexStringToByte
20000734 l O .bss 00000040 loggingStr
20000774 l O .bss 00000001 firmwareUpdateState
20000778 l O .bss 00000008 eraseInfo
20000780 l O .bss 00000458 fatFsObjects
20000bd8 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 assert.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 flash.c
080089f4 l F .text 00000044 FlashGetSector
08008a38 l F .text 00000078 FlashWriteBlock
08008ab0 l F .text 00000062 FlashSwitchBlock
08008b14 l F .text 00000084 FlashAddToBlock
08009e68 l O .text 00000030 flashSectorNumToMask
08009e98 l O .text 0000006c flashLayout
20000d54 l O .bss 00000204 bootBlockInfo
20000f58 l O .bss 00000204 blockInfo
08008c18 l F .text 00000044 FlashGetSector
08008c5c l F .text 00000078 FlashWriteBlock
08008cd4 l F .text 00000062 FlashSwitchBlock
08008d38 l F .text 00000084 FlashAddToBlock
08009f80 l O .text 00000030 flashSectorNumToMask
08009fb0 l O .text 0000006c flashLayout
20000d5c l O .bss 00000204 bootBlockInfo
20000f60 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 uart.c
08008da8 l F .text 00000042 UartTransmitByte
08008dec l F .text 0000002c UartReceiveByte
2000115c l O .bss 00000001 xcpCtoRxLength.7770
20001160 l O .bss 00000041 xcpCtoReqPacket.7769
200011a4 l O .bss 00000001 xcpCtoRxInProgress.7771
200011a8 l O .bss 00000004 xcpCtoRxStartTime.7772
08008fcc l F .text 00000042 UartTransmitByte
08009010 l F .text 0000002c UartReceiveByte
20001164 l O .bss 00000001 xcpCtoRxLength.7780
20001168 l O .bss 00000041 xcpCtoReqPacket.7779
200011ac l O .bss 00000001 xcpCtoRxInProgress.7781
200011b0 l O .bss 00000004 xcpCtoRxStartTime.7782
00000000 l df *ABS* 00000000 usb.c
08008f98 l F .text 0000007c UsbFifoMgrWrite
08009014 l F .text 00000076 UsbFifoMgrRead
200011ac l O .bss 00000004 fifoCtrlFree
200011b0 l O .bss 00000030 fifoCtrl
200011e0 l O .bss 00000041 fifoPipeBulkOUT
20001224 l O .bss 00000040 xcpCtoReqPacket.8946
20001264 l O .bss 00000001 xcpCtoRxLength.8947
20001268 l O .bss 00000041 fifoPipeBulkIN
200012ac l O .bss 00000040 USB_Tx_Buffer.8960
200012ec l O .bss 000005f4 USB_OTG_dev
200018e0 l O .bss 00000001 xcpCtoRxInProgress.8948
080091bc l F .text 0000007c UsbFifoMgrWrite
08009238 l F .text 00000076 UsbFifoMgrRead
200011b4 l O .bss 00000004 fifoCtrlFree
200011b8 l O .bss 00000030 fifoCtrl
200011e8 l O .bss 00000041 fifoPipeBulkOUT
2000122c l O .bss 00000040 USB_Tx_Buffer.8970
2000126c l O .bss 00000040 xcpCtoReqPacket.8956
200012ac l O .bss 00000041 fifoPipeBulkIN
200012f0 l O .bss 00000001 xcpCtoRxLength.8957
200012f4 l O .bss 000005f4 USB_OTG_dev
200018e8 l O .bss 00000001 xcpCtoRxInProgress.8958
00000000 l df *ABS* 00000000 nvm.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 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 memset.c
00000000 l df *ABS* 00000000 ctype_.c
00000000 l df *ABS* 00000000
00000800 l *ABS* 00000000 __STACKSIZE__
080076ec g F .text 00000030 ComInit
08008bb4 g F .text 00000050 FlashWrite
08007824 g F .text 00000030 ComInit
08008dd8 g F .text 00000050 FlashWrite
2000006c g O .data 00000012 USBD_DeviceDesc
080004f4 g F .text 0000001e USBD_USR_ProductStrDescriptor
08005fe4 g F .text 0000004e f_gets
08001790 g F .text 00000010 USB_OTG_ReadDevOutEP_itr
08003a58 g F .text 0000002c FLASH_Unlock
08000694 g F .text 00000010 USB_OTG_BSP_mDelay
080005b0 g F .text 0000000a USBD_USR_DeviceConnected
080036d8 g F .text 00000012 ETH_FlushTransmitFIFO
080086f0 g F .text 00000008 AssertFailure
08004940 g F .text 000000ea get_fat
08008908 g F .text 00000088 CanReceivePacket
080004f0 g F .text 0000001e USBD_USR_ProductStrDescriptor
080060b0 g F .text 0000004e f_gets
0800178c g F .text 00000010 USB_OTG_ReadDevOutEP_itr
08003a60 g F .text 0000002c FLASH_Unlock
08000690 g F .text 00000010 USB_OTG_BSP_mDelay
080005ac g F .text 0000000a USBD_USR_DeviceConnected
080036e0 g F .text 00000012 ETH_FlushTransmitFIFO
08008914 g F .text 00000008 AssertFailure
08008b2c g F .text 00000088 CanReceivePacket
2000009c g O .data 00000004 USBD_DCD_INT_fops
080094a4 g F .text 00000058 reset_handler
08003c7c g F .text 00000028 GPIO_PinAFConfig
080017f0 g F .text 0000009a DCD_Init
08009450 g F .text 00000022 TimerUpdate
08007ae4 g F .text 00000010 XcpPacketTransmitted
080004c8 g F .text 0000000a usbd_bulk_get_rx_buffer_ptr
0800322c g F .text 0000009e ETH_StructInit
0800771c g F .text 000000a4 ComTask
08003f8c g F .text 0000000c SDIO_ClearFlag
08003054 g F .text 00000018 SD_GetStatus
08003ba0 g F .text 0000003e FLASH_ProgramWord
08003eb0 g F .text 0000000c SDIO_SetPowerState
080033a4 g F .text 000002be ETH_Init
080011d8 g F .text 00000046 USB_OTG_FlushRxFifo
080096c8 g F .text 00000058 reset_handler
08003c84 g F .text 00000028 GPIO_PinAFConfig
080017ec g F .text 0000009a DCD_Init
08009674 g F .text 00000022 TimerUpdate
08007c1c g F .text 00000010 XcpPacketTransmitted
080004c4 g F .text 0000000a usbd_bulk_get_rx_buffer_ptr
08003234 g F .text 0000009e ETH_StructInit
08007854 g F .text 000000a4 ComTask
08003f94 g F .text 0000000c SDIO_ClearFlag
08003050 g F .text 00000018 SD_GetStatus
08003ba8 g F .text 0000003e FLASH_ProgramWord
08003eb8 g F .text 0000000c SDIO_SetPowerState
080033ac g F .text 000002be ETH_Init
080011d4 g F .text 00000046 USB_OTG_FlushRxFifo
20002790 g O .bss 00000002 uip_len
2000061c g O .bss 00000006 uip_ethaddr
080061a0 g F .text 0000007e uip_add32
080076b4 g F .text 00000020 BootInit
080018e0 g F .text 00000032 DCD_EP_Close
080080bc g F .text 00000038 FileSrecVerifyChecksum
0800188c g F .text 00000054 DCD_EP_Open
20001928 g O .bss 00000004 SET_TEST_MODE
08007ecc g F .text 00000022 BackDoorInit
08000a38 g F .text 00000354 USBD_StdDevReq
08000574 g F .text 0000001e USBD_USR_InterfaceStrDescriptor
08003e10 g F .text 00000024 RCC_AHB1PeriphResetCmd
080040b0 g F .text 0000000c USART_GetFlagStatus
08007ef4 g F .text 00000002 CopService
0800a088 g .text 00000000 _etext
20000330 g O .bss 00000004 USBD_ep_status
0800949c g F .text 00000004 CpuIrqDisable
08002e40 g F .text 0000019a SD_WriteBlock
20000624 g O .bss 00000006 uip_ethaddr
080062d8 g F .text 0000007e uip_add32
080077ec g F .text 00000020 BootInit
080018dc g F .text 00000032 DCD_EP_Close
080081fc g F .text 00000038 FileSrecVerifyChecksum
08001888 g F .text 00000054 DCD_EP_Open
20001930 g O .bss 00000004 SET_TEST_MODE
08008004 g F .text 00000022 BackDoorInit
08000a34 g F .text 00000354 USBD_StdDevReq
08000570 g F .text 0000001e USBD_USR_InterfaceStrDescriptor
08003e18 g F .text 00000024 RCC_AHB1PeriphResetCmd
080040b8 g F .text 0000000c USART_GetFlagStatus
0800802c g F .text 00000002 CopService
0800a1a0 g .text 00000000 _etext
20000334 g O .bss 00000004 USBD_ep_status
080096c0 g F .text 00000004 CpuIrqDisable
08002e3c g F .text 0000019a SD_WriteBlock
20000080 g O .data 0000001c USR_cb
080060e0 g F .text 0000002e ff_wtoupper
08001a10 g F .text 00000014 DCD_DevDisconnect
080039a8 g F .text 00000050 netdev_read
080062e8 g F .text 00000f1e uip_process
08008d9c g F .text 0000000a FlashGetUserProgBaseAddress
080005a0 g F .text 00000008 USBD_USR_DeviceSuspended
08003214 g F .text 00000018 ETH_DeInit
08009508 g F .text 000000a6 memcpy
08008274 g F .text 0000047c FileTask
08000dc4 g F .text 00000138 USBD_StdEPReq
08009440 g F .text 0000000e TimerReset
0800306c g F .text 00000038 disk_initialize
080061a0 g F .text 000000a6 ff_wtoupper
08001a0c g F .text 00000014 DCD_DevDisconnect
080039b0 g F .text 00000050 netdev_read
08006420 g F .text 00000f1e uip_process
08008fc0 g F .text 0000000a FlashGetUserProgBaseAddress
0800059c g F .text 00000008 USBD_USR_DeviceSuspended
0800321c g F .text 00000018 ETH_DeInit
0800972c g F .text 000000a6 memcpy
080083b4 g F .text 00000560 FileTask
08000dc0 g F .text 00000138 USBD_StdEPReq
08009664 g F .text 0000000e TimerReset
08003068 g F .text 00000038 disk_initialize
20002794 g O .bss 00000004 uip_sappdata
08000190 g F .text 00000002 UsbLeaveLowPowerModeHook
0800375c g F .text 00000226 netdev_init
08000998 g F .text 0000001e USBD_CtlSendStatus
08003764 g F .text 00000226 netdev_init
08000994 g F .text 0000001e USBD_CtlSendStatus
20002798 g O .bss 00000004 uip_acc32
08000d8c g F .text 00000036 USBD_StdItfReq
08006250 g F .text 00000024 uip_ipchksum
080027bc g F .text 000002b6 SD_GetCardInfo
08003f78 g F .text 00000014 SDIO_GetFlagStatus
080009d8 g F .text 00000044 USBD_ParseSetupRequest
080040a8 g F .text 00000008 USART_ReceiveData
080076d4 g F .text 00000018 BootTask
08001a24 g F .text 0000055e USBD_OTG_ISR_Handler
08003028 g F .text 0000002c SD_GetState
08008c90 g F .text 00000058 FlashWriteChecksum
08002a74 g F .text 00000084 SD_EnableWideBusOperation
08003dec g F .text 00000024 RCC_APB2PeriphClockCmd
08003efc g F .text 0000000e SDIO_GetCommandResponse
08001010 g F .text 000000c8 USB_OTG_SelectCore
080077c8 g F .text 00000060 ComTransmitPacket
08003be0 g F .text 00000090 GPIO_Init
080030a4 g F .text 00000032 disk_status
080080f4 g F .text 0000017e FileSrecParseLine
08001220 g F .text 0000002a USB_OTG_SetCurrentMode
080062b4 g F .text 00000032 uip_listen
08004084 g F .text 0000001c USART_Cmd
080039f8 g F .text 00000060 netdev_send
0800125c g F .text 0000000a USB_OTG_ReadCoreItr
08000598 g F .text 00000002 USBD_USR_DeviceReset
0800093c g F .text 0000000e USBD_ClrCfg
080031a8 g F .text 00000062 disk_ioctl
080008f0 g F .text 00000034 USBD_Init
08008038 g F .text 00000036 FileHandleFirmwareUpdateRequest
08000d88 g F .text 00000036 USBD_StdItfReq
08006388 g F .text 00000024 uip_ipchksum
080027b8 g F .text 000002b6 SD_GetCardInfo
08003f80 g F .text 00000014 SDIO_GetFlagStatus
080009d4 g F .text 00000044 USBD_ParseSetupRequest
080040b0 g F .text 00000008 USART_ReceiveData
0800780c g F .text 00000018 BootTask
08001a20 g F .text 0000055e USBD_OTG_ISR_Handler
08003024 g F .text 0000002c SD_GetState
08008eb4 g F .text 00000058 FlashWriteChecksum
08002a70 g F .text 00000084 SD_EnableWideBusOperation
08003df4 g F .text 00000024 RCC_APB2PeriphClockCmd
08003f04 g F .text 0000000e SDIO_GetCommandResponse
0800100c g F .text 000000c8 USB_OTG_SelectCore
08007900 g F .text 00000060 ComTransmitPacket
08003be8 g F .text 00000090 GPIO_Init
080030a0 g F .text 00000032 disk_status
08008234 g F .text 0000017e FileSrecParseLine
0800121c g F .text 0000002a USB_OTG_SetCurrentMode
080063ec g F .text 00000032 uip_listen
0800408c g F .text 0000001c USART_Cmd
08003a00 g F .text 00000060 netdev_send
08001258 g F .text 0000000a USB_OTG_ReadCoreItr
08000594 g F .text 00000002 USBD_USR_DeviceReset
08000938 g F .text 0000000e USBD_ClrCfg
080031b8 g F .text 00000062 disk_ioctl
080008ec g F .text 00000034 USBD_Init
08008178 g F .text 00000036 FileHandleFirmwareUpdateRequest
20000020 g O .data 0000002c USBD_bulk_cb
08003dc8 g F .text 00000024 RCC_APB1PeriphClockCmd
0800549c g F .text 00000098 gen_numname
08003dd0 g F .text 00000024 RCC_APB1PeriphClockCmd
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
08003da4 g F .text 00000024 RCC_AHB2PeriphClockCmd
0800022c g F .text 00000054 FileFirmwareUpdateCompletedHook
08007ad0 g F .text 00000012 XcpIsConnected
08005f28 g F .text 000000bc f_unlink
08003dac g F .text 00000024 RCC_AHB2PeriphClockCmd
08000228 g F .text 00000054 FileFirmwareUpdateCompletedHook
08007c08 g F .text 00000012 XcpIsConnected
08005fe8 g F .text 000000c8 f_unlink
0800018c g F .text 00000002 UsbEnterLowPowerModeHook
08003664 g F .text 00000026 ETH_MACTransmissionCmd
080093dc g F .text 00000008 NvmInit
08008b98 g F .text 0000001a FlashInit
08003a84 g F .text 00000012 FLASH_Lock
080093fc g F .text 00000008 NvmGetUserProgBaseAddress
0800366c g F .text 00000026 ETH_MACTransmissionCmd
08009600 g F .text 00000008 NvmInit
08008dbc g F .text 0000001a FlashInit
08003a8c g F .text 00000012 FLASH_Lock
08009620 g F .text 00000008 NvmGetUserProgBaseAddress
20002e64 g .bss 00000000 _ebss
08006034 g F .text 00000034 f_putc
080017a0 g F .text 0000000c USB_OTG_ReadDevAllInEPItr
08001724 g F .text 00000034 USB_OTG_EPSetStall
08006068 g F .text 0000002c f_puts
08000514 g F .text 0000001e USBD_USR_ManufacturerStrDescriptor
08009488 g F .text 00000012 UnusedISR
080005a8 g F .text 00000008 USBD_USR_DeviceResumed
08003ea4 g F .text 0000000c SDIO_ClockCmd
080077c0 g F .text 00000008 ComFree
08003f28 g F .text 00000030 SDIO_DataConfig
080005c8 g F .text 000000ae USB_OTG_BSP_Init
08000534 g F .text 0000001e USBD_USR_SerialStrDescriptor
080036b4 g F .text 00000012 ETH_SoftwareReset
0800333c g F .text 00000068 ETH_WritePHYRegister
08001600 g F .text 00000122 USB_OTG_EP0StartXfer
080009b8 g F .text 0000001e USBD_CtlReceiveStatus
08008e18 g F .text 0000003e UartInit
0800067c g F .text 00000018 USB_OTG_BSP_uDelay
08001268 g F .text 0000000c USB_OTG_InitDevSpeed
080014d0 g F .text 0000012e USB_OTG_EPStartXfer
08009370 g F .text 0000006c UsbReceivePipeBulkOUT
08003ca4 g F .text 000000da RCC_GetClocksFreq
080093ec g F .text 00000008 NvmErase
0800179c g F .text 0000000c USB_OTG_ReadDevAllInEPItr
08001720 g F .text 00000034 USB_OTG_EPSetStall
08006100 g F .text 00000052 f_puts
08000510 g F .text 0000001e USBD_USR_ManufacturerStrDescriptor
080096ac g F .text 00000012 UnusedISR
080005a4 g F .text 00000008 USBD_USR_DeviceResumed
08003eac g F .text 0000000c SDIO_ClockCmd
080078f8 g F .text 00000008 ComFree
08003f30 g F .text 00000030 SDIO_DataConfig
080005c4 g F .text 000000ae USB_OTG_BSP_Init
08000530 g F .text 0000001e USBD_USR_SerialStrDescriptor
080036bc g F .text 00000012 ETH_SoftwareReset
08003344 g F .text 00000068 ETH_WritePHYRegister
080015fc g F .text 00000122 USB_OTG_EP0StartXfer
080009b4 g F .text 0000001e USBD_CtlReceiveStatus
0800903c g F .text 0000003e UartInit
08000678 g F .text 00000018 USB_OTG_BSP_uDelay
08001264 g F .text 0000000c USB_OTG_InitDevSpeed
080014cc g F .text 0000012e USB_OTG_EPStartXfer
08009594 g F .text 0000006c UsbReceivePipeBulkOUT
08003cac g F .text 000000da RCC_GetClocksFreq
08009610 g F .text 00000008 NvmErase
08000194 g F .text 00000018 CpuUserProgramStartHook
08000a1c g F .text 0000001a USBD_CtlError
08003984 g F .text 00000022 netdev_init_mac
08003fa4 g F .text 000000de USART_Init
080019c0 g F .text 00000040 DCD_EP_ClrStall
08000a18 g F .text 0000001a USBD_CtlError
0800398c g F .text 00000022 netdev_init_mac
08003fac g F .text 000000de USART_Init
080019bc g F .text 00000040 DCD_EP_ClrStall
20000100 g .bss 00000000 _bss
08005d30 g F .text 00000014 f_close
0800059c g F .text 00000002 USBD_USR_DeviceConfigured
08003aa4 g F .text 00000054 FLASH_GetStatus
08007af4 g F .text 00000388 XcpPacketReceived
08006274 g F .text 0000000a uip_tcpchksum
08008990 g F .text 00000008 CpuInit
08003a98 g F .text 0000000c FLASH_ClearFlag
08003af8 g F .text 00000038 FLASH_WaitForLastOperation
08003714 g F .text 00000026 ETH_DMAReceptionCmd
08000594 g F .text 00000002 USBD_USR_Init
08005904 g F .text 000001a8 f_read
08008d50 g F .text 0000004c FlashDone
08001784 g F .text 0000000c USB_OTG_ReadDevAllOutEp_itr
08002b24 g F .text 00000172 SD_Init
0800124c g F .text 00000010 USB_OTG_IsDeviceMode
08000fbc g F .text 0000002a USB_OTG_WritePacket
08005e00 g F .text 00000024 f_close
08000598 g F .text 00000002 USBD_USR_DeviceConfigured
08003aac g F .text 00000054 FLASH_GetStatus
08007c2c g F .text 00000388 XcpPacketReceived
080063ac g F .text 0000000a uip_tcpchksum
08008bb4 g F .text 00000008 CpuInit
08003aa0 g F .text 0000000c FLASH_ClearFlag
08003b00 g F .text 00000038 FLASH_WaitForLastOperation
0800371c g F .text 00000026 ETH_DMAReceptionCmd
08000590 g F .text 00000002 USBD_USR_Init
080059f0 g F .text 0000017c f_read
08008f74 g F .text 0000004c FlashDone
08001780 g F .text 0000000c USB_OTG_ReadDevAllOutEp_itr
08002b20 g F .text 00000172 SD_Init
08001248 g F .text 00000010 USB_OTG_IsDeviceMode
08000fb8 g F .text 0000002a USB_OTG_WritePacket
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
080036c8 g F .text 00000010 ETH_GetSoftwareResetStatus
08001758 g F .text 0000002a USB_OTG_EPClearStall
200018e8 g O .bss 00000040 USB_Rx_Buffer
0800917c g F .text 0000007a UsbTransmitPacket
08002af8 g F .text 0000002c SD_SelectDeselect
08008860 g F .text 000000a8 CanTransmitPacket
080036d0 g F .text 00000010 ETH_GetSoftwareResetStatus
08001754 g F .text 0000002a USB_OTG_EPClearStall
200018f0 g O .bss 00000040 USB_Rx_Buffer
080093a0 g F .text 0000007a UsbTransmitPacket
08002af4 g F .text 0000002c SD_SelectDeselect
08008a84 g F .text 000000a8 CanTransmitPacket
08000188 g F .text 00000002 UsbConnectHook
08003ecc g F .text 00000030 SDIO_SendCommand
080032cc g F .text 0000006e ETH_ReadPHYRegister
08003ed4 g F .text 00000030 SDIO_SendCommand
080032d4 g F .text 0000006e ETH_ReadPHYRegister
200027a8 g O .bss 00000068 uip_conns
08001914 g F .text 00000038 DCD_EP_PrepareRx
08001430 g F .text 0000005c USB_OTG_EPActivate
0800320c g F .text 00000008 get_fattime
08007ab4 g F .text 0000001c XcpInit
08000924 g F .text 00000018 USBD_SetCfg
08007ff8 g F .text 0000002c FileInit
08003f58 g F .text 0000000e SDIO_ReadData
0800908c g F .text 000000d8 UsbInit
080074e4 g F .text 000001d0 uip_arp_out
08009164 g F .text 00000016 UsbFree
08008c04 g F .text 0000008a FlashErase
080004d4 g F .text 0000000e USBD_USR_DeviceDescriptor
080095b0 g F .text 0000009e memset
08000280 g F .text 00000020 FileFirmwareUpdateErrorHook
08000300 g F .text 000000dc main
08003b30 g F .text 0000006e FLASH_EraseSector
08005c84 g F .text 000000ac f_sync
08002fdc g F .text 0000004c SD_SendStatus
080012c4 g F .text 0000011e USB_OTG_CoreInitDev
08001188 g F .text 0000004e USB_OTG_FlushTxFifo
08008070 g F .text 0000004c FileSrecGetLineType
08009404 g F .text 00000012 NvmDone
0800576c g F .text 0000002a f_mount
08008e58 g F .text 00000066 UartTransmitPacket
080093f4 g F .text 00000008 NvmVerifyChecksum
080089d4 g F .text 0000001e CpuMemCopy
08003f0c g F .text 0000001a SDIO_GetResponse
08001910 g F .text 00000038 DCD_EP_PrepareRx
0800142c g F .text 0000005c USB_OTG_EPActivate
08007bec g F .text 0000001c XcpInit
08000920 g F .text 00000018 USBD_SetCfg
08008130 g F .text 00000034 FileInit
08003f60 g F .text 0000000e SDIO_ReadData
080092b0 g F .text 000000d8 UsbInit
0800761c g F .text 000001d0 uip_arp_out
08009388 g F .text 00000016 UsbFree
08008e28 g F .text 0000008a FlashErase
080004d0 g F .text 0000000e USBD_USR_DeviceDescriptor
080097d4 g F .text 0000009e memset
0800027c g F .text 00000020 FileFirmwareUpdateErrorHook
080002fc g F .text 000000dc main
08003b38 g F .text 0000006e FLASH_EraseSector
08005d64 g F .text 0000009c f_sync
08002fd8 g F .text 0000004c SD_SendStatus
080012c0 g F .text 0000011e USB_OTG_CoreInitDev
08001184 g F .text 0000004e USB_OTG_FlushTxFifo
080081b0 g F .text 0000004c FileSrecGetLineType
08009628 g F .text 00000012 NvmDone
080057f0 g F .text 0000007a f_mount
0800907c g F .text 00000066 UartTransmitPacket
08009618 g F .text 00000008 NvmVerifyChecksum
08008bf8 g F .text 0000001e CpuMemCopy
08003f14 g F .text 0000001a SDIO_GetResponse
20000068 g O .data 00000004 USBD_LangIDDesc
08001178 g F .text 0000000e USB_OTG_DisableGlobalInt
080017ac g F .text 00000042 USB_OTG_EP0_OutStart
080010d8 g F .text 00000090 USB_OTG_CoreInit
2000032c g O .bss 00000004 USBD_cfg_status
080040bc g F .text 00000120 SystemInit
20000334 g O .bss 00000004 USBD_default_cfg
08004ac4 g F .text 0000010e put_fat
0800194c g F .text 00000034 DCD_EP_Tx
08005d44 g F .text 00000198 f_lseek
08003f98 g F .text 0000000a SYSCFG_ETH_MediaInterfaceConfig
080073b0 g F .text 00000134 uip_arp_arpin
08007844 g F .text 0000001c ComGetActiveInterfaceMaxTxLen
08008ec0 g F .text 000000d8 UartReceivePacket
080001f0 g F .text 0000000a FileGetFirmwareFilenameHook
080094a0 g F .text 00000004 CpuIrqEnable
080005bc g F .text 0000000a USBD_USR_DeviceDisconnected
08000678 g F .text 00000002 USB_OTG_BSP_EnableInterrupt
08002c98 g F .text 000001a6 SD_ReadBlock
08007358 g F .text 00000058 uip_arp_timer
08000970 g F .text 00000012 USBD_CtlContinueSendData
08001174 g F .text 0000000e USB_OTG_DisableGlobalInt
080017a8 g F .text 00000042 USB_OTG_EP0_OutStart
080010d4 g F .text 00000090 USB_OTG_CoreInit
20000330 g O .bss 00000004 USBD_cfg_status
080040c4 g F .text 00000120 SystemInit
20000338 g O .bss 00000004 USBD_default_cfg
08001948 g F .text 00000034 DCD_EP_Tx
08005e24 g F .text 00000170 f_lseek
08003fa0 g F .text 0000000a SYSCFG_ETH_MediaInterfaceConfig
080074e8 g F .text 00000134 uip_arp_arpin
0800797c g F .text 0000001c ComGetActiveInterfaceMaxTxLen
080090e4 g F .text 000000d8 UartReceivePacket
080001ec g F .text 0000000a FileGetFirmwareFilenameHook
080096c4 g F .text 00000004 CpuIrqEnable
080005b8 g F .text 0000000a USBD_USR_DeviceDisconnected
08000674 g F .text 00000002 USB_OTG_BSP_EnableInterrupt
08002c94 g F .text 000001a6 SD_ReadBlock
08007490 g F .text 00000058 uip_arp_timer
0800096c g F .text 00000012 USBD_CtlContinueSendData
20002810 g O .bss 00000002 uip_listenports
20002814 g O .bss 00000004 uip_draddr
080004e4 g F .text 0000000e USBD_USR_LangIDStrDescriptor
080013e4 g F .text 00000020 USB_OTG_GetDeviceSpeed
080004e0 g F .text 0000000e USBD_USR_LangIDStrDescriptor
080013e0 g F .text 00000020 USB_OTG_GetDeviceSpeed
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
08005edc g F .text 0000004a f_stat
08007ef0 g F .text 00000002 CopInit
0800236c g F .text 0000002c SD_Detect
080086f8 g F .text 00000168 CanInit
080093e4 g F .text 00000008 NvmWrite
08008998 g F .text 0000003a CpuStartUserProgram
08000efc g F .text 0000004c USBD_GetString
08004928 g F .text 00000016 clust2sect
08005f94 g F .text 00000054 f_stat
08008028 g F .text 00000002 CopInit
08002368 g F .text 0000002c SD_Detect
0800891c g F .text 00000168 CanInit
08009608 g F .text 00000008 NvmWrite
08008bbc g F .text 0000003a CpuStartUserProgram
08000ef8 g F .text 0000004c USBD_GetString
20003664 g .bss 00000000 _estack
080040a0 g F .text 00000008 USART_SendData
080091f8 g F .text 000000c8 UsbReceivePacket
08008ce8 g F .text 00000068 FlashVerifyChecksum
080078dc g F .text 00000044 NetTransmitPacket
080040a8 g F .text 00000008 USART_SendData
0800941c g F .text 000000c8 UsbReceivePacket
08008f0c g F .text 00000068 FlashVerifyChecksum
08007a14 g F .text 00000044 NetTransmitPacket
200000ec g .data 00000000 _edata
08008024 g F .text 00000014 FileIsIdle
08007208 g F .text 0000000a htons
08005aac g F .text 000001d8 f_write
08001274 g F .text 00000050 USB_OTG_EnableDevInt
08008164 g F .text 00000014 FileIsIdle
08007340 g F .text 0000000a htons
08005b6c g F .text 000001b0 f_write
08001270 g F .text 00000050 USB_OTG_EnableDevInt
08000000 g O .text 00000188 _vectab
08000554 g F .text 0000001e USBD_USR_ConfigStrDescriptor
08005798 g F .text 0000016a f_open
0800313c g F .text 0000006c disk_write
0800368c g F .text 00000026 ETH_MACReceptionCmd
0800094c g F .text 00000022 USBD_CtlSendData
080002a0 g F .text 00000060 FileFirmwareUpdateLogHook
08000550 g F .text 0000001e USBD_USR_ConfigStrDescriptor
0800586c g F .text 00000184 f_open
08003144 g F .text 00000074 disk_write
08003694 g F .text 00000026 ETH_MACReceptionCmd
08000948 g F .text 00000022 USBD_CtlSendData
0800029c g F .text 00000060 FileFirmwareUpdateLogHook
200020d0 g O .bss 00000640 TxBuff
200000e8 g O .data 00000004 __ctype_ptr__
08007860 g F .text 00000008 ComIsConnected
08001404 g F .text 0000002a USB_OTG_EP0Activate
08000fe8 g F .text 00000026 USB_OTG_ReadPacket
08009f84 g O .text 00000101 _ctype_
080036ec g F .text 00000026 ETH_DMATransmissionCmd
08003e70 g F .text 00000034 SDIO_Init
080001ac g F .text 00000044 FileIsFirmwareUpdateRequestedHook
08001a00 g F .text 00000010 DCD_EP_SetAddress
08006280 g F .text 00000032 uip_init
08002398 g F .text 0000027e SD_PowerON
2000192c g O .bss 000000ff USBD_StrDesc
08007828 g F .text 0000001c ComGetActiveInterfaceMaxRxLen
08003d80 g F .text 00000024 RCC_AHB1PeriphClockCmd
08007920 g F .text 0000010a NetReceivePacket
080030d8 g F .text 00000064 disk_read
08007e7c g F .text 0000004e BackDoorCheck
08007998 g F .text 00000008 ComIsConnected
08001400 g F .text 0000002a USB_OTG_EP0Activate
08000fe4 g F .text 00000026 USB_OTG_ReadPacket
0800a09c g O .text 00000101 _ctype_
080036f4 g F .text 00000026 ETH_DMATransmissionCmd
08003e78 g F .text 00000034 SDIO_Init
080001ac g F .text 0000003e FileIsFirmwareUpdateRequestedHook
080019fc g F .text 00000010 DCD_EP_SetAddress
080063b8 g F .text 00000032 uip_init
08002394 g F .text 0000027e SD_PowerON
20001934 g O .bss 000000ff USBD_StrDesc
08007960 g F .text 0000001c ComGetActiveInterfaceMaxRxLen
08003d88 g F .text 00000024 RCC_AHB1PeriphClockCmd
08007a58 g F .text 0000010a NetReceivePacket
080030d4 g F .text 0000006e disk_read
08007fb4 g F .text 0000004e BackDoorCheck
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
20000000 g O .data 00000020 usbd_bulk_CfgDesc
2000281c g O .bss 00000004 uip_hostaddr
08006094 g F .text 0000004a ff_convert
08009474 g F .text 00000012 TimerGet
08003ebc g F .text 00000010 SDIO_GetPowerState
080092c0 g F .text 000000ae UsbTransmitPipeBulkIN
08006154 g F .text 0000004a ff_convert
08009698 g F .text 00000012 TimerGet
08003ec4 g F .text 00000010 SDIO_GetPowerState
080094e4 g F .text 000000ae UsbTransmitPipeBulkIN
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
08007868 g F .text 00000074 NetInit
0800148c g F .text 00000042 USB_OTG_EPDeactivate
08002618 g F .text 000001a4 SD_InitializeCards
08003c70 g F .text 0000000c GPIO_ReadInputDataBit
08009418 g F .text 00000028 TimerInit
08003f68 g F .text 0000000e SDIO_WriteData
080079a0 g F .text 00000074 NetInit
08001488 g F .text 00000042 USB_OTG_EPDeactivate
08002614 g F .text 000001a4 SD_InitializeCards
08003c78 g F .text 0000000c GPIO_ReadInputDataBit
0800963c g F .text 00000028 TimerInit
08003f70 g F .text 0000000e SDIO_WriteData
20002820 g O .bss 00000642 uip_buf
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
080001fc g F .text 00000030 FileFirmwareUpdateStartedHook
08001168 g F .text 0000000e USB_OTG_EnableGlobalInt
08003e58 g F .text 00000018 SDIO_DeInit
080001f8 g F .text 00000030 FileFirmwareUpdateStartedHook
08001164 g F .text 0000000e USB_OTG_EnableGlobalInt
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
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -2881,7 +2881,7 @@ static SD_Error FindSCR(uint16_t rca, uint32_t *pscr)
if (timeout > 10000)
{
return SD_DATA_TIMEOUT;
}
}
}
if (SDIO_GetFlagStatus(SDIO_FLAG_DTIMEOUT) != RESET)
@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA)
* \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 */
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)
* \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, BYTE count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
{
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR;
}
#endif
/*!
* \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
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 ****************************************/

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>
<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>
</Project>

View File

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

View File

@ -42,20 +42,20 @@
</Tab>
</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>
<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>
<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>
</Workspace>

View File

@ -1,192 +1,266 @@
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.09b (C)ChaN, 2013
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -3186,7 +3186,7 @@ DSTATUS disk_status (BYTE drv)
* \param sector: start sector number (LBA)
* \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 */
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)
* \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, BYTE count)
DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, UINT count)
{
DWORD scratch [SD_BLOCKSIZE / 4]; /* Alignment ensured, need enough stack */
SD_Error sdstatus = SD_OK;
@ -3359,7 +3358,6 @@ DRESULT disk_write(BYTE drv, const BYTE *buff, DWORD sector, BYTE count)
return RES_ERROR;
}
#endif
/*!
* \brief ioctl implementation
@ -3416,19 +3414,8 @@ DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
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 ****************************************/

View File

@ -497,12 +497,12 @@
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"
"stm32f4xx.h"
"led.h"
1477216154 c:\work\software\openblt\target\source\boot.h
1485627342 c:\work\software\openblt\target\source\boot.h
"types.h"
"assert.h"
"blt_conf.h"
@ -515,59 +515,59 @@
"file.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"
1469431761 c:\work\software\openblt\target\source\com.h
1485627343 c:\work\software\openblt\target\source\com.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"
"system_stm32f4xx.h"
<stdint.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>
<core_cmInstr.h>
<core_cmFunc.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_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_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_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_can.h"
"stm32f4xx_crc.h"
@ -595,231 +595,231 @@
"stm32f4xx_wwdg.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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
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_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_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"
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_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"
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"
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"
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_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"
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_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_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"
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"
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_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_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_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"
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"
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_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"
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_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"
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_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"
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_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_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_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_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_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_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"
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"
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"
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"
"stm32f4xx.h"
"stm32f4xx_conf.h"
"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"
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"
"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"
"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"
"stm32f4xx.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"
"usb.h"
"usb_core.h"
@ -830,185 +830,185 @@
"usbd_desc.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"
1469431756 source:c:\work\software\openblt\target\source\backdoor.c
1485627195 source:c:\work\software\openblt\target\source\backdoor.c
"boot.h"
1476728156 source:c:\work\software\openblt\target\source\boot.c
1485627196 source:c:\work\software\openblt\target\source\boot.c
"boot.h"
1469431756 source:c:\work\software\openblt\target\source\com.c
1485627342 source:c:\work\software\openblt\target\source\com.c
"boot.h"
"can.h"
"uart.h"
"usb.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"
1469281006 source:c:\work\software\openblt\target\source\file.c
1493282507 source:c:\work\software\openblt\target\source\file.c
"boot.h"
<string.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"
"netdev.h"
"uip.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"
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"
"led.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"
"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_req.h"
"usbd_ioreq.h"
"usb_dcd_int.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"
"usbd_def.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"
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_regs.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"
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"
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"
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"
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"
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_core.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_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"
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_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"
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_ioreq.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"
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_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_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"
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"
"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_desc.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"
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_desc.h"
"usbd_req.h"
"usbd_conf.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_ioreq.h"
"boot.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"
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"
"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>
<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"
"stm32f4xx.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"
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"
"diskio.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"
"cc932.c"
"cc936.c"
@ -1016,18 +1016,18 @@
"cc950.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"
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"
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"
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"
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"

View File

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

View File

@ -21,6 +21,11 @@
<Cursor1 position="2090" topLine="19" />
</Cursor>
</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">
<Cursor>
<Cursor1 position="15860" topLine="331" />
@ -51,9 +56,9 @@
<Cursor1 position="1160" topLine="45" />
</Cursor>
</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>
<Cursor1 position="2691" topLine="35" />
<Cursor1 position="2693" topLine="35" />
</Cursor>
</File>
<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
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -23,6 +23,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -297,7 +309,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -307,7 +319,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
} while ((token == 0xFF) && (TimerGet() < timeOutTime));
if(token != 0xFE) return 0; /* If not valid data token, retutn with error */
do { /* Receive the data block into buffer */
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 */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -353,7 +364,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -419,7 +429,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -487,10 +497,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive number (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -523,12 +533,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -557,7 +566,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -565,7 +573,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -663,26 +670,6 @@ DRESULT disk_ioctl (
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>
<Tab>
<Identity>TabID-6158-952</Identity>
@ -55,7 +55,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<SelectedTab>0</SelectedTab></Wnd3><Wnd4>
<Tabs>
<Tab>
<Identity>TabID-16907-955</Identity>
@ -67,7 +67,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2>
<SelectedTab>0</SelectedTab></Wnd4><Wnd5>
<Tabs>
<Tab>
<Identity>TabID-27655-958</Identity>
@ -77,20 +77,20 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd2></Windows>
<SelectedTab>0</SelectedTab></Wnd5></Windows>
<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>
<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>
</Project>

View File

@ -41,7 +41,7 @@ LMIFTDIserialNo=0D11005A
LMIFTDIfoundProbes=
LMI_LeaveTargetRunning=0x00000000
[DebugChecksum]
Checksum=-509141111
Checksum=-1186740258
[Exceptions]
StopOnUncaught=_ 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>
<Windows>
<Wnd0>
<Wnd2>
<Tabs>
<Tab>
<Identity>TabID-23736-13759</Identity>
@ -29,20 +29,20 @@
</Tab>
</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>
<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>
<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>
</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
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 82786 /* Revision ID */
/ FatFs - FAT file system module configuration file R0.12 (C)ChaN, 2016
/---------------------------------------------------------------------------*/
#define _FFCONF 88100 /* Revision ID */
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/----------------------------------------------------------------------------*/
/ Function Configurations
/---------------------------------------------------------------------------*/
#define _FS_TINY 0 /* 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/ object instead of the sector buffer in the individual file object for file
/ data transfer. This reduces memory consumption 512 bytes each file object. */
#define _FS_READONLY 0
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
/ 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 */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/ 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.
#define _FS_MINIMIZE 0
/* This option defines minimization level to remove some basic API functions.
/
/ 0: Full function.
/ 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/ 0: All basic functions are enabled.
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
/ are removed.
/ 2: f_opendir and f_readdir are removed in addition to 1.
/ 3: f_lseek is removed in addition to 2. */
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
/ 3: f_lseek() function is removed in addition to 2. */
#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 */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
#define _USE_FIND 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 */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
#define _USE_MKFS 0
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
#define _USE_LABEL 0 /* 0:Disable or 1:Enable */
/* To enable volume label functions, set _USE_LAVEL to 1 */
#define _USE_FASTSEEK 0
/* This option switches fast seek function. (0:Disable or 1:Enable) */
#define _USE_FORWARD 0 /* 0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
#define _USE_EXPAND 0
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#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.
/
/ 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
/ 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
/ 949 - Korean (DBCS, OEM, Windows)
/ 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
/ 1250 - Central Europe (Windows)
/ 1251 - Cyrillic (Windows)
/ 1252 - Latin 1 (Windows)
/ 1253 - Greek (Windows)
/ 1254 - Turkish (Windows)
/ 1255 - Hebrew (Windows)
/ 1256 - Arabic (Windows)
/ 1257 - Baltic (Windows)
/ 1258 - Vietnam (OEM, Windows)
/ 437 - U.S. (OEM)
/ 720 - Arabic (OEM)
/ 737 - Greek (OEM)
/ 775 - Baltic (OEM)
/ 850 - Multilingual Latin 1 (OEM)
/ 858 - Multilingual Latin 1 + Euro (OEM)
/ 852 - Latin 2 (OEM)
/ 855 - Cyrillic (OEM)
/ 866 - Russian (OEM)
/ 857 - Turkish (OEM)
/ 862 - Hebrew (OEM)
/ 874 - Thai (OEM, Windows)
/ 1 - ASCII only (Valid for non LFN cfg.)
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
/ 437 - U.S.
/ 720 - Arabic
/ 737 - Greek
/ 771 - KBL
/ 775 - Baltic
/ 850 - Latin 1
/ 852 - Latin 2
/ 855 - Cyrillic
/ 857 - Turkish
/ 860 - Portuguese
/ 861 - Icelandic
/ 862 - Hebrew
/ 863 - Canadian French
/ 864 - Arabic
/ 865 - Nordic
/ 866 - Russian
/ 869 - Greek 2
/ 932 - Japanese (DBCS)
/ 936 - Simplified Chinese (DBCS)
/ 949 - Korean (DBCS)
/ 950 - Traditional Chinese (DBCS)
*/
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
#define _MAX_LFN 255
/* The _USE_LFN switches the support of long file name (LFN).
/
/ 0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/ 0: Disable support of LFN. _MAX_LFN has no effect.
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/ 2: Enable LFN with dynamic working buffer on the STACK.
/ 3: Enable LFN with dynamic working buffer on the HEAP.
/
/ The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/ Unicode handling functions ff_convert() and ff_wtoupper() must be added
/ to the project. When enable to use heap, memory control functions
/ ff_memalloc() and ff_memfree() must be added to the project. */
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
/ 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 */
/* To switch the character code set on FatFs API to Unicode,
/ enable LFN feature and set _LFN_UNICODE to 1. */
#define _LFN_UNICODE 0
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
/ 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 */
/* The _FS_RPATH option configures relative path feature.
#define _STRF_ENCODE 3
/* 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.
/ 1: Enable relative path. f_chdrive() and f_chdir() are available.
/ 2: f_getcwd() is available in addition to 1.
/ 0: ANSI/OEM
/ 1: UTF-16LE
/ 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
/* Number of volumes (logical drives) to be used. */
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/ Always set 512 for memory card and hard disk but a larger value may be
/ required for on-board flash memory, floppy disk and optical disk.
/ When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _STR_VOLUME_ID 0
#define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
/* _STR_VOLUME_ID switches string support of volume ID.
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
/ 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 */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
#define _MULTI_PARTITION 0
/* This option switches support of multi-partition on a physical drive.
/ By default (0), each logical drive number is bound to the same physical drive
/ 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 */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/ should be added to the disk_ioctl functio. */
#define _MIN_SS 512
#define _MAX_SS 512
/* 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
/----------------------------------------------------------------------------*/
/---------------------------------------------------------------------------*/
#define _WORD_ACCESS 0 /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/ option defines which access method is used to the word data on the FAT volume.
#define _FS_TINY 0
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
/ 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.
/ 1: Word access. Do not choose this unless following condition is met.
/ 0: Disable file lock function. To avoid volume corruption, application program
/ 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
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size.
*/
/* 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 re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
/ function, must be added to the project. Samples are available in
/ option/syscall.c.
/
/ 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/ 1: Enable reentrancy. Also user provided synchronization handlers,
/ ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/ function must be added to the project. */
/ The _FS_TIMEOUT defines timeout period in unit of time tick.
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.c. */
#define _FS_LOCK 0 /* 0:Disable or >=1:Enable */
/* 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 */
/*--- End of configuration options ---*/

View File

@ -32,6 +32,18 @@
#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)
{
BYTE d;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 500 ms from now */
timeOutTime = TimerGet() + 500;
@ -273,7 +285,7 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
)
{
BYTE token;
ULONG timeOutTime;
DWORD timeOutTime;
/* set timeout for 100 ms from now */
timeOutTime = TimerGet() + 100;
@ -300,7 +312,6 @@ int rcvr_datablock ( /* 1:OK, 0:Failed */
/* Send a data packet to MMC */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
static
int xmit_datablock ( /* 1:OK, 0:Failed */
const BYTE *buff, /* 512 byte data block to be transmitted */
@ -329,7 +340,6 @@ int xmit_datablock ( /* 1:OK, 0:Failed */
return 1;
}
#endif
@ -395,7 +405,7 @@ DSTATUS disk_initialize (
)
{
BYTE n, cmd, ty, ocr[4];
ULONG timeOutTime;
DWORD timeOutTime;
if (pdrv) return STA_NOINIT; /* Supports only single drive */
@ -463,10 +473,10 @@ DSTATUS disk_status (
/*-----------------------------------------------------------------------*/
DRESULT disk_read (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE *buff, /* Pointer to the data buffer to store read data */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
BYTE *buff, /* Data buffer to store read data */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to read */
)
{
if (pdrv || !count) return RES_PARERR;
@ -499,12 +509,11 @@ DRESULT disk_read (
/* Write Sector(s) */
/*-----------------------------------------------------------------------*/
#if _USE_WRITE
DRESULT disk_write (
BYTE pdrv, /* Physical drive nmuber (0) */
const BYTE *buff, /* Pointer to the data to be written */
DWORD sector, /* Start sector number (LBA) */
BYTE count /* Sector count (1..255) */
BYTE pdrv, /* Physical drive nmuber to identify the drive */
const BYTE *buff, /* Data to be written */
DWORD sector, /* Sector address in LBA */
UINT count /* Number of sectors to write */
)
{
if (pdrv || !count) return RES_PARERR;
@ -533,7 +542,6 @@ DRESULT disk_write (
return count ? RES_ERROR : RES_OK;
}
#endif
@ -541,7 +549,6 @@ DRESULT disk_write (
/* Miscellaneous Functions */
/*-----------------------------------------------------------------------*/
#if _USE_IOCTL
DRESULT disk_ioctl (
BYTE pdrv, /* Physical drive nmuber (0) */
BYTE cmd, /* Control code */
@ -623,7 +630,7 @@ DRESULT disk_ioctl (
}
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 */
xchg_spi(0xFF);
if (rcvr_datablock(buff, 64))
@ -639,27 +646,6 @@ DRESULT disk_ioctl (
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_end__ = 0x00008000;
__STACKSIZE__ = 512;
__STACKSIZE__ = 2048;
__STACKSIZE_PROCESS__ = 0;
__STACKSIZE_IRQ__ = 0;
__STACKSIZE_FIQ__ = 0;

View File

@ -6,7 +6,7 @@ MEMORY
SECTIONS
{
__STACKSIZE__ = 512;
__STACKSIZE__ = 2048;
.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_end__ = 0x20001FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200;
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x100;
/**** 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_end__ = 0x20001FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x800;
/**** End of ICF editor section. ###ICF###*/

View File

@ -30,7 +30,7 @@
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x00000400
Stack_Size EQU 0x00000800
AREA STACK, NOINIT, READWRITE, ALIGN=3
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_end__ = 0x20001FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200;
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x100;
/**** End of ICF editor section. ###ICF###*/

View File

@ -114,7 +114,7 @@ void FileInit(void)
/* set the initial state */
firmwareUpdateState = FIRMWARE_UPDATE_STATE_IDLE;
/* 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 */
ASSERT_RT(fresult == FR_OK);
} /*** 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">
<html lang="en">
<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 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="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="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs - Generic FAT File System Module</title>
@ -17,21 +19,22 @@
<div class="abst">
<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>
<ul>
<li>Windows compatible FAT file system.</li>
<li>Windows compatible FAT/exFAT file system.</li>
<li>Platform independent. Easy to port.</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>
<li>Multiple volumes (physical drives and partitions).</li>
<li>Multiple ANSI/OEM code pages including DBCS.</li>
<li>Long file name support in ANSI/OEM or Unicode.</li>
<li>RTOS support.</li>
<li>Multiple sector size support.</li>
<li>Read-only, minimized API, I/O buffer and etc...</li>
<li>Long file name in ANSI/OEM or Unicode.</li>
<li>exFAT file system.</li>
<li>RTOS envilonment.</li>
<li>Fixed or variable sector size.</li>
<li>Read-only, optional API, I/O buffer and etc...</li>
</ul>
</li>
</ul>
@ -40,55 +43,76 @@
<div class="para">
<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>
<li><a href="en/mount.html">f_mount</a> - Register/Unregister a work area</li>
<li><a href="en/open.html">f_open</a> - Open/Create a file</li>
<li><a href="en/close.html">f_close</a> - Close a file</li>
<li><a href="en/read.html">f_read</a> - Read file</li>
<li><a href="en/write.html">f_write</a> - Write file</li>
<li><a href="en/lseek.html">f_lseek</a> - Move read/write pointer, Expand file size</li>
<li><a href="en/truncate.html">f_truncate</a> - Truncate file size</li>
<li><a href="en/sync.html">f_sync</a> - Flush cached data</li>
<li><a href="en/opendir.html">f_opendir</a> - Open a directory</li>
<li><a href="en/readdir.html">f_readdir</a> - Read a directory item</li>
<li><a href="en/getfree.html">f_getfree</a> - Get free clusters</li>
<li><a href="en/stat.html">f_stat</a> - Get file status</li>
<li><a href="en/mkdir.html">f_mkdir</a> - Create a directory</li>
<li><a href="en/unlink.html">f_unlink</a> - Remove a file or directory</li>
<li><a href="en/chmod.html">f_chmod</a> - Change attribute</li>
<li><a href="en/utime.html">f_utime</a> - Change timestamp</li>
<li><a href="en/rename.html">f_rename</a> - Rename/Move a file or 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</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>
<li><a href="en/forward.html">f_forward</a> - Forward file data to the stream directly</li>
<li><a href="en/mkfs.html">f_mkfs</a> - Create a file system on the drive</li>
<li><a href="en/fdisk.html">f_fdisk</a> - Divide a physical drive</li>
<li><a href="en/gets.html">f_gets</a> - Read a string</li>
<li><a href="en/putc.html">f_putc</a> - Write a character</li>
<li><a href="en/puts.html">f_puts</a> - Write a string</li>
<li><a href="en/printf.html">f_printf</a> - Write a formatted string</li>
<li><a href="en/tell.html">f_tell</a> - Get the current read/write pointer</li>
<li><a href="en/eof.html">f_eof</a> - Test for end-of-file on a file</li>
<li><a href="en/size.html">f_size</a> - Get size of a file</li>
<li><a href="en/error.html">f_error</a> - Test for an error on a file</li>
<li>File Access
<ul>
<li><a href="en/open.html">f_open</a> - Open/Create a file</li>
<li><a href="en/close.html">f_close</a> - Close an open file</li>
<li><a href="en/read.html">f_read</a> - Read data</li>
<li><a href="en/write.html">f_write</a> - Write data</li>
<li><a href="en/lseek.html">f_lseek</a> - Move read/write pointer, Expand size</li>
<li><a href="en/truncate.html">f_truncate</a> - Truncate size</li>
<li><a href="en/sync.html">f_sync</a> - Flush cached data</li>
<li><a href="en/forward.html">f_forward</a> - Forward data to the stream</li>
<li><a href="en/expand.html">f_expand</a> - Allocate a contiguous block to the file</li>
<li><a href="en/gets.html">f_gets</a> - Read a string</li>
<li><a href="en/putc.html">f_putc</a> - Write a character</li>
<li><a href="en/puts.html">f_puts</a> - Write a string</li>
<li><a href="en/printf.html">f_printf</a> - Write a formatted string</li>
<li><a href="en/tell.html">f_tell</a> - Get current read/write pointer</li>
<li><a href="en/eof.html">f_eof</a> - Test for end-of-file</li>
<li><a href="en/size.html">f_size</a> - Get size</li>
<li><a href="en/error.html">f_error</a> - Test for an error</li>
</ul>
</li>
<li>Directory Access
<ul>
<li><a href="en/opendir.html">f_opendir</a> - Open a directory</li>
<li><a href="en/closedir.html">f_closedir</a> - Close an open directory</li>
<li><a href="en/readdir.html">f_readdir</a> - Read an directory item</li>
<li><a href="en/findfirst.html">f_findfirst</a> - Open a directory and read first item matched</li>
<li><a href="en/findnext.html">f_findnext</a> - Read a next item matched</li>
</ul>
</li>
<li>File/Directory Management
<ul>
<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>
</div>
<div class="para">
<h3>Disk I/O 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>
<h3>Device Control Interface</h3>
<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>
<li><a href="en/dinit.html">disk_initialize</a> - Initialize disk drive</li>
<li><a href="en/dstat.html">disk_status</a> - Get disk status</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/dioctl.html">disk_ioctl</a> - Control device dependent features</li>
<li><a href="en/fattime.html">get_fattime</a> - Get current time</li>
<li><a href="en/dstat.html">disk_status</a> - Get device 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/dwrite.html">disk_write</a> - Write sector(s)</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>
</ul>
</div>
@ -97,11 +121,25 @@
<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>
<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 20, 2013</span></li>
</ul>
<li>Read first: <a href="en/appnote.html">FatFs module application note</a> <span class="mfd">April 12, 2016</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>
<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>
<hr>
<p class="foot"><a href="../../fsw_e.html">Return</a></p>
</body>
</html>

View File

@ -1,36 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<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 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="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">
<title>ELM - FatFs 汎用FATファイルシステム・モジュール</title>
<title>FatFs 汎用FATファイルシステム モジュール</title>
</head>
<body>
<h1>FatFs 汎用FATファイルシステムモジュール</h1>
<h1>FatFs 汎用FATファイルシステム モジュール</h1>
<hr>
<div class="abst">
<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>
<h4>FatFsモジュールの特徴</h4>
<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>
<ul>
<li>Windows互換 FATファイル・システム</li>
<li>プラットフォーム非依存</li>
<li>コンパクトなコードとRAM使用量</li>
<li>多くの構成オプション:
<li>Windows互換 FAT/exFATファイル システム</li>
<li>プラットフォーム非依存</li>
<li>コンパクトなコードとRAM使用量</li>
<li>多くの<a href="ja/config.html">構成オプション</a>:
<ul>
<li>複数のボリューム(物理ドライブ・区画)</li>
<li>DBCSを含む複数のANSI/OEMコード・ページ</li>
<li>長いファイル名(LFN) (Unicode APIも選択可)</li>
<li>マルチタスク関連</li>
<li>マルチ・セクタ・サイズ</li>
<li>リード・オンリー構成、一部APIの削除、バッファ構成、その他…</li>
<li>ボリューム構成(物理ドライブ数・区画)</li>
<li>DBCSを含む複数のANSI/OEMコード ページの選択</li>
<li>長いファイル名(LFN)への対応</li>
<li>exFATファイルシステムへの対応</li>
<li>RTOS環境への対応</li>
<li>セクタ サイズ(固定/可変)</li>
<li>リード オンリー構成、一部APIの削除、バッファ構成、その他…</li>
</ul>
</li>
</ul>
@ -38,69 +41,105 @@
<div class="para">
<h3>上位レイヤインターフェース</h3>
<p>FatFsモジュールは、アプリケーション・レイヤに対し、次のファイル操作関数(API)を提供します。つまり、このリストはFatFsにできることをシンプルに示しています。</p>
<h3>上位レイヤ インターフェース</h3>
<img src="img/layers1.png" class="rset" width="245" height="220" alt="layer">
<ul>
<li><a href="ja/mount.html">f_mount</a> - ワークエリアの登録・削除</li>
<li><a href="ja/open.html">f_open</a> - ファイルのオープン・作成</li>
<li><a href="ja/close.html">f_close</a> - ファイルのクローズ</li>
<li><a href="ja/read.html">f_read</a> - ファイルの読み出し</li>
<li><a href="ja/write.html">f_write</a> - ファイルの書き込み</li>
<li><a href="ja/lseek.html">f_lseek</a> - リード/ライト・ポインタの移動, ファイルの拡張</li>
<li><a href="ja/truncate.html">f_truncate</a> - ファイル・サイズの切り詰め</li>
<li><a href="ja/sync.html">f_sync</a> - キャッシュされたデータのフラッシュ</li>
<li><a href="ja/opendir.html">f_opendir</a> - ディレクトリのオープン</li>
<li><a href="ja/readdir.html">f_readdir</a> - ディレクトリの読み出し</li>
<li><a href="ja/getfree.html">f_getfree</a> - ボリューム空き領域の取得</li>
<li><a href="ja/stat.html">f_stat</a> - ファイル・ステータスの取得</li>
<li><a href="ja/mkdir.html">f_mkdir</a> - ディレクトリの作成</li>
<li><a href="ja/unlink.html">f_unlink</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/rename.html">f_rename</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>
<li><a href="ja/getlabel.html">f_getlabel</a> - ボリューム・ラベルの取得</li>
<li><a href="ja/setlabel.html">f_setlabel</a> - ボリューム・ラベルの設定</li>
<li><a href="ja/forward.html">f_forward</a> - ファイル・データをストリーム関数に転送</li>
<li><a href="ja/mkfs.html">f_mkfs</a> - 論理ドライブのフォーマット</li>
<li><a href="ja/fdisk.html">f_fdisk</a> - 物理ドライブの分割</li>
<li><a href="ja/gets.html">f_gets</a> - 文字列の読み出し</li>
<li><a href="ja/putc.html">f_putc</a> - 文字の書き込み</li>
<li><a href="ja/puts.html">f_puts</a> - 文字列の書き込み</li>
<li><a href="ja/printf.html">f_printf</a> - 書式化文字列の書き込み</li>
<li><a href="ja/tell.html">f_tell</a> - 現在のリード/ライト・ポインタの取得</li>
<li><a href="ja/eof.html">f_eof</a> - ファイル終端の有無の取得</li>
<li><a href="ja/size.html">f_size</a> - ファイル・サイズの取得</li>
<li><a href="ja/error.html">f_error</a> - ファイルのエラーの有無の取得</li>
<li>ファイル アクセス
<ul>
<li><a href="ja/open.html">f_open</a> - ファイルのオープン・作成</li>
<li><a href="ja/close.html">f_close</a> - ファイルのクローズ</li>
<li><a href="ja/read.html">f_read</a> - データの読み出し</li>
<li><a href="ja/write.html">f_write</a> - データの書き込み</li>
<li><a href="ja/lseek.html">f_lseek</a> - リード/ライト ポインタの移動, サイズの拡張</li>
<li><a href="ja/truncate.html">f_truncate</a> - サイズの切り詰め</li>
<li><a href="ja/sync.html">f_sync</a> - キャッシュされたデータのフラッシュ</li>
<li><a href="ja/forward.html">f_forward</a> - データをストリーム関数に転送</li>
<li><a href="ja/expand.html">f_expand</a> - 連続領域の割り当て</li>
<li><a href="ja/gets.html">f_gets</a> - 文字列の読み出し</li>
<li><a href="ja/putc.html">f_putc</a> - 文字の書き込み</li>
<li><a href="ja/puts.html">f_puts</a> - 文字列の書き込み</li>
<li><a href="ja/printf.html">f_printf</a> - 書式化文字列の書き込み</li>
<li><a href="ja/tell.html">f_tell</a> - リード/ライト ポインタの取得</li>
<li><a href="ja/eof.html">f_eof</a> - 終端の有無の取得</li>
<li><a href="ja/size.html">f_size</a> - サイズの取得</li>
<li><a href="ja/error.html">f_error</a> - エラーの有無の取得</li>
</ul>
</li>
<li>ディレクトリ アクセス
<ul>
<li><a href="ja/opendir.html">f_opendir</a> - ディレクトリのオープン</li>
<li><a href="ja/closedir.html">f_closedir</a> - ディレクトリのクローズ</li>
<li><a href="ja/readdir.html">f_readdir</a> - 項目の読み出し</li>
<li><a href="ja/findfirst.html">f_findfirst</a> - ディレクトリのオープンと最初の検索項目の読み出し</li>
<li><a href="ja/findnext.html">f_findnext</a> - 次の検索項目の読み出し</li>
</ul>
</li>
<li>ファイル/ディレクトリ管理
<ul>
<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>
</div>
<div class="para">
<h3>下位レイヤ・インターフェース</h3>
<p>FatFsモジュールは、単なるファイル・システム・レイヤなので、メディア制御レイヤは含まれません。使用するメディアに対応した制御関数は、ユーザによって提供される必要があります。FatFsモジュールは、下位レイヤに対し少なくとも次のインターフェースを要求します。OS関連機能を有効にしたときは、加えてプロセス/メモリ関連関数も必要になります。サンプル・プロジェクトに下位レイヤの実装例を示します。</p>
<h3>下位レイヤ インターフェース</h3>
<img src="img/layers2.png" class="rset" width="245" height="220" alt="layer">
<p>FatFsモジュールは、単なるファイル システム レイヤなので、その下位に当たるストレージ デバイス制御レイヤは含まれません。プラットフォームやストレージ デバイスに対応した制御レイヤは、インプリメンタによって提供される必要があります。FatFsモジュールは、下位レイヤに対し標準的には次のインターフェースを要求します。一部の拡張機能、たとえばOS関連機能を有効にしたときは、加えてプロセス/メモリ操作関数なども必要になります。サンプル プロジェクトに下位レイヤの実装例を示します。</p>
<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/dread.html">disk_read</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/fattime.html">get_fattime</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/dwrite.html">disk_write</a> - データの書き込み</li>
<li><a href="ja/dioctl.html">disk_ioctl</a> - その他のデバイス制御</li>
<li><a href="ja/fattime.html">get_fattime</a> - 日付・時刻の取得</li>
</ul>
</div>
<div class="para">
<h3>資料</h3>
<p>FatFsモジュールはフリーソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーションノートを参照してください。</p>
<h3>資料</h3>
<p>FatFsモジュールはフリー ソフトウェアとして教育・研究・開発用に公開しています。どのような利用目的(個人利用から商用まで)でも使用・改変・配布について一切の制限はありませんが、全て利用者の責任の下での利用とします。詳しくはアプリケーション ノートを参照してください。</p>
<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">2013. 4. 20</span></li>
<li>最初に読め: <a href="ja/appnote.html">FatFsモジュール アプリケーション ノート</a> <span class="mfd">2016. 4. 12</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>
</div>
<hr>
<p class="foot"><a href="../../fsw.html">戻る</a></p>
</body>
</html>

View File

@ -7,6 +7,8 @@ a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative
abbr {border-width: 1px;}
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;}
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;}
@ -17,6 +19,7 @@ tt {margin: 0 0.2em; font-size: 0.85em; font-family: "Consolas", "Courier New",
tt.arg {font-style: italic;}
ol {margin: 0.5em 2.5em;}
ul {margin: 0.5em 2em;}
ul ul {margin: 0 2em 0.5em 1em;}
dl {margin: 0.5em 1em;}
dd {margin: 0 2em;}
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; }
.equ {text-indent: 0; margin: 1em 2em 1em;}
.indent {margin-left: 2em;}
.rset {float: right; margin: 0 0 0.5em 0.5em;}
.lset {float: left; margin: 0 0.5em 0.5em 0.5em;}
.rset {float: right; margin: 0.3em 0 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;}
a.imglnk img {border: 1px solid;}
.iequ {white-space: nowrap; font-weight: bold;}
.clr {clear: both;}
.it {font-style: italic;}
.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;}
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;}
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;}
h5 {font-size: 1em; font-family: sans-serif; margin: 0.5em 0 0em;}
div.doc h3 {border-color: #b0d8d8; border-style: solid; border-width: 0px 0px 4px 12px; padding: 4px; margin-top: 3em;}
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%;}
.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;}
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;}
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;}
@ -20,6 +22,7 @@ tt {margin: 0 0.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consola
tt.arg {font-style: italic;}
ol {margin: 0.5em 2.5em;}
ul {margin: 0.5em 2em;}
ul ul {margin: 0 2em 0.5em 1em;}
dl {margin: 0.5em 1em;}
dd {margin: 0em 2em;}
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; }
.equ {text-indent: 0; margin: 1em 2em 1em;}
.indent {margin-left: 2em;}
.rset {float: right; margin: 0 0 0.5em 0.5em;}
.lset {float: left; margin: 0 0.5em 0.5em 0.5em;}
.rset {float: right; margin: 0.3em 0 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;}
a.imglnk img {border: 1px solid;}
.iequ {white-space: nowrap; font-weight: bold;}
.clr {clear: both;}
.it {font-style: italic;}
.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;}
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;}
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;}
h5 {font-size: 1em; font-family: " Pゴシック",sans-serif; margin: 0.5em 0 0em;}
div.doc h3 {border-color: #b0d8d8; border-style: solid; border-width: 0px 0px 4px 12px; padding: 4px; margin-top: 3em;}
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%;}
.indent {margin-left: 2em;}

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