FatFS now functional on STM32H7xx, added a target to the VFS demo.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15551 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
d62c01ac48
commit
7fbd1ae369
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -216,6 +216,13 @@ static struct {
|
||||||
vfs_fatfs_file_node_c file_nodes[DRV_CFG_FATFS_FILE_NODES_NUM];
|
vfs_fatfs_file_node_c file_nodes[DRV_CFG_FATFS_FILE_NODES_NUM];
|
||||||
} vfs_fatfs_driver_static;
|
} vfs_fatfs_driver_static;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Static members of @p vfs_fatfs_driver_c (non-cached).
|
||||||
|
*/
|
||||||
|
static struct {
|
||||||
|
FATFS fs[DRV_CFG_FATFS_FS_NUM];
|
||||||
|
} __nocache_vfs_fatfs_driver_static;
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Module local functions. */
|
/* Module local functions. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -816,7 +823,7 @@ void __drv_fatfs_init(void) {
|
||||||
chCoreAllocAlignedI);
|
chCoreAllocAlignedI);
|
||||||
chPoolObjectInit(&vfs_fatfs_driver_static.fs_nodes_pool,
|
chPoolObjectInit(&vfs_fatfs_driver_static.fs_nodes_pool,
|
||||||
sizeof (FATFS),
|
sizeof (FATFS),
|
||||||
chCoreAllocAlignedI);
|
NULL);
|
||||||
|
|
||||||
/* Preloading pools.*/
|
/* Preloading pools.*/
|
||||||
chPoolLoadArray(&vfs_fatfs_driver_static.dir_nodes_pool,
|
chPoolLoadArray(&vfs_fatfs_driver_static.dir_nodes_pool,
|
||||||
|
@ -825,6 +832,9 @@ void __drv_fatfs_init(void) {
|
||||||
chPoolLoadArray(&vfs_fatfs_driver_static.file_nodes_pool,
|
chPoolLoadArray(&vfs_fatfs_driver_static.file_nodes_pool,
|
||||||
&vfs_fatfs_driver_static.file_nodes[0],
|
&vfs_fatfs_driver_static.file_nodes[0],
|
||||||
DRV_CFG_FATFS_FILE_NODES_NUM);
|
DRV_CFG_FATFS_FILE_NODES_NUM);
|
||||||
|
chPoolLoadArray(&vfs_fatfs_driver_static.fs_nodes_pool,
|
||||||
|
&__nocache_vfs_fatfs_driver_static.fs[0],
|
||||||
|
DRV_CFG_FATFS_FS_NUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -855,6 +865,7 @@ vfs_driver_c *drvFatFSObjectInit(vfs_fatfs_driver_c *vffdp) {
|
||||||
*/
|
*/
|
||||||
msg_t drvFatFSMount(const char *name, bool mountnow) {
|
msg_t drvFatFSMount(const char *name, bool mountnow) {
|
||||||
FATFS *fs;
|
FATFS *fs;
|
||||||
|
FRESULT res;
|
||||||
|
|
||||||
fs = f_getfs(name);
|
fs = f_getfs(name);
|
||||||
if (fs == NULL) {
|
if (fs == NULL) {
|
||||||
|
@ -864,7 +875,12 @@ msg_t drvFatFSMount(const char *name, bool mountnow) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return translate_error(f_mount(fs, name, (BYTE)(mountnow ? 1 : 0)));
|
res = f_mount(fs, name, (BYTE)(mountnow ? 1 : 0));
|
||||||
|
if (res != FR_OK) {
|
||||||
|
chPoolFree(&vfs_fatfs_driver_static.fs_nodes_pool, (void *)fs);
|
||||||
|
}
|
||||||
|
|
||||||
|
return translate_error(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -43,6 +43,10 @@
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/* Configuration options checks.*/
|
/* Configuration options checks.*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM)
|
||||||
|
#error "DRV_CFG_FATFS_FS_NUM not defined in vfsconf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(DRV_CFG_FATFS_DIR_NODES_NUM)
|
#if !defined(DRV_CFG_FATFS_DIR_NODES_NUM)
|
||||||
#error "DRV_CFG_FATFS_DIR_NODES_NUM not defined in vfsconf.h"
|
#error "DRV_CFG_FATFS_DIR_NODES_NUM not defined in vfsconf.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -141,6 +141,13 @@
|
||||||
*/
|
*/
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maximum number of FatFS file systems mounted.
|
||||||
|
*/
|
||||||
|
#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
|
||||||
|
#define DRV_CFG_FATFS_FS_NUM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of directory nodes pre-allocated in the pool.
|
* @brief Number of directory nodes pre-allocated in the pool.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue