]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
Adaptions for fatfs R0.15 master
authorLeo C. <erbl259-lmu@yahoo.de>
Sun, 30 Jun 2024 13:18:24 +0000 (15:18 +0200)
committerLeo C. <erbl259-lmu@yahoo.de>
Sun, 30 Jun 2024 13:18:24 +0000 (15:18 +0200)
avr/cmd_sd.c
avr/mmc.c
include/avr/ffconf.h
include/diskio.h
include/integer.h [deleted file]

index 344a19793e4d7ee9ecc22d3367f55e1d82785cae..440bfd4a7cc3cd197da6537fd8f8a3c727ef71e0 100644 (file)
@@ -7,7 +7,6 @@
 #include "cmd_sd.h"
 
 #include "diskio.h"
-#include "ff.h"
 #include "eval_arg.h"
 #include "print-utils.h"
 #include "z80-if.h"
index a40dc31fdb2b789b8b747f11f3a917777064c1d3..e1a51fe1c961060fdeed698d34d8dcd513f07625 100644 (file)
--- a/avr/mmc.c
+++ b/avr/mmc.c
@@ -292,7 +292,6 @@ UINT btr /* Byte count (must be multiple of 4) */
 /* Send a data packet to MMC                                             */
 /*-----------------------------------------------------------------------*/
 
-#if    _USE_WRITE
 static
 int xmit_datablock (
                const BYTE *buff, /* 512 byte data block to be transmitted */
@@ -322,7 +321,6 @@ int xmit_datablock (
        spi_wait();
        return 1;
 }
-#endif /* _USE_WRITE */
 
 /*-----------------------------------------------------------------------*/
 /* Send a command packet to MMC                                          */
@@ -584,7 +582,6 @@ DRESULT disk_read (
 /* Write Sector(s)                                                       */
 /*-----------------------------------------------------------------------*/
 
-#if _USE_WRITE
 DRESULT disk_write (
        BYTE drv,       /* Physical drive nmuber (0) */
        const BYTE *buff, /* Pointer to the data to be written */
@@ -630,13 +627,11 @@ DRESULT disk_write (
 
        return count ? RES_ERROR : RES_OK;
 }
-#endif /* _USE_WRITE */
 
 /*-----------------------------------------------------------------------*/
 /* Miscellaneous Functions                                               */
 /*-----------------------------------------------------------------------*/
 
-#if _USE_IOCTL
 DRESULT disk_ioctl (
        BYTE drv,               /* Physical drive nmuber (0) */
        BYTE cmd,               /* Control code */
@@ -748,7 +743,6 @@ DRESULT disk_ioctl (
 
        return res;
 }
-#endif /* _USE_IOCTL */
 
 /*-----------------------------------------------------------------------*/
 /* Device Timer Interrupt Procedure  (Platform dependent)                */
index b6485be2aeb1825db41f2f52ed2389ad3c5c8b7e..4e89916feaa8082c91ebd4ca96fc7d5da728e07f 100644 (file)
@@ -1,8 +1,8 @@
 /*---------------------------------------------------------------------------/
-/  FatFs - Configuration file
+/  Configurations of FatFs Module
 /---------------------------------------------------------------------------*/
 
-#define FFCONF_DEF 63463       /* Revision ID */
+#define FFCONF_DEF     80286   /* Revision ID */
 
 /*---------------------------------------------------------------------------/
 / Function Configurations
 /   3: f_lseek() function is removed in addition to 2. */
 
 
-#define FF_USE_STRFUNC 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 FF_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) */
 /* This option switches f_forward() function. (0:Disable or 1:Enable) */
 
 
+#define FF_USE_STRFUNC 2
+#define FF_PRINT_LLI   1
+#define FF_PRINT_FLOAT 1
+#define FF_STRF_ENCODE 3
+/* FF_USE_STRFUNC switches string functions, f_gets(), f_putc(), f_puts() and
+/  f_printf().
+/
+/   0: Disable. FF_PRINT_LLI, FF_PRINT_FLOAT and FF_STRF_ENCODE have no effect.
+/   1: Enable without LF-CRLF conversion.
+/   2: Enable with LF-CRLF conversion.
+/
+/  FF_PRINT_LLI = 1 makes f_printf() support long long argument and FF_PRINT_FLOAT = 1/2
+/  makes f_printf() support floating point argument. These features want C99 or later.
+/  When FF_LFN_UNICODE >= 1 with LFN enabled, string functions convert the character
+/  encoding in it. FF_STRF_ENCODE selects assumption of character encoding ON THE FILE
+/  to be read/written via those functions.
+/
+/   0: ANSI/OEM in current CP
+/   1: Unicode in UTF-16LE
+/   2: Unicode in UTF-16BE
+/   3: Unicode in UTF-8
+*/
 /*---------------------------------------------------------------------------/
 / Locale and Namespace Configurations
 /---------------------------------------------------------------------------*/
 /* The FF_USE_LFN switches the support for LFN (long file name).
 /
 /   0: Disable LFN. FF_MAX_LFN has no effect.
-/   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
+/   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.
 /
 /  requiers certain internal working buffer occupies (FF_MAX_LFN + 1) * 2 bytes and
 /  additional (FF_MAX_LFN + 44) / 15 * 32 bytes when exFAT is enabled.
 /  The FF_MAX_LFN defines size of the working buffer in UTF-16 code unit and it can
-/  be in range of 12 to 255. It is recommended to be set 255 to fully support LFN
+/  be in range of 12 to 255. It is recommended to be set it 255 to fully support LFN
 /  specification.
 /  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() in ffsystem.c, need to be added to the project. */
+/  ff_memfree() exemplified in ffsystem.c, need to be added to the project. */
 
 
 #define FF_LFN_UNICODE 0
 /  on character encoding. When LFN is not enabled, these options have no effect. */
 
 
-#define FF_STRF_ENCODE 3
-/* When FF_LFN_UNICODE >= 1 with LFN enabled, string I/O functions, f_gets(),
-/  f_putc(), f_puts and f_printf() convert the character encoding in it.
-/  This option selects assumption of character encoding ON THE FILE to be
-/  read/written via those functions.
-/
-/   0: ANSI/OEM in current CP
-/   1: Unicode in UTF-16LE
-/   2: Unicode in UTF-16BE
-/   3: Unicode in UTF-8
-*/
-
-
 #define FF_FS_RPATH            2
 /* This option configures support for relative path.
 /
 /  logical drives. Number of items must not be less than FF_VOLUMES. Valid
 /  characters for the volume ID strings are A-Z, a-z and 0-9, however, they are
 /  compared in case-insensitive. If FF_STR_VOLUME_ID >= 1 and FF_VOLUME_STRS is
-/  not defined, a user defined volume string table needs to be defined as:
+/  not defined, a user defined volume string table is needed as:
 /
 /  const char* VolumeStr[FF_VOLUMES] = {"ram","flash","sd","usb",...
 */
 /  number and only an FAT volume found on the physical drive will be mounted.
 /  When this function 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. */
+/  function will be available. */
 
 
 #define FF_MIN_SS              512
 #define FF_MAX_SS              512
 /* This set of options configures the range of sector size to be supported. (512,
 /  1024, 2048 or 4096) Always set both 512 for most systems, generic memory card and
-/  harddisk. But a larger value may be required for on-board flash memory and some
+/  harddisk, but a larger value may be required for on-board flash memory and some
 /  type of optical media. When FF_MAX_SS is larger than FF_MIN_SS, FatFs is configured
 /  for variable sector size mode and disk_ioctl() function needs to implement
 /  GET_SECTOR_SIZE command. */
+#define FF_LBA64               0
+/* This option switches support for 64-bit LBA. (0:Disable or 1:Enable)
+/  To enable the 64-bit LBA, also exFAT needs to be enabled. (FF_FS_EXFAT == 1) */
+
+
+#define FF_MIN_GPT             0x10000000
+/* Minimum number of sectors to switch GPT as partitioning format in f_mkfs and
+/  f_fdisk function. 0x100000000 max. This option has no effect when FF_LBA64 == 0. */
 
 
 #define FF_USE_TRIM            0
 /  disk_ioctl() function. */
 
 
-#define FF_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.
-*/
 
 
 
 
 #define FF_FS_EXFAT            0
 /* This option switches support for exFAT filesystem. (0:Disable or 1:Enable)
-/  To enable exFAT, also LFN needs to be enabled.
+/  To enable exFAT, also LFN needs to be enabled. (FF_USE_LFN >= 1)
 /  Note that enabling exFAT discards ANSI C (C89) compatibility. */
 
 
 #define FF_FS_NORTC            0
 #define FF_NORTC_MON   1
 #define FF_NORTC_MDAY  1
-#define FF_NORTC_YEAR  2018
-/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have
-/  any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable
-/  the timestamp function. Every object modified by FatFs will have a fixed timestamp
+#define FF_NORTC_YEAR  2022
+/* The option FF_FS_NORTC switches timestamp feature. If the system does not have
+/  an RTC or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable the
+/  timestamp feature. Every object modified by FatFs will have a fixed timestamp
 /  defined by FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR in local time.
 /  To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be
 /  added to the project to read current time form real-time clock. FF_NORTC_MON,
 /  FF_NORTC_MDAY and FF_NORTC_YEAR have no effect.
-/  These options have no effect at read-only configuration (FF_FS_READONLY = 1). */
+/  These options have no effect in read-only configuration (FF_FS_READONLY = 1). */
+
+
+#define FF_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 the 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.
+*/
 
 
 #define FF_FS_LOCK             0
 
 #define FF_FS_REENTRANT        0
 #define FF_FS_TIMEOUT  1000
-#define FF_SYNC_t              HANDLE
 /* The option FF_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.
+/  to the same volume is under control of this featuer.
 /
-/   0: Disable re-entrancy. FF_FS_TIMEOUT and FF_SYNC_t have no effect.
+/   0: Disable re-entrancy. FF_FS_TIMEOUT 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.
+/      ff_mutex_create(), ff_mutex_delete(), ff_mutex_take() and ff_mutex_give()
+/      function, must be added to the project. Samples are available in ffsystem.c.
 /
-/  The FF_FS_TIMEOUT defines timeout period in unit of time tick.
-/  The FF_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.h. */
-
-/* #include <windows.h>        // O/S definitions  */
+/  The FF_FS_TIMEOUT defines timeout period in unit of O/S time tick.
+*/
 
 
 
index fee87a536438b4fb057de1647e200d447ed964e6..ad89e4b781722f2c214c218e7c38cc99a258d136 100644 (file)
@@ -1,14 +1,15 @@
-/*-----------------------------------------------------------------------
-/  Low level disk interface modlue include file  R0.07   (C)ChaN, 2009
+/*-----------------------------------------------------------------------/
+/  Low level disk interface modlue include file   (C)ChaN, 2019          /
 /-----------------------------------------------------------------------*/
 
-#ifndef _DISKIO_H
-#define _DISKIO_H
+#ifndef _DISKIO_DEFINED
+#define _DISKIO_DEFINED
 
-#define _USE_WRITE     1       /* 1: Enable disk_write function */
-#define _USE_IOCTL     1       /* 1: Enable disk_ioctl fucntion */
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-#include "integer.h"
+#include "ff.h"
 
 
 /* Status of Disk Functions */
@@ -27,15 +28,11 @@ typedef enum {
 /*---------------------------------------*/
 /* Prototypes for disk control functions */
 
-DSTATUS disk_initialize (BYTE drv);
-DSTATUS disk_status (BYTE drv);
-DRESULT disk_read (BYTE drv, BYTE* buff, DWORD sector, UINT count);
-#if    _USE_WRITE
-DRESULT disk_write (BYTE drv, const BYTE* buff, DWORD sector, UINT count);
-#endif
-#if    _USE_IOCTL
-DRESULT disk_ioctl (BYTE drv, BYTE cmd, void* buff);
-#endif
+DSTATUS disk_initialize (BYTE pdrv);
+DSTATUS disk_status (BYTE pdrv);
+DRESULT disk_read (BYTE pdrv, BYTE* buff, LBA_t sector, UINT count);
+DRESULT disk_write (BYTE pdrv, const BYTE* buff, LBA_t sector, UINT count);
+DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff);
 void disk_timerproc (void);
 
 
@@ -49,14 +46,14 @@ void disk_timerproc (void);
 #define STAT_MASK              (STA_NOINIT | STA_NODISK | STA_PROTECT)
 
 
-/* Command code for disk_ioctrl() */
+/* Command code for disk_ioctrl function */
 
 /* Generic command (Used by FatFs) */
-#define CTRL_SYNC                      0       /* Complete pending write process (needed at _FS_READONLY == 0) */
-#define GET_SECTOR_COUNT       1       /* Get media size (needed at _USE_MKFS == 1) */
-#define GET_SECTOR_SIZE                2       /* Get sector size (needed at _MAX_SS != _MIN_SS) */
-#define GET_BLOCK_SIZE         3       /* Get erase block size (needed at _USE_MKFS == 1) */
-#define CTRL_TRIM                      4       /* Inform device that the data on the block of sectors is no longer used (needed at _USE_TRIM == 1) */
+#define CTRL_SYNC                      0       /* Complete pending write process (needed at FF_FS_READONLY == 0) */
+#define GET_SECTOR_COUNT       1       /* Get media size (needed at FF_USE_MKFS == 1) */
+#define GET_SECTOR_SIZE                2       /* Get sector size (needed at FF_MAX_SS != FF_MIN_SS) */
+#define GET_BLOCK_SIZE         3       /* Get erase block size (needed at FF_USE_MKFS == 1) */
+#define CTRL_TRIM                      4       /* Inform device that the data on the block of sectors is no longer used (needed at FF_USE_TRIM == 1) */
 
 /* Generic command (Not used by FatFs) */
 #define CTRL_FORMAT                    5       /* Create physical format on the media */
diff --git a/include/integer.h b/include/integer.h
deleted file mode 100644 (file)
index 4660ed6..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*-------------------------------------------*/\r
-/* Integer type definitions for FatFs module */\r
-/*-------------------------------------------*/\r
-\r
-#ifndef _FF_INTEGER\r
-#define _FF_INTEGER\r
-\r
-#ifdef _WIN32  /* FatFs development platform */\r
-\r
-#include <windows.h>\r
-#include <tchar.h>\r
-typedef unsigned __int64 QWORD;\r
-\r
-\r
-#else                  /* Embedded platform */\r
-\r
-/* These types MUST be 16-bit or 32-bit */\r
-typedef int                            INT;\r
-typedef unsigned int   UINT;\r
-\r
-/* This type MUST be 8-bit */\r
-typedef unsigned char  BYTE;\r
-\r
-/* These types MUST be 16-bit */\r
-typedef short                  SHORT;\r
-typedef unsigned short WORD;\r
-typedef unsigned short WCHAR;\r
-\r
-/* These types MUST be 32-bit */\r
-typedef long                   LONG;\r
-typedef unsigned long  DWORD;\r
-\r
-/* This type MUST be 64-bit (Remove this for C89 compatibility) */\r
-typedef unsigned long long QWORD;\r
-\r
-#endif\r
-\r
-#endif\r