Select one of the symbols to view example projects that use it.
 
Outline
...
...
#define FX_STM32_SD_DRIVER_H
Includes
#include "fx_api.h"
#include "stm32f4xx_hal.h"
Exported types
transfer_semaphore;
#define FX_STM32_SD_DEFAULT_TIMEOUT
#define FX_STM32_SD_INIT
#define FX_STM32_SD_DMA_API
#define FX_STM32_SD_INSTANCE
#define FX_STM32_SD_DEFAULT_SECTOR_SIZE
#define FX_STM32_SD_CURRENT_TIME
#define FX_STM32_SD_POST_INIT
#define FX_STM32_SD_POST_ABORT
#define FX_STM32_SD_WRITE_CPLT_NOTIFY
#define FX_STM32_SD_PRE_WRITE_TRANSFER
#define FX_STM32_SD_POST_WRITE_TRANSFER
#define FX_STM32_SD_WRITE_TRANSFER_ERROR
Exported functions prototypes
fx_stm32_sd_init(UINT);
fx_stm32_sd_deinit(UINT);
fx_stm32_sd_get_status(UINT);
fx_stm32_sd_read_blocks(UINT, UINT *, UINT, UINT);
fx_stm32_sd_write_blocks(UINT, UINT *, UINT, UINT);
fx_stm32_sd_driver(FX_MEDIA *);
Files
loading...
CodeScopeSTM32 Libraries and SamplesUx_Device_CDC_ECMFileX/Target/fx_stm32_sd_driver.h
 
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef FX_STM32_SD_DRIVER_H #define FX_STM32_SD_DRIVER_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "fx_api.h" #include "stm32f4xx_hal.h" /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ Includes /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ /* USER CODE END ET */ extern TX_SEMAPHORE transfer_semaphore; Exported types /* Exported constants --------------------------------------------------------*/ /* Default timeout used to wait for fx operations */ #define FX_STM32_SD_DEFAULT_TIMEOUT (10 * TX_TIMER_TICKS_PER_SECOND) /* Let the filex low-level driver initialize the SD driver */ #define FX_STM32_SD_INIT 1 /* Use the SD DMA API */ #define FX_STM32_SD_DMA_API 1 /* SDIO instance to be used by FileX */ #define FX_STM32_SD_INSTANCE 0 /* Default sector size, used by the driver */ #define FX_STM32_SD_DEFAULT_SECTOR_SIZE 512 /* USER CODE BEGIN EC */ /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ /* USER CODE END EM */ /* Get the current time in ticks */ /* USER CODE BEGIN FX_STM32_SD_CURRENT_TIME_TX */ #define FX_STM32_SD_CURRENT_TIME() tx_time_get() /* USER CODE END FX_STM32_SD_CURRENT_TIME_TX */ /* Macro called before initializing the SD driver * e.g. create a semaphore used for transfer notification *//* ... */ /* USER CODE BEGIN FX_STM32_SD_PRE_INIT_TX */ #define FX_STM32_SD_PRE_INIT(_media_ptr) do { \ if (tx_semaphore_create(&transfer_semaphore, "sd transfer semaphore", 1) != TX_SUCCESS) \ { \ _media_ptr->fx_media_driver_status = FX_IO_ERROR; \ ...} \ ...} while(0)... /* USER CODE END FX_STM32_SD_PRE_INIT_TX */ /* Macro called after initializing the SD driver */ /* USER CODE BEGIN FX_STM32_SD_POST_INIT */ #define FX_STM32_SD_POST_INIT(_media_ptr) /* USER CODE END FX_STM32_SD_POST_INIT */ /* Macro called after the SD deinit */ /* USER CODE BEGIN FX_STM32_SD_POST_DEINIT_TX */ #define FX_STM32_SD_POST_DEINIT(_media_ptr) do { \ tx_semaphore_delete(&transfer_semaphore); \ ...} while(0)... /* USER CODE END FX_STM32_SD_POST_DEINIT_TX */ /* Macro called after the abort request */ /* USER CODE BEGIN FX_STM32_SD_POST_ABORT */ #define FX_STM32_SD_POST_ABORT(_media_ptr) /* USER CODE END FX_STM32_SD_POST_ABORT */ /* Macro called before performing read operation */ /* USER CODE BEGIN FX_STM32_SD_PRE_READ_TRANSFER_DMA */ #define FX_STM32_SD_PRE_READ_TRANSFER(_media_ptr) do { \ if(tx_semaphore_get(&transfer_semaphore, FX_STM32_SD_DEFAULT_TIMEOUT) != TX_SUCCESS) \ { \ return FX_IO_ERROR; \ ...} \ ...} while(0)... /* USER CODE END FX_STM32_SD_PRE_READ_TRANSFER_DMA */ /* Macro called after performing read operation */ /* USER CODE BEGIN FX_STM32_SD_POST_READ_TRANSFER_TX */ #define FX_STM32_SD_POST_READ_TRANSFER(_media_ptr) do { \ if(tx_semaphore_put(&transfer_semaphore) != TX_SUCCESS) \ { \ return FX_IO_ERROR; \ ...} \ ...} while(0)... /* USER CODE END FX_STM32_SD_POST_READ_TRANSFER_TX */ /* Macro for read error handling */ /* USER CODE BEGIN FX_STM32_SD_READ_TRANSFER_ERROR_TX */ #define FX_STM32_SD_READ_TRANSFER_ERROR(_status_) do { \ tx_semaphore_put(&transfer_semaphore); \ _status_ = FX_IO_ERROR; \ ...} while(0)... /* USER CODE END FX_STM32_SD_READ_TRANSFER_ERROR_TX */ /* Define how to notify about Read completion operation */ /* USER CODE BEGIN FX_STM32_SD_READ_CPLT_NOTIFY_TX */ #define FX_STM32_SD_READ_CPLT_NOTIFY() do { \ if(tx_semaphore_get(&transfer_semaphore, FX_STM32_SD_DEFAULT_TIMEOUT) != TX_SUCCESS) \ { \ return FX_IO_ERROR; \ ...} \ ...} while(0)... /* USER CODE END FX_STM32_SD_READ_CPLT_NOTIFY_TX */ /* Define how to notify about write completion operation */ /* USER CODE BEGIN FX_STM32_SD_WRITE_CPLT_NOTIFY_TX */ #define FX_STM32_SD_WRITE_CPLT_NOTIFY FX_STM32_SD_READ_CPLT_NOTIFY /* USER CODE END FX_STM32_SD_WRITE_CPLT_NOTIFY_TX */ /* Macro called before performing write operation */ /* USER CODE BEGIN FX_STM32_SD_PRE_WRITE_TRANSFER_TX */ #define FX_STM32_SD_PRE_WRITE_TRANSFER FX_STM32_SD_PRE_READ_TRANSFER /* USER CODE END FX_STM32_SD_PRE_WRITE_TRANSFER_TX */ /* Macro called after performing write operation */ /* USER CODE BEGIN FX_STM32_SD_POST_WRITE_TRANSFER */ #define FX_STM32_SD_POST_WRITE_TRANSFER FX_STM32_SD_POST_READ_TRANSFER /* USER CODE END FX_STM32_SD_POST_WRITE_TRANSFER */ /* Macro for write error handling */ /* USER CODE BEGIN FX_STM32_SD_WRITE_TRANSFER_ERROR */ #define FX_STM32_SD_WRITE_TRANSFER_ERROR FX_STM32_SD_READ_TRANSFER_ERROR 18 defines /* USER CODE END FX_STM32_SD_WRITE_TRANFSER_ERROR */ /* Exported functions prototypes ---------------------------------------------*/ INT fx_stm32_sd_init(UINT instance); INT fx_stm32_sd_deinit(UINT instance); INT fx_stm32_sd_get_status(UINT instance); INT fx_stm32_sd_read_blocks(UINT instance, UINT *buffer, UINT start_block, UINT total_blocks); INT fx_stm32_sd_write_blocks(UINT instance, UINT *buffer, UINT start_block, UINT total_blocks); VOID fx_stm32_sd_driver(FX_MEDIA *media_ptr); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ Exported functions prototypes /* Private defines -----------------------------------------------------------*/ /* USER CODE BEGIN PD */ /* USER CODE END PD */ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ #ifdef __cplusplus }extern "C" { ... } #endif /* ... */ ...#endif /* FX_STM32_SD_DRIVER_H */