STM32H723zgt6 - Azure Filex
Hi,
I am using Azure RTOS for my STM32H723ZGT6 to write log file to my USB pendrive.
so, i am using usbx msc host and filex example code from github.
File created successfully, but not opened for write, because my code returns FX_PTR_ERROR due to the (file_control_block_size != sizeof(FX_FILE).
I got my file_control_block_size as 457 but sizeof(FX_FILE) is 480.
How get my file_control_block_size as 480, am i missing something.
Please find the code and screen shot below,
UINT _fxe_file_open(FX_MEDIA *media_ptr, FX_FILE *file_ptr, CHAR *file_name, UINT open_type, UINT file_control_block_size)
{
UINT status;
FX_FILE *current_file;
ULONG open_count;
/* Check for a null media or file pointer. */
if ((media_ptr == FX_NULL) || (media_ptr -> fx_media_id != FX_MEDIA_ID) || (file_ptr == FX_NULL) || (file_control_block_size != sizeof(FX_FILE)))
{
return(FX_PTR_ERROR);
}
/* Check for an invalid open type. */
if ((open_type != FX_OPEN_FOR_READ) && (open_type != FX_OPEN_FOR_READ_FAST) && (open_type != FX_OPEN_FOR_WRITE))
{
return(FX_ACCESS_ERROR);
}
/* Check for a valid caller. */
FX_CALLER_CHECKING_CODE
/* Get protection. */
FX_PROTECT
/* Check for a duplicate file open. */
/* Loop to search the list for the same file handle. */
current_file = media_ptr -> fx_media_opened_file_list;
open_count = media_ptr -> fx_media_opened_file_count;
while (open_count--)
{
/* See if a match exists. */
if (file_ptr == current_file)
{
/* Release protection. */
FX_UNPROTECT
/* Return error. */
return(FX_PTR_ERROR);
}
/* Move to the next opened file. */
current_file = current_file -> fx_file_opened_next;
}
/* Release protection. */
FX_UNPROTECT
/* Call actual file open service. */
status = _fx_file_open(media_ptr, file_ptr, file_name, open_type);
/* Open is complete, return status. */
return(status);
}
