Update FreeRTOS+FAT SL to version 1.0.1.

This commit is contained in:
Richard Barry 2014-04-23 13:28:21 +00:00
parent 6af9b013eb
commit a46f251d11
41 changed files with 1169 additions and 766 deletions

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* FreeRTOS+FAT SL is an complementary component provided to Real Time Engineers
* Ltd. by HCC Embedded for use with FreeRTOS. It is not, in itself, part of
@ -38,7 +38,7 @@
#define _CONFIG_FAT_SL_H
#include "../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -0,0 +1,62 @@
/*
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* FreeRTOS+FAT SL is an complementary component provided to Real Time Engineers
* Ltd. by HCC Embedded for use with FreeRTOS. It is not, in itself, part of
* the FreeRTOS kernel. FreeRTOS+FAT SL is licensed separately from FreeRTOS,
* and uses a different license to FreeRTOS. FreeRTOS+FAT SL uses a dual
* license model, information on which is provided below:
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified and distributed
* without charge provided the user adheres to version two of the GNU General
* Public license (GPL) and does not remove the copyright notice or this text.
* The GPL V2 text is available on the gnu.org web site, and on the following
* URL: http://www.FreeRTOS.org/gpl-2.0.txt
*
* - Commercial licensing -
* Businesses and individuals who wish to incorporate FreeRTOS+FAT SL into
* proprietary software for redistribution in any form must first obtain a
* commercial license - and in-so-doing support the maintenance, support and
* further development of the FreeRTOS+FAT SL product. Commercial licenses can
* be obtained from http://shop.freertos.org and do not require any source files
* to be changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
* cannot use FreeRTOS+FAT SL unless you agree that you use the software 'as
* is'. FreeRTOS+FAT SL is provided WITHOUT ANY WARRANTY; without even the
* implied warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. Real Time Engineers Ltd. and HCC Embedded disclaims all
* conditions and terms, be they implied, expressed, or statutory.
*
* http://www.FreeRTOS.org
* http://www.FreeRTOS.org/FreeRTOS-Plus
*
*/
#ifndef _CONFIG_FAT_SL_TEST_H
#define _CONFIG_FAT_SL_TEST_H
#include "../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
/*
** Maximum size for seek test.
** Options: 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768
*/
#define F_MAX_SEEK_TEST 16384
/*
** Defines media type for testing.
** Options: F_FAT12_MEDIA, F_FAT16_MEDIA, F_FAT32_MEDIA
*/
#define F_FAT_TYPE F_FAT16_MEDIA
#endif /* ifndef _CONFIG_STHIN_TEST_H */

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* FreeRTOS+FAT SL is an complementary component provided to Real Time Engineers
* Ltd. by HCC Embedded for use with FreeRTOS. It is not, in itself, part of

View File

@ -168,6 +168,7 @@
<ClInclude Include="..\..\Source\FreeRTOS-Plus-FAT-SL\api\fat_sl.h" />
<ClInclude Include="..\..\Source\FreeRTOS-Plus-FAT-SL\fat_sl\common\f_lock.h" />
<ClInclude Include="ConfigurationFiles\config_fat_sl.h" />
<ClInclude Include="ConfigurationFiles\config_fat_sl_test.h" />
<ClInclude Include="FreeRTOSConfig.h" />
<ClInclude Include="..\..\Source\FreeRTOS-Plus-FAT-SL\fat_sl\common\dir.h" />
<ClInclude Include="..\..\Source\FreeRTOS-Plus-FAT-SL\fat_sl\common\drv.h" />

View File

@ -173,5 +173,8 @@
<ClInclude Include="..\..\Source\FreeRTOS-Plus-FAT-SL\fat_sl\common\f_lock.h">
<Filter>FreeRTOS+\FreeRTOS+FAT SL</Filter>
</ClInclude>
<ClInclude Include="ConfigurationFiles\config_fat_sl_test.h">
<Filter>Configuration Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -44,7 +44,7 @@
#include "config_fat_sl.h"
#include "../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -87,23 +87,6 @@ typedef struct
F_POS pos;
} F_FIND;
/* definitions for ctime */
#define F_CTIME_SEC_SHIFT 0
#define F_CTIME_SEC_MASK 0x001f /*0-30 in 2seconds*/
#define F_CTIME_MIN_SHIFT 5
#define F_CTIME_MIN_MASK 0x07e0 /*0-59 */
#define F_CTIME_HOUR_SHIFT 11
#define F_CTIME_HOUR_MASK 0xf800 /*0-23*/
/* definitions for cdate */
#define F_CDATE_DAY_SHIFT 0
#define F_CDATE_DAY_MASK 0x001f /*0-31*/
#define F_CDATE_MONTH_SHIFT 5
#define F_CDATE_MONTH_MASK 0x01e0 /*1-12*/
#define F_CDATE_YEAR_SHIFT 9
#define F_CDATE_YEAR_MASK 0xfe00 /*0-119 (1980+value)*/
#define F_ATTR_ARC 0x20
#define F_ATTR_DIR 0x10
#define F_ATTR_VOLUME 0x08
@ -126,7 +109,6 @@ typedef struct
unsigned long abspos;
unsigned long filesize;
unsigned long startcluster;
unsigned long prevcluster;
unsigned long relpos;
unsigned char modified;
unsigned char mode;
@ -238,9 +220,6 @@ enum
* for file changed events
*
***************************************************************************/
#ifndef F_FILE_CHANGED_EVENT
#define F_FILE_CHANGED_EVENT 0
#endif
#if F_FILE_CHANGED_EVENT
@ -277,9 +256,17 @@ extern F_FILE_CHANGED_EVENTFUNC f_filechangedevent;
#define FACTION_ADDED 0x00000001
#define FACTION_REMOVED 0x00000002
#define FACTION_MODIFIED 0x00000003
#define FACTION_RENAMED_OLD_NAME 0x00000004
#define FACTION_RENAMED_NEW_NAME 0x00000005
#endif /* if F_FILE_CHANGED_EVENT */
unsigned char fs_init ( void );
unsigned char fs_delete ( void );
#define f_initvolume fn_initvolume
#define f_delvolume fn_delvolume
unsigned char fn_initvolume ( F_DRIVERINIT initfunc );
unsigned char fn_delvolume ( void );
@ -318,7 +305,6 @@ F_FILE * fn_truncate ( const char *, long );
unsigned char fn_getcwd ( char * buffer, unsigned char maxlen, char root );
unsigned char fn_hardformat ( unsigned char fattype );
unsigned char fn_format ( unsigned char fattype );
unsigned char fn_getserial ( unsigned long * );
@ -327,14 +313,6 @@ unsigned char fn_getserial ( unsigned long * );
#include "FreeRTOS.h"
#include "semphr.h"
#ifndef FS_MUTEX_DEFINED
extern xSemaphoreHandle fs_lock_semaphore;
#endif /* FS_MUTEX_DEFINED */
unsigned char fn_init ( void );
#define f_init fn_init
#define f_initvolume fn_initvolume
#define f_delvolume fn_delvolume
unsigned char fr_hardformat ( unsigned char fattype );
#define f_hardformat( fattype ) fr_hardformat( fattype )
@ -405,11 +383,6 @@ F_FILE * fr_truncate ( const char *, long );
#else /* F_FS_THREAD_AWARE */
unsigned char fn_init ( void );
#define f_init fn_init
#define f_initvolume fn_initvolume
#define f_delvolume fn_delvolume
#define f_hardformat( fattype ) fn_hardformat( fattype )
#define f_format( fattype ) fn_hardformat( fattype )
@ -468,6 +441,7 @@ F_FILE * fn_truncate ( const char *, long );
#endif /* F_FS_THREAD_AWARE */
/****************************************************************************
*
* end of fat_sl.h

View File

@ -1,29 +1,29 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
* Details of both license options follow:
*
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* this text. The GPL V2 text is available on the gnu.org web site, and on the
* following URL: http://www.FreeRTOS.org/gpl-2.0.txt.
*
*
* - Commercial licensing -
* Businesses and individuals who for commercial or other reasons cannot comply
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
@ -42,7 +42,7 @@
#define _CONFIG_FAT_SL_H
#include "../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -49,7 +49,7 @@
#include "file.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -206,7 +206,9 @@ unsigned char _f_findfilewc ( char * name, char * ext, F_POS * pos, F_DIRENTRY *
pos->cluster = gl_volume.bootrecord.rootcluster;
}
else
{
return 0;
}
}
{
@ -303,6 +305,7 @@ static void _f_getfilename ( char * dest, char * name, char * ext )
unsigned long _f_getdecluster ( F_DIRENTRY * de )
{
unsigned long cluster;
if ( gl_volume.mediatype == F_FAT32_MEDIA )
{
cluster = _f_getword( &de->clusterhi );
@ -384,6 +387,7 @@ unsigned char _f_findpath ( F_NAME * fsname, F_POS * pos )
{
return 0;
}
if ( !( de->attr & F_ATTR_DIR ) )
{
return 0;
@ -506,8 +510,6 @@ unsigned char _f_findpath ( F_NAME * fsname, F_POS * pos )
* error code or zero if successful
*
***************************************************************************/
unsigned char fn_getcwd ( char * buffer, unsigned char maxlen, char root )
{
unsigned char a;
@ -557,8 +559,6 @@ unsigned char fn_getcwd ( char * buffer, unsigned char maxlen, char root )
* error code or zero if successful
*
***************************************************************************/
unsigned char fn_findfirst ( const char * filename, F_FIND * find )
{
unsigned char ret;
@ -605,8 +605,6 @@ unsigned char fn_findfirst ( const char * filename, F_FIND * find )
* error code or zero if successful
*
***************************************************************************/
unsigned char fn_findnext ( F_FIND * find )
{
F_DIRENTRY * de;
@ -827,7 +825,9 @@ unsigned char _f_addentry ( F_NAME * fsname, F_POS * pos, F_DIRENTRY * * pde )
pos->cluster = gl_volume.bootrecord.rootcluster;
}
else
{
return F_ERR_NOMOREENTRY;
}
}
{

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define __DIR_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -51,6 +51,22 @@ extern "C" {
#endif
/* definitions for ctime */
#define F_CTIME_SEC_SHIFT 0
#define F_CTIME_SEC_MASK 0x001f /*0-30 in 2seconds*/
#define F_CTIME_MIN_SHIFT 5
#define F_CTIME_MIN_MASK 0x07e0 /*0-59 */
#define F_CTIME_HOUR_SHIFT 11
#define F_CTIME_HOUR_MASK 0xf800 /*0-23*/
/* definitions for cdate */
#define F_CDATE_DAY_SHIFT 0
#define F_CDATE_DAY_MASK 0x001f /*0-31*/
#define F_CDATE_MONTH_SHIFT 5
#define F_CDATE_MONTH_MASK 0x01e0 /*1-12*/
#define F_CDATE_YEAR_SHIFT 9
#define F_CDATE_YEAR_MASK 0xfe00 /*0-119 (1980+value)*/
#define NTRES_LOW 0x08 /*lower case name*/

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -46,7 +46,7 @@
#include "volume.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define __DRV_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#include "../../api/fat_sl.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define _F_RTOS_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -51,7 +51,8 @@
extern "C" {
#endif
unsigned char fr_init ( void );
unsigned char fsr_init ( void );
unsigned char fsr_delete ( void );
#ifdef __cplusplus
}

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -45,7 +45,7 @@
#include "drv.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -487,7 +487,6 @@ unsigned char _f_getcurrsector ( void )
return F_ERR_EOF;
}
gl_file.prevcluster = gl_file.pos.cluster;
_f_clustertopos( cluster, &gl_file.pos );
}
@ -510,7 +509,6 @@ unsigned char _f_getcurrsector ( void )
* error code or zero if successful
*
***************************************************************************/
unsigned char _f_alloccluster ( unsigned long * pcluster )
{
unsigned long maxcluster = gl_volume.maxcluster;
@ -563,7 +561,6 @@ unsigned char _f_alloccluster ( unsigned long * pcluster )
* error code or zero if successful
*
***************************************************************************/
unsigned char _f_removechain ( unsigned long cluster )
{
gl_volume.fatsector = (unsigned long)-1;

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define __FAT_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -49,11 +49,11 @@
#include "file.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
static unsigned char _f_emptywritebuffer ( void );
static unsigned char _f_stepnextsector ( void );
/****************************************************************************
@ -125,73 +125,77 @@ long fn_filelength ( const char * filename )
* error code or zero if successful
*
***************************************************************************/
static unsigned char _f_emptywritebuffer ( void )
static unsigned char _f_stepnextsector ( void )
{
unsigned char ret;
unsigned char b_alloc;
ret = _f_writeglsector( gl_file.pos.sector );
if ( ret )
b_alloc = 0;
gl_volume.fatsector = (unsigned long)-1;
if ( gl_file.startcluster == 0 )
{
return ret;
b_alloc = 1;
}
else
{
++gl_file.pos.sector;
if ( gl_file.pos.sector >= gl_file.pos.sectorend )
{
unsigned long value;
ret = _f_getclustervalue( gl_file.pos.cluster, &value );
if ( ret )
{
return ret;
}
if ( ( value >= 2 ) && ( value < F_CLUSTER_RESERVED ) ) /*we are in chain*/
{
_f_clustertopos( value, &gl_file.pos ); /*go to next cluster*/
}
else
{
b_alloc = 1;
}
}
}
gl_file.modified = 0;
gl_file.pos.sector++;
if ( gl_file.pos.sector >= gl_file.pos.sectorend )
if ( b_alloc != 0 )
{
unsigned long value;
unsigned long nextcluster;
gl_volume.fatsector = (unsigned long)-1;
ret = _f_getclustervalue( gl_file.pos.cluster, &value );
ret = _f_alloccluster( &nextcluster );
if ( ret )
{
return ret;
}
if ( ( value >= 2 ) && ( value < F_CLUSTER_RESERVED ) ) /*we are in chain*/
ret = _f_setclustervalue( nextcluster, F_CLUSTER_LAST );
if ( ret )
{
gl_file.prevcluster = gl_file.pos.cluster;
_f_clustertopos( value, &gl_file.pos ); /*go to next cluster*/
return ret;
}
if ( gl_file.startcluster == 0 )
{
gl_file.startcluster = nextcluster;
}
else
{
unsigned long nextcluster;
ret = _f_alloccluster( &nextcluster );
if ( ret )
{
return ret;
}
ret = _f_setclustervalue( nextcluster, F_CLUSTER_LAST );
if ( ret )
{
return ret;
}
ret = _f_setclustervalue( gl_file.pos.cluster, nextcluster );
if ( ret )
{
return ret;
}
gl_file.prevcluster = gl_file.pos.cluster;
_f_clustertopos( nextcluster, &gl_file.pos );
return _f_writefatsector();
}
_f_clustertopos( nextcluster, &gl_file.pos );
return _f_writefatsector();
}
return F_NO_ERROR;
} /* _f_emptywritebuffer */
} /* _f_stepnextsector */
/****************************************************************************
@ -209,30 +213,65 @@ static unsigned char _f_extend ( long size )
size -= gl_file.filesize;
_size = (unsigned long)size;
rc = _f_getcurrsector();
if ( rc )
if ( gl_file.startcluster == 0 )
{
return rc;
if ( _f_stepnextsector() )
{
return F_ERR_WRITE;
}
}
else
{
if ( ( gl_file.relpos > 0 ) && ( gl_file.relpos < F_SECTOR_SIZE ) )
{
rc = _f_getcurrsector();
if ( rc )
{
return rc;
}
}
}
psp_memset( gl_sector + gl_file.relpos, 0, ( F_SECTOR_SIZE - gl_file.relpos ) );
if ( gl_file.relpos + _size > F_SECTOR_SIZE )
if ( gl_file.relpos + _size >= F_SECTOR_SIZE )
{
_size -= ( F_SECTOR_SIZE - gl_file.relpos );
while ( _size )
if ( gl_file.relpos < F_SECTOR_SIZE )
{
if ( _f_emptywritebuffer() )
psp_memset( gl_sector + gl_file.relpos, 0, ( F_SECTOR_SIZE - gl_file.relpos ) );
_size -= ( F_SECTOR_SIZE - gl_file.relpos );
if ( _f_writeglsector( gl_file.pos.sector ) )
{
return F_ERR_WRITE;
}
}
if ( _f_stepnextsector() )
{
return F_ERR_WRITE;
}
psp_memset( gl_sector, 0, F_SECTOR_SIZE );
while ( _size >= F_SECTOR_SIZE )
{
if ( _f_writeglsector( gl_file.pos.sector ) )
{
return F_ERR_WRITE;
}
if ( _f_stepnextsector() )
{
return F_ERR_WRITE;
}
psp_memset( gl_sector, 0, F_SECTOR_SIZE );
_size -= ( _size > F_SECTOR_SIZE ? F_SECTOR_SIZE : _size );
_size -= F_SECTOR_SIZE;
}
}
else
{
psp_memset( gl_sector + gl_file.relpos, 0, ( F_SECTOR_SIZE - gl_file.relpos ) );
_size += gl_file.relpos;
}
@ -295,7 +334,6 @@ static unsigned char _f_fseek ( long offset )
{
gl_file.abspos = 0;
gl_file.relpos = 0;
gl_file.prevcluster = 0;
gl_file.pos.cluster = gl_file.startcluster;
remain = gl_file.filesize;
@ -326,7 +364,6 @@ static unsigned char _f_fseek ( long offset )
break;
}
gl_file.prevcluster = gl_file.pos.cluster;
gl_file.pos.cluster = cluster;
}
@ -353,6 +390,10 @@ static unsigned char _f_fseek ( long offset )
gl_file.relpos = (unsigned short)offset;
}
}
else
{
ret = _f_extend( offset );
}
}
return ret;
@ -452,7 +493,7 @@ F_FILE * fn_open ( const char * filename, const char * mode )
return 0;
}
psp_memset( &gl_file, 0, 21 );
psp_memset( &gl_file, 0, sizeof( F_FILE ) );
if ( !_f_findpath( &fsname, &gl_file.dirpos ) )
{
@ -605,27 +646,6 @@ F_FILE * fn_open ( const char * filename, const char * mode )
return 0; /*invalid mode*/
} /* switch */
if ( ( m_mode != F_FILE_RD ) && ( gl_file.startcluster == 0 ) )
{
gl_volume.fatsector = (unsigned long)-1;
if ( _f_alloccluster( &( gl_file.startcluster ) ) )
{
return 0;
}
_f_clustertopos( gl_file.startcluster, &gl_file.pos );
if ( _f_setclustervalue( gl_file.startcluster, F_CLUSTER_LAST ) )
{
return 0;
}
if ( _f_writefatsector() )
{
return 0;
}
}
gl_file.mode = m_mode; /* lock it */
return (F_FILE *)1;
} /* fn_open */
@ -967,6 +987,11 @@ long fn_write ( const void * buf, long size, long _size_st, F_FILE * f )
_size_st = retsize;
retsize = 0;
if ( size == 0 )
{
return 0;
}
if ( _f_getvolume() )
{
return 0; /*can't write*/
@ -981,10 +1006,21 @@ long fn_write ( const void * buf, long size, long _size_st, F_FILE * f )
}
}
if ( _f_getcurrsector() )
if ( gl_file.startcluster == 0 )
{
gl_file.mode = F_FILE_CLOSE;
return 0;
if ( _f_stepnextsector() )
{
gl_file.mode = F_FILE_CLOSE;
return 0;
}
}
else
{
if ( _f_getcurrsector() )
{
gl_file.mode = F_FILE_CLOSE;
return 0;
}
}
for( ; ; )
@ -995,7 +1031,7 @@ long fn_write ( const void * buf, long size, long _size_st, F_FILE * f )
{ /*now full*/
if ( gl_file.modified )
{
if ( _f_emptywritebuffer() )
if ( _f_writeglsector( gl_file.pos.sector ) )
{
gl_file.mode = F_FILE_CLOSE;
if ( _f_updatefileentry( 0 ) == 0 )
@ -1007,10 +1043,21 @@ long fn_write ( const void * buf, long size, long _size_st, F_FILE * f )
return 0;
}
}
gl_file.modified = 0;
}
else
if ( _f_stepnextsector() )
{
gl_file.pos.sector++; /*goto next*/
gl_file.mode = F_FILE_CLOSE;
if ( _f_updatefileentry( 0 ) == 0 )
{
return retsize;
}
else
{
return 0;
}
}
gl_file.abspos += gl_file.relpos;

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define __FILE_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -45,7 +45,7 @@
#include "util.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -44,7 +44,7 @@
#include "util_sfn.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -43,7 +43,7 @@
#include "util.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -42,7 +42,7 @@
#define __UTIL_SFN_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -49,7 +49,7 @@
#include "file.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
@ -112,8 +112,8 @@ static unsigned char _f_writebootrecord ( F_PHY * phy )
unsigned char rs;
unsigned short mre;
unsigned char ret;
unsigned char _n = 0;
unsigned char ret;
unsigned char _n = 0;
if ( gl_volume.mediatype == F_FAT32_MEDIA )
{ /*write FS_INFO*/
@ -379,6 +379,7 @@ static unsigned char _f_prepareformat ( F_PHY * phy, unsigned char fattype )
gl_volume.bootrecord.sector_per_cluster = FAT32_CS[i].sector_per_cluster;
}
if ( !gl_volume.bootrecord.sector_per_cluster )
{
return F_ERR_INVALIDMEDIA; /*fat16 cannot be there*/
@ -869,17 +870,52 @@ unsigned char fn_getserial ( unsigned long * serial )
return 0;
}
/*
** fn_init
** fs_init
**
** Initialize FAT_SL file system
** Initialize STHIN file system
**
** RETURN: F_NO_ERROR on success, other if error.
*/
unsigned char fn_init ( void )
unsigned char fs_init ( void )
{
return F_NO_ERROR;
} /* fn_init */
unsigned char rc = F_NO_ERROR;
#if RTOS_SUPPORT
rc = fsr_init();
if ( rc )
{
return rc;
}
#endif
return rc;
} /* fs_init */
/*
** fs_delete
**
** Delete STHIN file system
**
** RETURN: F_NO_ERROR on success, other if error.
*/
unsigned char fs_delete ( void )
{
unsigned char rc = F_NO_ERROR;
#if RTOS_SUPPORT
rc = fsr_delete();
if ( rc )
{
return rc;
}
#endif
return rc;
} /* fs_delete */
/****************************************************************************
*
@ -896,16 +932,18 @@ unsigned char fn_init ( void )
unsigned char fn_initvolume ( F_DRIVERINIT initfunc )
{
#if F_FS_THREAD_AWARE == 1
{
if( fs_lock_semaphore == NULL )
{
fs_lock_semaphore = xSemaphoreCreateMutex();
if( fs_lock_semaphore == NULL )
{
return F_ERR_OS;
}
}
}
{
extern xSemaphoreHandle fs_lock_semaphore;
if( fs_lock_semaphore == NULL )
{
fs_lock_semaphore = xSemaphoreCreateMutex();
if( fs_lock_semaphore == NULL )
{
return F_ERR_OS;
}
}
}
#endif /* F_FS_THREAD_AWARE */
gl_volume.state = F_STATE_NONE;
@ -925,6 +963,7 @@ unsigned char fn_initvolume ( F_DRIVERINIT initfunc )
return _f_getvolume();
} /* fn_initvolume */
/****************************************************************************
*
* fn_delvolume

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -44,7 +44,7 @@
#include "config_fat_sl.h"
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,29 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
* Details of both license options follow:
*
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* this text. The GPL V2 text is available on the gnu.org web site, and on the
* following URL: http://www.FreeRTOS.org/gpl-2.0.txt.
*
*
* - Commercial licensing -
* Businesses and individuals who for commercial or other reasons cannot comply
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
@ -42,14 +42,10 @@
#define __TEST_H
#include "../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3 || VER_FAT_SL_MINOR != 2
#if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2
#error Incompatible FAT_SL version number!
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*
** Maximum size for seek test.
@ -60,59 +56,13 @@ extern "C" {
/*
** Defines media type for testing.
** Options: F_FAT12_MEDIA, F_FAT16_MEDIA
** Options: F_FAT12_MEDIA, F_FAT16_MEDIA, F_FAT32_MEDIA
*/
#define F_FAT_TYPE F_FAT12_MEDIA
#define F_FAT_TYPE F_FAT16_MEDIA
/*
** Start filesystem test.
** Parameter:
** 0 - run all the tests
**
** 2 - directory
** 3 - find
**
** 5* - seek 128
** 6* - seek 256
** 7* - seek 512
** 8* - seek 1024
** 9* - seek 2048
** 10*- seek 4096
** 11*- seek 8192
** 12*- seek 16384
** 13*- seek 32768
** 14 - open
** 15 - append
** 16 - write
** 17 - dots
** 18 - rit
** *Note that only seek tests allowed by F_MAX_SEEK_TEST are executed.
**
** The following defines are required for the specific test:
** 1 1 1 1 1 1 1 1 1
** 2 3 5 6 7 8 9 0 1 2 3 4 5 6 7 8
** F_CHDIR x x - - - - - - - - - - x - x -
** F_MKDIR x x - - - - - - - - - - - - x -
** F_RMDIR x x - - - - - - - - - - x - x -
** F_DELETE x x x x x x x x x x x x x x x x
** F_FILELENGTH - - x x x x x x x x x x x x - -
** F_FINDING x x - - - - - - - - - - x - - -
** F_TELL - - x x x x x x x x x x x x - x
** F_REWIND - - - - - - - - - - - x - - - -
** F_EOF - - x x x x x x x x x - - x - -
** F_SEEK - - x x x x x x x x x - x x - x
** F_WRITE - - x x x x x x x x x x x x - x
** F_WRITING x x x x x x x x x x x x x x x x
** F_DIRECTORIES x x - - - - - - - - - - x - x -
** F_CHECKNAME x - - - - - - - - - - - - - x -
*/
void f_dotest ( unsigned char );
#ifdef __cplusplus
}
#endif
#endif /* ifndef __TEST_H */
#endif /* ifndef _CONFIG_STHIN_TEST_H */

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,29 +1,29 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
* Details of both license options follow:
*
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* this text. The GPL V2 text is available on the gnu.org web site, and on the
* following URL: http://www.FreeRTOS.org/gpl-2.0.txt.
*
*
* - Commercial licensing -
* Businesses and individuals who for commercial or other reasons cannot comply
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
@ -46,15 +46,17 @@
#include "../../../api/api_mdriver_ram.h"
#include "../../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3
#if VER_FAT_SL_MAJOR != 5
#error Incompatible FAT_SL version number!
#endif
#include "../../../version/ver_psp_fat_sl.h"
#if VER_PSP_FAT_FAT_SL_MAJOR != 1 || VER_PSP_FAT_FAT_SL_MINOR != 1
#if VER_PSP_FAT_FAT_SL_MAJOR != 1 || VER_PSP_FAT_FAT_SL_MINOR != 2
#error Incompatible PSP_FAT_FAT_SL version number!
#endif
uint8_t all_tests_passed = 1u;
#define PRINT_BUFFER_SIZE 64
extern void __printbuf ( char * buf, int len );
/* Use to display text (printf). */
void _f_dump ( char * s )
@ -63,19 +65,9 @@ void _f_dump ( char * s )
}
/* Use to display test result (printf). */
uint8_t _f_result ( uint8_t testnum, uint32_t result )
uint8_t _f_result ( int linenum, uint32_t result )
{
(void)testnum;
if ( result == 0 )
{
printf( "Passed\r\n" );
}
else
{
printf( "FAILED! Error code: %u\r\n", ( unsigned int ) result );
all_tests_passed = 0u;
}
printf( "Error:%d/%ld\r\n", linenum, result );
return 0;
}
@ -85,4 +77,3 @@ uint8_t _f_poweron ( void )
f_delvolume();
return f_initvolume( ram_initfunc );
}

View File

@ -1,29 +1,29 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
* Details of both license options follow:
*
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* this text. The GPL V2 text is available on the gnu.org web site, and on the
* following URL: http://www.FreeRTOS.org/gpl-2.0.txt.
*
*
* - Commercial licensing -
* Businesses and individuals who for commercial or other reasons cannot comply
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
@ -45,11 +45,11 @@
#include "../../../psp/include/psp_string.h"
#include "../../../version/ver_fat_sl.h"
#if VER_FAT_SL_MAJOR != 3
#if VER_FAT_SL_MAJOR != 5
#error Incompatible FAT_SL version number!
#endif
#include "../../../version/ver_psp_fat_sl.h"
#if VER_PSP_FAT_FAT_SL_MAJOR != 1 || VER_PSP_FAT_FAT_SL_MINOR != 1
#if VER_PSP_FAT_FAT_SL_MAJOR != 1 || VER_PSP_FAT_FAT_SL_MINOR != 2
#error Incompatible PSP_FAT_FAT_SL version number!
#endif
@ -57,13 +57,11 @@
extern "C" {
#endif
extern uint8_t all_tests_passed;
/* Use to display text (printf). */
void _f_dump ( char * s );
/* Use to display test result (printf). */
uint8_t _f_result ( uint8_t testnum, uint32_t result );
uint8_t _f_result ( int linenum, uint32_t result );
/* Use to build file system (mount). */
uint8_t _f_poweron ( void );

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -0,0 +1,9 @@
Changes between V1.0.0 and V1.0.1
+ Fix seeking beyond the end of file when the offset was not multiple of
the sector size, or when the file was empty.
+ Seeking test extended to validate seeking/writing on sector boundaries.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
@ -41,7 +41,7 @@
#ifndef _VER_FAT_SL_H
#define _VER_FAT_SL_H
#define VER_FAT_SL_MAJOR 3
#define VER_FAT_SL_MAJOR 5
#define VER_FAT_SL_MINOR 2
#endif

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,29 +1,29 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
*
* FreeRTOS+FAT SL uses a dual license model that allows the software to be used
* under a standard GPL open source license, or a commercial license. The
* standard GPL license (unlike the modified GPL license under which FreeRTOS
* itself is distributed) requires that all software statically linked with
* FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms.
* Details of both license options follow:
*
*
* - Open source licensing -
* FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* distributed without charge provided the user adheres to version two of the
* GNU General Public License (GPL) and does not remove the copyright notice or
* this text. The GPL V2 text is available on the gnu.org web site, and on the
* following URL: http://www.FreeRTOS.org/gpl-2.0.txt.
*
*
* - Commercial licensing -
* Businesses and individuals who for commercial or other reasons cannot comply
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* with the terms of the GPL V2 license must obtain a commercial license before
* incorporating FreeRTOS+FAT SL into proprietary software for distribution in
* any form. Commercial licenses can be purchased from
* http://shop.freertos.org/fat_sl and do not require any source files to be
* changed.
*
* FreeRTOS+FAT SL is distributed in the hope that it will be useful. You
@ -42,7 +42,7 @@
#define _VER_PSP_FAT_FAT_SL_H
#define VER_PSP_FAT_FAT_SL_MAJOR 1
#define VER_PSP_FAT_FAT_SL_MINOR 1
#define VER_PSP_FAT_FAT_SL_MINOR 2
#endif /* _VER_PSP_FAT_FAT_SL_H */

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.

View File

@ -1,5 +1,5 @@
/*
* FreeRTOS+FAT FS V1.0.0 (C) 2013 HCC Embedded
* FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded
*
* The FreeRTOS+FAT SL license terms are different to the FreeRTOS license
* terms.