Skip to content

Commit b7332f5

Browse files
committed
Make use of xxx_free() in FPGA tests
1 parent d5fc7de commit b7332f5

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

TESTS/mbed_hal_fpga_ci_test_shield/analogin/main.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ void fpga_analogin_init_test(PinName pin)
4949
analogin_t analogin;
5050

5151
analogin_init(&analogin, pin);
52+
analogin_free(&analogin);
5253
}
5354

5455
void fpga_analogin_test(PinName pin)
@@ -72,6 +73,8 @@ void fpga_analogin_test(PinName pin)
7273

7374
/* Set gpio back to Hi-Z */
7475
tester.gpio_write(MbedTester::LogicalPinGPIO0, 0, false);
76+
77+
analogin_free(&analogin);
7578
}
7679

7780
Case cases[] = {

TESTS/mbed_hal_fpga_ci_test_shield/gpio/main.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ void fpga_test_basic_input_output(PinName pin)
6161
// Test gpio_is_connected() returned value.
6262
gpio_init(&gpio, NC);
6363
TEST_ASSERT_EQUAL_INT(0, gpio_is_connected(&gpio));
64+
gpio_free(&gpio);
6465
gpio_init(&gpio, pin);
6566
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
6667

@@ -120,6 +121,8 @@ void fpga_test_basic_input_output(PinName pin)
120121
TEST_ASSERT_EQUAL_INT(1, tester.gpio_read(MbedTester::LogicalPinGPIO0));
121122
gpio_write(&gpio, 0);
122123
TEST_ASSERT_EQUAL_INT(0, tester.gpio_read(MbedTester::LogicalPinGPIO0));
124+
125+
gpio_free(&gpio);
123126
}
124127

125128
/* Test explicit input initialization.
@@ -148,6 +151,7 @@ void fpga_test_explicit_input(PinName pin)
148151
tester.gpio_write(MbedTester::LogicalPinGPIO0, 0, false);
149152
wait_us(HI_Z_READ_DELAY_US);
150153
TEST_ASSERT_EQUAL_INT(1, gpio_read(&gpio)); // hi-Z, pulled up
154+
gpio_free(&gpio);
151155

152156
// Initialize GPIO pin as an input, pull-down mode.
153157
memset(&gpio, 0, sizeof gpio);
@@ -156,6 +160,7 @@ void fpga_test_explicit_input(PinName pin)
156160
tester.gpio_write(MbedTester::LogicalPinGPIO0, 0, false);
157161
wait_us(HI_Z_READ_DELAY_US);
158162
TEST_ASSERT_EQUAL_INT(0, gpio_read(&gpio)); // hi-Z, pulled down
163+
gpio_free(&gpio);
159164

160165
// Initialize GPIO pin as an input, pull-up mode.
161166
memset(&gpio, 0, sizeof gpio);
@@ -164,6 +169,7 @@ void fpga_test_explicit_input(PinName pin)
164169
tester.gpio_write(MbedTester::LogicalPinGPIO0, 0, false);
165170
wait_us(HI_Z_READ_DELAY_US);
166171
TEST_ASSERT_EQUAL_INT(1, gpio_read(&gpio)); // hi-Z, pulled up
172+
gpio_free(&gpio);
167173

168174
// Initialize GPIO pin as an input, pull-down mode.
169175
memset(&gpio, 0, sizeof gpio);
@@ -172,6 +178,7 @@ void fpga_test_explicit_input(PinName pin)
172178
tester.gpio_write(MbedTester::LogicalPinGPIO0, 0, false);
173179
wait_us(HI_Z_READ_DELAY_US);
174180
TEST_ASSERT_EQUAL_INT(0, gpio_read(&gpio)); // hi-Z, pulled down
181+
gpio_free(&gpio);
175182
}
176183

177184
/* Test explicit output initialization.
@@ -198,30 +205,35 @@ void fpga_test_explicit_output(PinName pin)
198205
gpio_init_out(&gpio, pin);
199206
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
200207
TEST_ASSERT_EQUAL_INT(0, tester.gpio_read(MbedTester::LogicalPinGPIO0));
208+
gpio_free(&gpio);
201209

202210
// Initialize GPIO pin as an output, output value = 1.
203211
memset(&gpio, 0, sizeof gpio);
204212
gpio_init_out_ex(&gpio, pin, 1);
205213
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
206214
TEST_ASSERT_EQUAL_INT(1, tester.gpio_read(MbedTester::LogicalPinGPIO0));
215+
gpio_free(&gpio);
207216

208217
// Initialize GPIO pin as an output, output value = 0.
209218
memset(&gpio, 0, sizeof gpio);
210219
gpio_init_out_ex(&gpio, pin, 0);
211220
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
212221
TEST_ASSERT_EQUAL_INT(0, tester.gpio_read(MbedTester::LogicalPinGPIO0));
222+
gpio_free(&gpio);
213223

214224
// Initialize GPIO pin as an output, output value = 1.
215225
memset(&gpio, 0, sizeof gpio);
216226
gpio_init_inout(&gpio, pin, PIN_OUTPUT, PullNone, 1);
217227
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
218228
TEST_ASSERT_EQUAL_INT(1, tester.gpio_read(MbedTester::LogicalPinGPIO0));
229+
gpio_free(&gpio);
219230

220231
// Initialize GPIO pin as an output, output value = 0.
221232
memset(&gpio, 0, sizeof gpio);
222233
gpio_init_inout(&gpio, pin, PIN_OUTPUT, PullNone, 0);
223234
TEST_ASSERT_NOT_EQUAL(0, gpio_is_connected(&gpio));
224235
TEST_ASSERT_EQUAL_INT(0, tester.gpio_read(MbedTester::LogicalPinGPIO0));
236+
gpio_free(&gpio);
225237
}
226238

227239
Case cases[] = {

TESTS/mbed_hal_fpga_ci_test_shield/i2c/main.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,7 @@ void fpga_test_i2c_init_free(PinName sda, PinName scl)
5050
i2c_init(&obj, sda, scl);
5151
i2c_frequency(&obj, 100000);
5252

53-
/* Free up I2C pins
54-
*
55-
* The most suitable place to free up I2C pins is in i2c_free(). Due to
56-
* i2c_free() not available in I2C HAL, we free up I2C pins manually by
57-
* configuring them back to GPIO.
58-
*
59-
* Without free-up of I2C pins, SDA/SCL pins of the same I2C peripheral may
60-
* share by multiple ports due to 'all ports' tests here, and the following
61-
* I2C tests would be subject to interference by shared ports.
62-
*/
63-
gpio_set(sda);
64-
gpio_set(scl);
53+
i2c_free(&obj);
6554
}
6655

6756
void fpga_i2c_test_write(PinName sda, PinName scl)
@@ -149,6 +138,7 @@ void fpga_i2c_test_write(PinName sda, PinName scl)
149138
tester.reset();
150139
tester.pin_set_pull(sda, MbedTester::PullNone);
151140
tester.pin_set_pull(scl, MbedTester::PullNone);
141+
i2c_free(&i2c);
152142
}
153143

154144
void fpga_i2c_test_read(PinName sda, PinName scl)
@@ -235,6 +225,7 @@ void fpga_i2c_test_read(PinName sda, PinName scl)
235225
tester.reset();
236226
tester.pin_set_pull(sda, MbedTester::PullNone);
237227
tester.pin_set_pull(scl, MbedTester::PullNone);
228+
i2c_free(&i2c);
238229
}
239230

240231
void fpga_i2c_test_byte_write(PinName sda, PinName scl)
@@ -332,6 +323,7 @@ void fpga_i2c_test_byte_write(PinName sda, PinName scl)
332323
tester.reset();
333324
tester.pin_set_pull(sda, MbedTester::PullNone);
334325
tester.pin_set_pull(scl, MbedTester::PullNone);
326+
i2c_free(&i2c);
335327
}
336328

337329
void fpga_i2c_test_byte_read(PinName sda, PinName scl)
@@ -432,6 +424,7 @@ void fpga_i2c_test_byte_read(PinName sda, PinName scl)
432424
tester.reset();
433425
tester.pin_set_pull(sda, MbedTester::PullNone);
434426
tester.pin_set_pull(scl, MbedTester::PullNone);
427+
i2c_free(&i2c);
435428
}
436429

437430
Case cases[] = {

0 commit comments

Comments
 (0)