Enabled checks.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11816 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
parent
99ef0b1cb8
commit
169ab2e0d6
|
@ -131,18 +131,24 @@ include $(CHIBIOS)/os/common/ports/ARMCAx-TZ/compilers/GCC/mk/port_generic.mk
|
||||||
#include $(CHIBIOS)/test/rt/rt_test.mk
|
#include $(CHIBIOS)/test/rt/rt_test.mk
|
||||||
#include $(CHIBIOS)/test/oslib/oslib_test.mk
|
#include $(CHIBIOS)/test/oslib/oslib_test.mk
|
||||||
include $(CHIBIOS)/os/various/reledge_bindings/reledge.mk
|
include $(CHIBIOS)/os/various/reledge_bindings/reledge.mk
|
||||||
include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk
|
#include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk
|
||||||
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
|
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
|
||||||
|
|
||||||
# Define linker script file here
|
# Define linker script file here
|
||||||
#LDSCRIPT= $(STARTUPLD)/SAMA5D2.ld
|
#LDSCRIPT= $(STARTUPLD)/SAMA5D2.ld
|
||||||
LDSCRIPT= $(STARTUPLD)/SAMA5D2ddr.ld
|
LDSCRIPT= $(STARTUPLD)/SAMA5D2ddr.ld
|
||||||
|
FATFSINC = $(CHIBIOS)/ext/fatfs/src
|
||||||
|
|
||||||
# C sources that can be compiled in ARM or THUMB mode depending on the global
|
# C sources that can be compiled in ARM or THUMB mode depending on the global
|
||||||
# setting.
|
# setting.
|
||||||
CSRC = $(ALLCSRC) /os/various/syscalls.c \
|
CSRC = $(ALLCSRC) \
|
||||||
main.c fat32test.c reledgetest.c redconf.c
|
main.c fat32test.c reledgetest.c redconf.c
|
||||||
|
|
||||||
|
CSRC += $(CHIBIOS)/os/various/syscalls.c
|
||||||
|
CSRC += $(CHIBIOS)/os/various/fatfs_bindings/fatfs_syscall.c
|
||||||
|
CSRC += $(CHIBIOS)/ext/fatfs/src/ff.c
|
||||||
|
CSRC += $(CHIBIOS)/ext/fatfs/src/ffunicode.c
|
||||||
|
|
||||||
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
||||||
# setting.
|
# setting.
|
||||||
CPPSRC = $(ALLCPPSRC)
|
CPPSRC = $(ALLCPPSRC)
|
||||||
|
|
|
@ -419,7 +419,7 @@
|
||||||
*
|
*
|
||||||
* @note The default is @p FALSE.
|
* @note The default is @p FALSE.
|
||||||
*/
|
*/
|
||||||
#define CH_DBG_ENABLE_ASSERTS FALSE
|
#define CH_DBG_ENABLE_ASSERTS TRUE
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Debug option, trace buffer.
|
* @brief Debug option, trace buffer.
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
//0 (SLOT0) or 1 (SLOT1)
|
//0 (SLOT0) or 1 (SLOT1)
|
||||||
#define DEMO_SLOT 0
|
#define DEMO_SLOT 0
|
||||||
//1 for FFLib, 0 for Reliance
|
//1 for FFLib, 0 for Reliance
|
||||||
#define DEMO_FAT 1
|
#define DEMO_FAT 0
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
|
|
||||||
#define BLOCK_CNT_MAX 32u
|
#define BLOCK_CNT_MAX 32u
|
||||||
|
@ -157,6 +157,7 @@ bool sdmmcGetInstance(uint8_t index, SdmmcDriver **sdmmcp)
|
||||||
(void)index;
|
(void)index;
|
||||||
|
|
||||||
*sdmmcp = &SDMMCD1;
|
*sdmmcp = &SDMMCD1;
|
||||||
|
read();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,227 +42,227 @@ extern const VOLCONF gaRedVolConf[REDCONF_VOLUME_COUNT];
|
||||||
|
|
||||||
void relianceedge_demo(void)
|
void relianceedge_demo(void)
|
||||||
{
|
{
|
||||||
int32_t ret;
|
int32_t ret;
|
||||||
int volnum = 0;
|
int volnum = 0;
|
||||||
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
||||||
|
|
||||||
chprintf(ts,"Init Reliance Edge FS\r\n" );
|
chprintf(ts,"Init Reliance Edge FS\r\n" );
|
||||||
ret = red_init();
|
ret = red_init();
|
||||||
|
|
||||||
chprintf(ts,"Start formatting fs ... " );
|
chprintf(ts,"Start formatting fs ... " );
|
||||||
ret = format(volnum);
|
ret = format(volnum);
|
||||||
|
|
||||||
if ( ret == 0 )
|
if ( ret == 0 )
|
||||||
{
|
{
|
||||||
chprintf(ts,"OK , mounting volume .." );
|
chprintf(ts,"OK , mounting volume .." );
|
||||||
|
|
||||||
ret = red_mount(pszVolume);
|
ret = red_mount(pszVolume);
|
||||||
if ( ret == 0 )
|
if ( ret == 0 )
|
||||||
{
|
{
|
||||||
chprintf(ts,"OK\r\n writing files ..\r\n" );
|
chprintf(ts,"OK\r\n writing files ..\r\n" );
|
||||||
writefiles(volnum);
|
writefiles(volnum);
|
||||||
chprintf(ts,"OK\r\n reading files ..\r\n" );
|
chprintf(ts,"OK\r\n reading files ..\r\n" );
|
||||||
readfiles();
|
readfiles();
|
||||||
chprintf(ts,"OK\r\n" );
|
chprintf(ts,"OK\r\n" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chprintf(ts,"FAILED! \r\n" );
|
chprintf(ts,"FAILED! \r\n" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void writefiles(uint8_t volnum)
|
static void writefiles(uint8_t volnum)
|
||||||
{
|
{
|
||||||
uint32_t i, j;
|
uint32_t i, j;
|
||||||
char path[ 64 ];
|
char path[ 64 ];
|
||||||
const uint32_t filen = 5;
|
const uint32_t filen = 5;
|
||||||
|
|
||||||
uint32_t ulEventMask;
|
uint32_t ulEventMask;
|
||||||
int32_t written, filedescr, status;
|
int32_t written, filedescr, status;
|
||||||
int iByte;
|
int iByte;
|
||||||
|
|
||||||
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
||||||
/* Save the current transaction point settings. */
|
/* Save the current transaction point settings. */
|
||||||
status = red_gettransmask( pszVolume, &ulEventMask );
|
status = red_gettransmask( pszVolume, &ulEventMask );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Disable automatic transaction points so that all of the files can be
|
/* Disable automatic transaction points so that all of the files can be
|
||||||
created in one atomic operation. */
|
created in one atomic operation. */
|
||||||
status = red_settransmask( pszVolume, RED_TRANSACT_MANUAL );
|
status = red_settransmask( pszVolume, RED_TRANSACT_MANUAL );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Create filen files. Each created file will be
|
/* Create filen files. Each created file will be
|
||||||
( i * fsRAM_BUFFER_SIZE ) bytes in length, and filled
|
( i * fsRAM_BUFFER_SIZE ) bytes in length, and filled
|
||||||
with a different repeating character. */
|
with a different repeating character. */
|
||||||
for( i = 1; i <= filen; i++ )
|
for( i = 1; i <= filen; i++ )
|
||||||
{
|
{
|
||||||
/* Generate a file name. */
|
/* Generate a file name. */
|
||||||
sprintf( path, "/root%03d.txt", (int)i );
|
sprintf( path, "/root%03d.txt", (int)i );
|
||||||
|
|
||||||
/* Print out the file name and the directory into which the file is
|
/* Print out the file name and the directory into which the file is
|
||||||
being written. */
|
being written. */
|
||||||
chprintf(ts,"Creating file %s\r\n", path );
|
chprintf(ts,"Creating file %s\r\n", path );
|
||||||
|
|
||||||
/* Open the file, creating the file if it does not already exist. */
|
/* Open the file, creating the file if it does not already exist. */
|
||||||
filedescr = red_open( path, RED_O_CREAT|RED_O_TRUNC|RED_O_WRONLY );
|
filedescr = red_open( path, RED_O_CREAT|RED_O_TRUNC|RED_O_WRONLY );
|
||||||
osalDbgCheck( filedescr != -1 );
|
osalDbgCheck( filedescr != -1 );
|
||||||
|
|
||||||
/* Fill the RAM buffer with data that will be written to the file. This
|
/* Fill the RAM buffer with data that will be written to the file. This
|
||||||
is just a repeating ascii character that indicates the file number. */
|
is just a repeating ascii character that indicates the file number. */
|
||||||
memset( cRAMBuffer, ( int ) ( '0' + i ), fsRAM_BUFFER_SIZE );
|
memset( cRAMBuffer, ( int ) ( '0' + i ), fsRAM_BUFFER_SIZE );
|
||||||
|
|
||||||
/* Write the RAM buffer to the opened file a number of times. The
|
/* Write the RAM buffer to the opened file a number of times. The
|
||||||
number of times the RAM buffer is written to the file depends on the
|
number of times the RAM buffer is written to the file depends on the
|
||||||
file number, so the length of each created file will be different. */
|
file number, so the length of each created file will be different. */
|
||||||
for( j = 0; j < i; j++ )
|
for( j = 0; j < i; j++ )
|
||||||
{
|
{
|
||||||
written = red_write( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
written = red_write( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
||||||
osalDbgCheck( written == fsRAM_BUFFER_SIZE );
|
osalDbgCheck( written == fsRAM_BUFFER_SIZE );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Close the file so another file can be created. */
|
/* Close the file so another file can be created. */
|
||||||
status = red_close( filedescr );
|
status = red_close( filedescr );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Commit a transaction point, atomically adding the set of files to the
|
/* Commit a transaction point, atomically adding the set of files to the
|
||||||
transacted state. */
|
transacted state. */
|
||||||
status = red_transact( pszVolume );
|
status = red_transact( pszVolume );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Create a sub directory. */
|
/* Create a sub directory. */
|
||||||
chprintf(ts,"Creating directory %s\r\n", pcDirectory1 );
|
chprintf(ts,"Creating directory %s\r\n", pcDirectory1 );
|
||||||
|
|
||||||
status = red_mkdir( pcDirectory1 );
|
status = red_mkdir( pcDirectory1 );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Create a subdirectory in the new directory. */
|
/* Create a subdirectory in the new directory. */
|
||||||
chprintf(ts, "Creating directory %s\r\n", pcDirectory2 );
|
chprintf(ts, "Creating directory %s\r\n", pcDirectory2 );
|
||||||
|
|
||||||
status = red_mkdir( pcDirectory2 );
|
status = red_mkdir( pcDirectory2 );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Generate the file name. */
|
/* Generate the file name. */
|
||||||
sprintf( path, "%s/file.txt", pcDirectory2 );
|
sprintf( path, "%s/file.txt", pcDirectory2 );
|
||||||
|
|
||||||
/* Print out the file name and the directory into which the file is being
|
/* Print out the file name and the directory into which the file is being
|
||||||
written. */
|
written. */
|
||||||
chprintf(ts, "Writing file %s\r\n", path );
|
chprintf(ts, "Writing file %s\r\n", path );
|
||||||
|
|
||||||
filedescr = red_open( path, RED_O_CREAT|RED_O_TRUNC|RED_O_WRONLY );
|
filedescr = red_open( path, RED_O_CREAT|RED_O_TRUNC|RED_O_WRONLY );
|
||||||
|
|
||||||
/* Write the file. It is filled with incrementing ascii characters starting
|
/* Write the file. It is filled with incrementing ascii characters starting
|
||||||
from '0'. */
|
from '0'. */
|
||||||
for( iByte = 0; iByte < fsRAM_BUFFER_SIZE; iByte++ )
|
for( iByte = 0; iByte < fsRAM_BUFFER_SIZE; iByte++ )
|
||||||
{
|
{
|
||||||
cRAMBuffer[ iByte ] = ( char ) ( ( int ) '0' + iByte );
|
cRAMBuffer[ iByte ] = ( char ) ( ( int ) '0' + iByte );
|
||||||
}
|
}
|
||||||
|
|
||||||
written = red_write( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
written = red_write( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
||||||
osalDbgCheck( written == fsRAM_BUFFER_SIZE );
|
osalDbgCheck( written == fsRAM_BUFFER_SIZE );
|
||||||
|
|
||||||
/* Finished so close the file. */
|
/* Finished so close the file. */
|
||||||
status = red_close( filedescr );
|
status = red_close( filedescr );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Commit a transaction point, atomically adding the set of files and
|
/* Commit a transaction point, atomically adding the set of files and
|
||||||
directories to the transacted state. */
|
directories to the transacted state. */
|
||||||
status = red_transact( pszVolume );
|
status = red_transact( pszVolume );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
/* Restore previous transaction point settings. */
|
/* Restore previous transaction point settings. */
|
||||||
status = red_settransmask( pszVolume, ulEventMask );
|
status = red_settransmask( pszVolume, ulEventMask );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void readfiles(void)
|
static void readfiles(void)
|
||||||
{
|
{
|
||||||
uint32_t i, j;
|
uint32_t i, j;
|
||||||
char path[ 64 ];
|
char path[ 64 ];
|
||||||
const uint32_t filen = 5;
|
const uint32_t filen = 5;
|
||||||
long lChar;
|
long lChar;
|
||||||
int32_t lBytesRead, filedescr, status;
|
int32_t lBytesRead, filedescr, status;
|
||||||
int iByte;
|
int iByte;
|
||||||
|
|
||||||
|
|
||||||
/* Read back the files that were created by prvCreateDemoFiles(). */
|
/* Read back the files that were created by prvCreateDemoFiles(). */
|
||||||
for( i = 1; i <= filen; i++ )
|
for( i = 1; i <= filen; i++ )
|
||||||
{
|
{
|
||||||
/* Generate the file name. */
|
/* Generate the file name. */
|
||||||
sprintf( path, "/root%03d.txt",(int) i );
|
sprintf( path, "/root%03d.txt",(int) i );
|
||||||
|
|
||||||
/* Print out the file name and the directory from which the file is
|
/* Print out the file name and the directory from which the file is
|
||||||
being read. */
|
being read. */
|
||||||
chprintf(ts,"Reading file %s\r\n", path );
|
chprintf(ts,"Reading file %s\r\n", path );
|
||||||
|
|
||||||
/* Open the file for reading. */
|
/* Open the file for reading. */
|
||||||
filedescr = red_open( path, RED_O_RDONLY );
|
filedescr = red_open( path, RED_O_RDONLY );
|
||||||
osalDbgCheck( filedescr != -1 );
|
osalDbgCheck( filedescr != -1 );
|
||||||
|
|
||||||
/* Read the file into the RAM buffer, checking the file contents are as
|
/* Read the file into the RAM buffer, checking the file contents are as
|
||||||
expected. The size of the file depends on the file number. */
|
expected. The size of the file depends on the file number. */
|
||||||
for( j = 0; j < i; j++ )
|
for( j = 0; j < i; j++ )
|
||||||
{
|
{
|
||||||
/* Start with the RAM buffer clear. */
|
/* Start with the RAM buffer clear. */
|
||||||
memset( cRAMBuffer, 0x00, fsRAM_BUFFER_SIZE );
|
memset( cRAMBuffer, 0x00, fsRAM_BUFFER_SIZE );
|
||||||
|
|
||||||
lBytesRead = red_read( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
lBytesRead = red_read( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
||||||
osalDbgCheck( lBytesRead == fsRAM_BUFFER_SIZE );
|
osalDbgCheck( lBytesRead == fsRAM_BUFFER_SIZE );
|
||||||
|
|
||||||
/* Check the RAM buffer is filled with the expected data. Each
|
/* Check the RAM buffer is filled with the expected data. Each
|
||||||
file contains a different repeating ascii character that indicates
|
file contains a different repeating ascii character that indicates
|
||||||
the number of the file. */
|
the number of the file. */
|
||||||
for( lChar = 0; lChar < fsRAM_BUFFER_SIZE; lChar++ )
|
for( lChar = 0; lChar < fsRAM_BUFFER_SIZE; lChar++ )
|
||||||
{
|
{
|
||||||
osalDbgCheck( cRAMBuffer[ lChar ] == ( '0' + ( char ) i ) );
|
osalDbgCheck( cRAMBuffer[ lChar ] == ( '0' + ( char ) i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Close the file. */
|
/* Close the file. */
|
||||||
status = red_close( filedescr );
|
status = red_close( filedescr );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate the file name. */
|
/* Generate the file name. */
|
||||||
sprintf( path, "%s/file.txt", pcDirectory2 );
|
sprintf( path, "%s/file.txt", pcDirectory2 );
|
||||||
|
|
||||||
/* Print out the file name and the directory from which the file is being
|
/* Print out the file name and the directory from which the file is being
|
||||||
read. */
|
read. */
|
||||||
chprintf(ts, "Reading file %s\r\n", path );
|
chprintf(ts, "Reading file %s\r\n", path );
|
||||||
|
|
||||||
/* This time the file is opened for reading. */
|
/* This time the file is opened for reading. */
|
||||||
filedescr = red_open( path, RED_O_RDONLY );
|
filedescr = red_open( path, RED_O_RDONLY );
|
||||||
osalDbgCheck( filedescr != -1 );
|
osalDbgCheck( filedescr != -1 );
|
||||||
|
|
||||||
/* Read the file. */
|
/* Read the file. */
|
||||||
lBytesRead = red_read( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
lBytesRead = red_read( filedescr, cRAMBuffer, fsRAM_BUFFER_SIZE );
|
||||||
osalDbgCheck( lBytesRead == fsRAM_BUFFER_SIZE );
|
osalDbgCheck( lBytesRead == fsRAM_BUFFER_SIZE );
|
||||||
|
|
||||||
/* Verify the file 1 byte at a time. */
|
/* Verify the file 1 byte at a time. */
|
||||||
for( iByte = 0; iByte < fsRAM_BUFFER_SIZE; iByte++ )
|
for( iByte = 0; iByte < fsRAM_BUFFER_SIZE; iByte++ )
|
||||||
{
|
{
|
||||||
osalDbgCheck( cRAMBuffer[ iByte ] == ( char ) ( ( int ) '0' + iByte ) );
|
osalDbgCheck( cRAMBuffer[ iByte ] == ( char ) ( ( int ) '0' + iByte ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finished so close the file. */
|
/* Finished so close the file. */
|
||||||
status = red_close( filedescr );
|
status = red_close( filedescr );
|
||||||
osalDbgCheck( status == 0 );
|
osalDbgCheck( status == 0 );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int32_t format(uint8_t volnum)
|
static int32_t format(uint8_t volnum)
|
||||||
{
|
{
|
||||||
int32_t ret=-1;
|
int32_t ret=-1;
|
||||||
#if REDCONF_API_POSIX_FORMAT == 1
|
#if REDCONF_API_POSIX_FORMAT == 1
|
||||||
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
const char *pszVolume = gaRedVolConf[volnum].pszPathPrefix;
|
||||||
ret = red_format(pszVolume);
|
ret = red_format(pszVolume);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue