Skip to content

Commit d8bf533

Browse files
committed
FILESYSTEM: Fix to only build SDFileSystem if DEVICE_SPI defined, to build correctly for targets that dont have SPI interfaces.
1 parent e256981 commit d8bf533

File tree

4 files changed

+28
-39
lines changed

4 files changed

+28
-39
lines changed

features/TESTS/filesystem/basic/basic.cpp

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -59,36 +59,32 @@
5959

6060
using namespace utest::v1;
6161

62-
/* FSFAT_SDCARD_INSTALLTED
62+
/* DEVICE_SPI
63+
* This symbol is defined in targets.json if the target has a SPI interface, which is required for SDCard support.
64+
* FSFAT_SDCARD_INSTALLTED
6365
* For testing purposes, an SDCard must be installed on the target for the test cases in this file to succeed.
6466
* If the target has an SD card installed then uncomment the #define FSFAT_SDCARD_INSTALLED directive for the target.
6567
*/
66-
#ifdef FSFAT_SDCARD_INSTALLED
67-
68+
/* #define FSFAT_SDCARD_INSTALLED */
69+
#if defined(DEVICE_SPI) && defined(FSFAT_SDCARD_INSTALLED)
6870

6971
#if defined(TARGET_KL25Z)
7072
SDFileSystem sd(PTD2, PTD3, PTD1, PTD0, "sd");
71-
/* #define FSFAT_SDCARD_INSTALLED */
7273

7374
#elif defined(TARGET_KL46Z) || defined(TARGET_KL43Z)
7475
SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
75-
/* #define FSFAT_SDCARD_INSTALLED */
7676

7777
#elif defined(TARGET_K64F) || defined(TARGET_K66F)
7878
SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
79-
/* #define FSFAT_SDCARD_INSTALLED */
8079

8180
#elif defined(TARGET_K22F)
8281
SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
83-
/* #define FSFAT_SDCARD_INSTALLED */
8482

8583
#elif defined(TARGET_K20D50M)
8684
SDFileSystem sd(PTD2, PTD3, PTD1, PTC2, "sd");
87-
/* #define FSFAT_SDCARD_INSTALLED */
8885

8986
#elif defined(TARGET_nRF51822)
9087
SDFileSystem sd(p12, p13, p15, p14, "sd");
91-
/* #define FSFAT_SDCARD_INSTALLED */
9288

9389
#elif defined(TARGET_NUCLEO_F030R8) || \
9490
defined(TARGET_NUCLEO_F070RB) || \
@@ -105,37 +101,28 @@ SDFileSystem sd(p12, p13, p15, p14, "sd");
105101
defined(TARGET_NUCLEO_L073RZ) || \
106102
defined(TARGET_NUCLEO_L152RE)
107103
SDFileSystem sd(D11, D12, D13, D10, "sd");
108-
/* #define FSFAT_SDCARD_INSTALLED */
109-
110104

111105
#elif defined(TARGET_DISCO_F051R8) || \
112106
defined(TARGET_NUCLEO_L031K6)
113107
SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
114-
/* #define FSFAT_SDCARD_INSTALLED */
115108

116109
#elif defined(TARGET_LPC2368)
117110
SDFileSystem sd(p11, p12, p13, p14, "sd");
118-
/* #define FSFAT_SDCARD_INSTALLED */
119111

120112
#elif defined(TARGET_LPC11U68)
121113
SDFileSystem sd(D11, D12, D13, D10, "sd");
122-
/* #define FSFAT_SDCARD_INSTALLED */
123114

124115
#elif defined(TARGET_LPC1549)
125116
SDFileSystem sd(D11, D12, D13, D10, "sd");
126-
/* #define FSFAT_SDCARD_INSTALLED */
127117

128118
#elif defined(TARGET_RZ_A1H)
129119
SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd");
130-
/* #define FSFAT_SDCARD_INSTALLED */
131120

132121
#elif defined(TARGET_LPC11U37H_401)
133122
SDFileSystem sd(SDMOSI, SDMISO, SDSCLK, SDSSEL, "sd");
134-
/* #define FSFAT_SDCARD_INSTALLED */
135123

136124
#else
137-
SDFileSystem sd(p11, p12, p13, p14, "sd");
138-
/* #define FSFAT_SDCARD_INSTALLED */
125+
#error "[NOT SUPPORTED] Instantiate SDFileSystem sd(p11, p12, p13, p14, "sd") with the correct pin specification for target"
139126
#endif
140127

141128

@@ -414,7 +401,7 @@ static control_t fsfat_basic_test_dummy()
414401
return CaseNext;
415402
}
416403

417-
#endif /* FSFAT_SDCARD_INSTALLED */
404+
#endif /* defined(DEVICE_SPI) && defined(FSFAT_SDCARD_INSTALLED) */
418405

419406
utest::v1::status_t greentea_setup(const size_t number_of_cases)
420407
{

features/TESTS/filesystem/fopen/fopen.cpp

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,37 +46,34 @@ using namespace utest::v1;
4646
/// @endcond
4747

4848

49-
/* FSFAT_SDCARD_INSTALLTED
49+
/* DEVICE_SPI
50+
* This symbol is defined in targets.json if the target has a SPI interface, which is required for SDCard support.
51+
* FSFAT_SDCARD_INSTALLTED
5052
* For testing purposes, an SDCard must be installed on the target for the test cases in this file to succeed.
5153
* If the target has an SD card installed then uncomment the #define FSFAT_SDCARD_INSTALLED directive for the target.
5254
*/
53-
#ifdef FSFAT_SDCARD_INSTALLED
55+
/* #define FSFAT_SDCARD_INSTALLED */
56+
#if defined(DEVICE_SPI) && defined(FSFAT_SDCARD_INSTALLED)
5457

5558
static char fsfat_fopen_utest_msg_g[FSFAT_UTEST_MSG_BUF_SIZE];
5659

5760
#if defined(TARGET_KL25Z)
5861
SDFileSystem sd(PTD2, PTD3, PTD1, PTD0, "sd");
59-
/* #define FSFAT_SDCARD_INSTALLED */
6062

6163
#elif defined(TARGET_KL46Z) || defined(TARGET_KL43Z)
6264
SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
63-
/* #define FSFAT_SDCARD_INSTALLED */
6465

6566
#elif defined(TARGET_K64F) || defined(TARGET_K66F)
6667
SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
67-
/* #define FSFAT_SDCARD_INSTALLED */
6868

6969
#elif defined(TARGET_K22F)
7070
SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
71-
/* #define FSFAT_SDCARD_INSTALLED */
7271

7372
#elif defined(TARGET_K20D50M)
7473
SDFileSystem sd(PTD2, PTD3, PTD1, PTC2, "sd");
75-
/* #define FSFAT_SDCARD_INSTALLED */
7674

7775
#elif defined(TARGET_nRF51822)
7876
SDFileSystem sd(p12, p13, p15, p14, "sd");
79-
/* #define FSFAT_SDCARD_INSTALLED */
8077

8178
#elif defined(TARGET_NUCLEO_F030R8) || \
8279
defined(TARGET_NUCLEO_F070RB) || \
@@ -93,37 +90,29 @@ SDFileSystem sd(p12, p13, p15, p14, "sd");
9390
defined(TARGET_NUCLEO_L073RZ) || \
9491
defined(TARGET_NUCLEO_L152RE)
9592
SDFileSystem sd(D11, D12, D13, D10, "sd");
96-
/* #define FSFAT_SDCARD_INSTALLED */
9793

9894

9995
#elif defined(TARGET_DISCO_F051R8) || \
10096
defined(TARGET_NUCLEO_L031K6)
10197
SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
102-
/* #define FSFAT_SDCARD_INSTALLED */
10398

10499
#elif defined(TARGET_LPC2368)
105100
SDFileSystem sd(p11, p12, p13, p14, "sd");
106-
/* #define FSFAT_SDCARD_INSTALLED */
107101

108102
#elif defined(TARGET_LPC11U68)
109103
SDFileSystem sd(D11, D12, D13, D10, "sd");
110-
/* #define FSFAT_SDCARD_INSTALLED */
111104

112105
#elif defined(TARGET_LPC1549)
113106
SDFileSystem sd(D11, D12, D13, D10, "sd");
114-
/* #define FSFAT_SDCARD_INSTALLED */
115107

116108
#elif defined(TARGET_RZ_A1H)
117109
SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd");
118-
/* #define FSFAT_SDCARD_INSTALLED */
119110

120111
#elif defined(TARGET_LPC11U37H_401)
121112
SDFileSystem sd(SDMOSI, SDMISO, SDSCLK, SDSSEL, "sd");
122-
/* #define FSFAT_SDCARD_INSTALLED */
123113

124114
#else
125-
SDFileSystem sd(p11, p12, p13, p14, "sd");
126-
/* #define FSFAT_SDCARD_INSTALLED */
115+
#error "[NOT SUPPORTED] Instantiate SDFileSystem sd(p11, p12, p13, p14, "sd") with the correct pin specification for target"
127116
#endif
128117

129118

@@ -826,7 +815,7 @@ static control_t fsfat_fopen_test_dummy()
826815
return CaseNext;
827816
}
828817

829-
#endif /* FSFAT_SDCARD_INSTALLED */
818+
#endif /* defined(DEVICE_SPI) && defined(FSFAT_SDCARD_INSTALLED) */
830819

831820

832821
/// @cond FSFAT_DOXYGEN_DISABLE

features/filesystem/sd/SDFileSystem.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@
112112
* | 0xFE | data[0] | data[1] | | data[n] | crc[15:8] | crc[7:0] |
113113
* +------+---------+---------+- - - -+---------+-----------+----------+
114114
*/
115+
116+
/* If the target has no SPI support then SDCard is not supported */
117+
#ifdef DEVICE_SPI
118+
115119
#include "SDFileSystem.h"
116120
#include "mbed_debug.h"
117121

@@ -537,3 +541,5 @@ uint32_t SDFileSystem::_sd_sectors() {
537541
};
538542
return blocks;
539543
}
544+
545+
#endif /* DEVICE_SPI */

features/filesystem/sd/SDFileSystem.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@
2222
#ifndef MBED_SDFILESYSTEM_H
2323
#define MBED_SDFILESYSTEM_H
2424

25+
/* If the target has no SPI support then SDCard is not supported */
26+
#ifdef DEVICE_SPI
27+
2528
#include "mbed.h"
2629
#include "FATFileSystem.h"
2730
#include <stdint.h>
2831

32+
33+
2934
/** Access the filesystem on an SD Card using SPI
3035
*
3136
* @code
@@ -88,4 +93,6 @@ class SDFileSystem : public FATFileSystem {
8893
bool _dbg;
8994
};
9095

91-
#endif
96+
#endif /* DEVICE_SPI */
97+
98+
#endif /* MBED_SDFILESYSTEM_H */

0 commit comments

Comments
 (0)