@@ -32,9 +32,9 @@ using namespace utest::v1;
32
32
33
33
#include " MbedTester.h"
34
34
#include " pinmap.h"
35
+ #include " hal/explicit_pinmap.h"
35
36
#include " test_utils.h"
36
37
37
-
38
38
#define pwm_debug_printf (...)
39
39
40
40
typedef enum {
@@ -74,7 +74,7 @@ void pwm_init_free(PinName pin)
74
74
}
75
75
76
76
77
- void pwm_period_fill_test (PinName pin, uint32_t period_ms, uint32_t fill_prc, pwm_api_test_t api_test)
77
+ void pwm_period_fill_test (PinName pin, uint32_t period_ms, uint32_t fill_prc, pwm_api_test_t api_test, bool init_direct )
78
78
{
79
79
pwm_debug_printf (" PWM test on pin = %s (%i)\r\n " , pinmap_ff_default_pin_to_string (pin), pin);
80
80
pwm_debug_printf (" Testing period = %lu ms, duty-cycle = %lu %%\r\n " , period_ms, fill_prc);
@@ -86,7 +86,17 @@ void pwm_period_fill_test(PinName pin, uint32_t period_ms, uint32_t fill_prc, pw
86
86
87
87
pwmout_t pwm_out;
88
88
89
- pwmout_init (&pwm_out, pin);
89
+ if (init_direct) {
90
+ #if defined(EXPLICIT_PINMAP_READY)
91
+ const PinMap pinmap = get_pwm_pinmap (pin);
92
+ pwmout_init_direct (&pwm_out, &pinmap);
93
+ #else
94
+ // skip this test case if explicit pinmap is not supported
95
+ return ;
96
+ #endif
97
+ } else {
98
+ pwmout_init (&pwm_out, pin);
99
+ }
90
100
91
101
core_util_critical_section_enter ();
92
102
@@ -156,10 +166,10 @@ void pwm_period_fill_test(PinName pin, uint32_t period_ms, uint32_t fill_prc, pw
156
166
pwmout_free (&pwm_out);
157
167
}
158
168
159
- template <uint32_t period_ms, uint32_t fill_prc, pwm_api_test_t api_test>
169
+ template <uint32_t period_ms, uint32_t fill_prc, pwm_api_test_t api_test, bool init_direct >
160
170
void pwm_period_fill_test (PinName pin)
161
171
{
162
- pwm_period_fill_test (pin, period_ms, fill_prc, api_test);
172
+ pwm_period_fill_test (pin, period_ms, fill_prc, api_test, init_direct );
163
173
}
164
174
165
175
@@ -168,48 +178,49 @@ Case cases[] = {
168
178
Case (" PWM - init/free test" , all_ports<PWMPort, DefaultFormFactor, pwm_init_free>),
169
179
170
180
// This will be run for single pin
171
- Case (" PWM - period: 10 ms, fill: 10%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_WRITE> >),
172
-
173
- Case (" PWM - period: 10 ms, fill: 10%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_MS_WRITE> >),
174
- Case (" PWM - period: 10 ms, fill: 10%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_US_WRITE> >),
175
- Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH> >),
176
- Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH_MS> >),
177
- Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH_US> >),
178
-
179
- Case (" PWM - period: 10 ms, fill: 50%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_WRITE> >),
180
- Case (" PWM - period: 10 ms, fill: 50%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_MS_WRITE> >),
181
- Case (" PWM - period: 10 ms, fill: 50%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_US_WRITE> >),
182
- Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH> >),
183
- Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH_MS> >),
184
- Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH_US> >),
185
-
186
- Case (" PWM - period: 10 ms, fill: 90%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_WRITE> >),
187
- Case (" PWM - period: 10 ms, fill: 90%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_MS_WRITE> >),
188
- Case (" PWM - period: 10 ms, fill: 90%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_US_WRITE> >),
189
- Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH> >),
190
- Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH_MS> >),
191
- Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH_US> >),
192
-
193
- Case (" PWM - period: 50 ms, fill: 10%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_WRITE> >),
194
- Case (" PWM - period: 50 ms, fill: 10%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_MS_WRITE> >),
195
- Case (" PWM - period: 50 ms, fill: 10%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_US_WRITE> >),
196
- Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH> >),
197
- Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH_MS> >),
198
- Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH_US> >),
199
-
200
- Case (" PWM - period: 50 ms, fill: 50%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_WRITE> >),
201
- Case (" PWM - period: 50 ms, fill: 50%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_MS_WRITE> >),
202
- Case (" PWM - period: 50 ms, fill: 50%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_US_WRITE> >),
203
- Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH> >),
204
- Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH_MS> >),
205
- Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH_US> >),
206
-
207
- Case (" PWM - period: 50 ms, fill: 90%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_WRITE> >),
208
- Case (" PWM - period: 50 ms, fill: 90%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_MS_WRITE> >),
209
- Case (" PWM - period: 50 ms, fill: 90%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_US_WRITE> >),
210
- Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH> >),
211
- Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH_MS> >),
212
- Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH_US> >)
181
+ Case (" PWM - period: 10 ms, fill: 10%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_WRITE, false > >),
182
+ Case (" PWM (direct init) - period: 10 ms, fill: 10%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_WRITE, true > >),
183
+
184
+ Case (" PWM - period: 10 ms, fill: 10%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_MS_WRITE, false > >),
185
+ Case (" PWM - period: 10 ms, fill: 10%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_US_WRITE, false > >),
186
+ Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH, false > >),
187
+ Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH_MS, false > >),
188
+ Case (" PWM - period: 10 ms, fill: 10%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 10 , PERIOD_PULSEWIDTH_US, false > >),
189
+
190
+ Case (" PWM - period: 10 ms, fill: 50%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_WRITE, false > >),
191
+ Case (" PWM - period: 10 ms, fill: 50%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_MS_WRITE, false > >),
192
+ Case (" PWM - period: 10 ms, fill: 50%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_US_WRITE, false > >),
193
+ Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH, false > >),
194
+ Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH_MS, false > >),
195
+ Case (" PWM - period: 10 ms, fill: 50%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 50 , PERIOD_PULSEWIDTH_US, false > >),
196
+
197
+ Case (" PWM - period: 10 ms, fill: 90%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_WRITE, false > >),
198
+ Case (" PWM - period: 10 ms, fill: 90%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_MS_WRITE, false > >),
199
+ Case (" PWM - period: 10 ms, fill: 90%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_US_WRITE, false > >),
200
+ Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH, false > >),
201
+ Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH_MS, false > >),
202
+ Case (" PWM - period: 10 ms, fill: 90%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<10 , 90 , PERIOD_PULSEWIDTH_US, false > >),
203
+
204
+ Case (" PWM - period: 50 ms, fill: 10%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_WRITE, false > >),
205
+ Case (" PWM - period: 50 ms, fill: 10%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_MS_WRITE, false > >),
206
+ Case (" PWM - period: 50 ms, fill: 10%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_US_WRITE, false > >),
207
+ Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH, false > >),
208
+ Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH_MS, false > >),
209
+ Case (" PWM - period: 50 ms, fill: 10%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 10 , PERIOD_PULSEWIDTH_US, false > >),
210
+
211
+ Case (" PWM - period: 50 ms, fill: 50%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_WRITE, false > >),
212
+ Case (" PWM - period: 50 ms, fill: 50%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_MS_WRITE, false > >),
213
+ Case (" PWM - period: 50 ms, fill: 50%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_US_WRITE, false > >),
214
+ Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH, false > >),
215
+ Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH_MS, false > >),
216
+ Case (" PWM - period: 50 ms, fill: 50%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 50 , PERIOD_PULSEWIDTH_US, false > >),
217
+
218
+ Case (" PWM - period: 50 ms, fill: 90%, api: period/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_WRITE, false > >),
219
+ Case (" PWM - period: 50 ms, fill: 90%, api: period_ms/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_MS_WRITE, false > >),
220
+ Case (" PWM - period: 50 ms, fill: 90%, api: period_us/write" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_US_WRITE, false > >),
221
+ Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH, false > >),
222
+ Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width_ms" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH_MS, false > >),
223
+ Case (" PWM - period: 50 ms, fill: 90%, api: period/pulse_width_us" , one_peripheral<PWMPort, DefaultFormFactor, pwm_period_fill_test<50 , 90 , PERIOD_PULSEWIDTH_US, false > >)
213
224
};
214
225
215
226
utest::v1::status_t greentea_test_setup (const size_t number_of_cases)
0 commit comments