Commit f246905
committed
Double buffering fix for reception.
In the case of double buffering, it is impossible to determine exactly
how large the allocated buffer should be. To achieve double-buffering
acceleration, the PCD_FreeUserBuffer call must occur before the
HAL_PCD_DataOutStageCallback call. But the real data buffer can be
allocated only in this callback. It turns out that the approach itself
needs to be changed - always allocate maximum allowable endpoint buffer
size (it's already happends in USB_ActivateEndpoint). At the same time
we need to check the size of the data received. This check be done at
the time of data receipt. During reception confirmation, it may be that
there is no allocated buffer at all. In this case, we will have to
leave the filled PMA intact and not complete its release. In this case,
this operation will be repeated in HAL_PCD_EP_ReceiveData.1 parent 81ac026 commit f246905
File tree
3 files changed
+99
-43
lines changed- system/Drivers/STM32F1xx_HAL_Driver
- Inc
- Src
3 files changed
+99
-43
lines changedLines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
| 164 | + | |
163 | 165 | | |
164 | 166 | | |
165 | 167 | | |
| |||
269 | 271 | | |
270 | 272 | | |
271 | 273 | | |
272 | | - | |
273 | | - | |
| 274 | + | |
| 275 | + | |
274 | 276 | | |
275 | 277 | | |
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
279 | 281 | | |
280 | 282 | | |
281 | | - | |
| 283 | + | |
| 284 | + | |
282 | 285 | | |
283 | 286 | | |
284 | 287 | | |
285 | 288 | | |
| 289 | + | |
| 290 | + | |
286 | 291 | | |
287 | 292 | | |
288 | 293 | | |
| |||
Lines changed: 89 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
120 | 123 | | |
121 | 124 | | |
122 | 125 | | |
| |||
190 | 193 | | |
191 | 194 | | |
192 | 195 | | |
| 196 | + | |
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
| |||
202 | 206 | | |
203 | 207 | | |
204 | 208 | | |
| 209 | + | |
205 | 210 | | |
206 | 211 | | |
207 | 212 | | |
| |||
907 | 912 | | |
908 | 913 | | |
909 | 914 | | |
910 | | - | |
911 | 915 | | |
912 | 916 | | |
913 | 917 | | |
| |||
919 | 923 | | |
920 | 924 | | |
921 | 925 | | |
922 | | - | |
| 926 | + | |
923 | 927 | | |
924 | 928 | | |
925 | 929 | | |
| |||
933 | 937 | | |
934 | 938 | | |
935 | 939 | | |
936 | | - | |
| 940 | + | |
937 | 941 | | |
938 | 942 | | |
939 | 943 | | |
| |||
1178 | 1182 | | |
1179 | 1183 | | |
1180 | 1184 | | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
1181 | 1191 | | |
1182 | 1192 | | |
1183 | 1193 | | |
| |||
1192 | 1202 | | |
1193 | 1203 | | |
1194 | 1204 | | |
1195 | | - | |
| 1205 | + | |
1196 | 1206 | | |
1197 | 1207 | | |
1198 | 1208 | | |
| |||
1220 | 1230 | | |
1221 | 1231 | | |
1222 | 1232 | | |
1223 | | - | |
1224 | | - | |
| 1233 | + | |
| 1234 | + | |
1225 | 1235 | | |
1226 | 1236 | | |
1227 | 1237 | | |
1228 | 1238 | | |
1229 | 1239 | | |
1230 | | - | |
| 1240 | + | |
1231 | 1241 | | |
1232 | 1242 | | |
1233 | 1243 | | |
| |||
1242 | 1252 | | |
1243 | 1253 | | |
1244 | 1254 | | |
1245 | | - | |
| 1255 | + | |
1246 | 1256 | | |
1247 | 1257 | | |
1248 | 1258 | | |
1249 | 1259 | | |
1250 | 1260 | | |
1251 | 1261 | | |
1252 | | - | |
| 1262 | + | |
1253 | 1263 | | |
1254 | 1264 | | |
1255 | 1265 | | |
| |||
1281 | 1291 | | |
1282 | 1292 | | |
1283 | 1293 | | |
1284 | | - | |
| 1294 | + | |
1285 | 1295 | | |
1286 | 1296 | | |
1287 | 1297 | | |
| |||
1302 | 1312 | | |
1303 | 1313 | | |
1304 | 1314 | | |
1305 | | - | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
1306 | 1322 | | |
| 1323 | + | |
1307 | 1324 | | |
1308 | 1325 | | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
1309 | 1332 | | |
1310 | 1333 | | |
1311 | 1334 | | |
1312 | 1335 | | |
1313 | 1336 | | |
1314 | | - | |
| 1337 | + | |
| 1338 | + | |
1315 | 1339 | | |
1316 | 1340 | | |
1317 | 1341 | | |
1318 | 1342 | | |
1319 | 1343 | | |
1320 | | - | |
| 1344 | + | |
1321 | 1345 | | |
1322 | | - | |
| 1346 | + | |
1323 | 1347 | | |
1324 | 1348 | | |
1325 | 1349 | | |
| |||
1369 | 1393 | | |
1370 | 1394 | | |
1371 | 1395 | | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
1372 | 1447 | | |
1373 | 1448 | | |
1374 | 1449 | | |
| |||
Lines changed: 2 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1887 | 1887 | | |
1888 | 1888 | | |
1889 | 1889 | | |
1890 | | - | |
| 1890 | + | |
1891 | 1891 | | |
1892 | | - | |
1893 | | - | |
1894 | | - | |
1895 | | - | |
1896 | | - | |
1897 | | - | |
1898 | | - | |
1899 | | - | |
1900 | | - | |
1901 | | - | |
1902 | | - | |
1903 | | - | |
1904 | | - | |
1905 | | - | |
1906 | | - | |
1907 | | - | |
1908 | | - | |
1909 | | - | |
1910 | | - | |
1911 | | - | |
1912 | | - | |
1913 | | - | |
1914 | | - | |
1915 | | - | |
1916 | 1892 | | |
1917 | 1893 | | |
1918 | | - | |
| 1894 | + | |
1919 | 1895 | | |
1920 | 1896 | | |
1921 | 1897 | | |
| |||
0 commit comments