Select one of the symbols to view example projects that use it.
 
Outline
Includes
#include "ff_gen_drv.h"
Private variables
disk
Private functions
FATFS_LinkDriverEx(const Diskio_drvTypeDef *, char *, uint8_t)
FATFS_LinkDriver(const Diskio_drvTypeDef *, char *)
FATFS_UnLinkDriverEx(char *, uint8_t)
FATFS_UnLinkDriver(char *)
FATFS_GetAttachedDriversNbr()
Files
loading...
SourceVuSTM32 Libraries and SamplesFatFssrc/ff_gen_drv.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/** ****************************************************************************** * @file ff_gen_drv.c * @author MCD Application Team * @brief FatFs generic low level driver. ***************************************************************************** * @attention * * Copyright (c) 2017 STMicroelectronics. All rights reserved. * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** **//* ... */ /* Includes ------------------------------------------------------------------*/ #include "ff_gen_drv.h" Includes /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ Disk_drvTypeDef disk = {{0},{0},{0},0}; Private variables /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /** * @brief Links a compatible diskio driver/lun id and increments the number of active * linked drivers. * @note The number of linked drivers (volumes) is up to 10 due to FatFs limits. * @param drv: pointer to the disk IO Driver structure * @param path: pointer to the logical drive path * @param lun : only used for USB Key Disk to add multi-lun management else the parameter must be equal to 0 * @retval Returns 0 in case of success, otherwise 1. *//* ... */ uint8_t FATFS_LinkDriverEx(const Diskio_drvTypeDef *drv, char *path, uint8_t lun) { uint8_t ret = 1; uint8_t DiskNum = 0; if(disk.nbr < _VOLUMES) { disk.is_initialized[disk.nbr] = 0; disk.drv[disk.nbr] = drv; disk.lun[disk.nbr] = lun; DiskNum = disk.nbr++; path[0] = DiskNum + '0'; path[1] = ':'; path[2] = '/'; path[3] = 0; ret = 0; }if (disk.nbr < _VOLUMES) { ... } return ret; }{ ... } /** * @brief Links a compatible diskio driver and increments the number of active * linked drivers. * @note The number of linked drivers (volumes) is up to 10 due to FatFs limits * @param drv: pointer to the disk IO Driver structure * @param path: pointer to the logical drive path * @retval Returns 0 in case of success, otherwise 1. *//* ... */ uint8_t FATFS_LinkDriver(const Diskio_drvTypeDef *drv, char *path) { return FATFS_LinkDriverEx(drv, path, 0); }{ ... } /** * @brief Unlinks a diskio driver and decrements the number of active linked * drivers. * @param path: pointer to the logical drive path * @param lun : not used * @retval Returns 0 in case of success, otherwise 1. *//* ... */ uint8_t FATFS_UnLinkDriverEx(char *path, uint8_t lun) { uint8_t DiskNum = 0; uint8_t ret = 1; if(disk.nbr >= 1) { DiskNum = path[0] - '0'; if(disk.drv[DiskNum] != 0) { disk.drv[DiskNum] = 0; disk.lun[DiskNum] = 0; disk.nbr--; ret = 0; }if (disk.drv[DiskNum] != 0) { ... } }if (disk.nbr >= 1) { ... } return ret; }{ ... } /** * @brief Unlinks a diskio driver and decrements the number of active linked * drivers. * @param path: pointer to the logical drive path * @retval Returns 0 in case of success, otherwise 1. *//* ... */ uint8_t FATFS_UnLinkDriver(char *path) { return FATFS_UnLinkDriverEx(path, 0); }{ ... } /** * @brief Gets number of linked drivers to the FatFs module. * @param None * @retval Number of attached drivers. *//* ... */ uint8_t FATFS_GetAttachedDriversNbr(void) { return disk.nbr; }{ ... } /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/Private functions
Details