STM32F769 Discovery kit & FATFS
In the frame of testing the STM32F7xx MCU, we test the file management capabilities of the STM32F769 Discovery kit. The configuration of the platform to access the SD card has been built with STM32CubeMX (FreeRTOS + FATFS).
The code for the test is the following:
if ( result = f_mount(&SDFatFS, (TCHAR const*)"", 1) )
{
sprintf( message, "Mount failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
// // Read file
if( result = f_open (&SDFile, "/file.txt", FA_READ) )
{
sprintf( message, "Open failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
unsigned int bytes;
if ( result = f_read (&SDFile, message, 64, &bytes) )
{
sprintf( message, "Read failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
sendMessage( "Content: " );
sendMessage( message );
sendMessage( "\r\n" );
f_close(&SDFile);
// Write file
if ( result = f_mount(&SDFatFS, (TCHAR const*)"", 1) )
{
sprintf( message, "Remount failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
if( result = f_open (&SDFile, "/file.txt", FA_WRITE | FA_OPEN_APPEND) )
{
sprintf( message, "Reopen failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
if ( (result = f_write (&SDFile, "Hi man !", 8, &bytes)) == 0 )
{
sprintf( message, "%u bytes written.\r\n", bytes );
sendMessage( message );
}
else
{
sprintf( message, "Write failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
f_close(&SDFile);
if ( result = f_mount(0, (TCHAR const*)"", 1) )
{
sprintf( message, "Umount failed (%d) !\r\n", result );
sendMessage( message );
while( 1 );
}
sendMessage( "OK\r\n" );
Everything sounds to work correctly (witnessed by the messages on the console) but the file actually is unchanged.
I have no idea why and how to start the investigations. Has someone any experience or idea to solve this ?
Many thanks in advance.
Regards.
