Revision 4c72a54c modules/NUCLEO-F103RB/module.h

View differences:

modules/NUCLEO-F103RB/module.h
36 36
 */
37 37
/*===========================================================================*/
38 38

  
39
#if defined(AMIROLLD_CFG_DW1000)
39
#if (BOARD_DW1000_CONNECTED == true)
40 40

  
41 41
#if defined(__cplusplus)
42 42
extern "C" {
......
48 48
}
49 49
#endif /* defined(__cplusplus) */
50 50

  
51
#endif /* defined(AMIROLLD_CFG_DW1000) */
51
#endif /* (BOARD_DW1000_CONNECTED == true) */
52 52

  
53 53

  
54 54
/** @} */
......
75 75
 */
76 76
#define MODULE_HAL_RTC                          RTCD1
77 77

  
78

  
79
#if defined(AMIROLLD_CFG_DW1000)
78
#if (BOARD_DW1000_CONNECTED == true)
80 79

  
81 80
/**
82 81
 * @brief   SPI interface driver for the motion sensors (gyroscope and accelerometer).
83 82
 */
84 83
#define MODULE_HAL_SPI_UWB                      SPID2
85 84

  
86

  
87 85
/**
88 86
 * @brief   Configuration for the SPI interface driver to communicate with the LED driver.
89 87
 */
......
94 92
 */
95 93
extern SPIConfig moduleHalSpiUwbLsConfig;
96 94

  
97
#endif /* defined(AMIROLLD_CFG_DW1000) */
95
#endif /* (BOARD_DW1000_CONNECTED == true) */
98 96

  
99 97
/** @} */
100 98

  
101

  
102 99
/*===========================================================================*/
103 100
/**
104 101
 * @name GPIO definitions
......
111 108
 */
112 109
extern ROMCONST apalControlGpio_t moduleGpioLed;
113 110

  
114
#if defined(AMIROLLD_CFG_DW1000)
111
#if (BOARD_DW1000_CONNECTED == true)
112

  
115 113
/**
116 114
 * @brief   DW1000 reset output signal
117 115
 * @note    the reset pin should be drived as low by MCU to activate.
......
130 128
 */
131 129
extern ROMCONST apalControlGpio_t moduleGpioSpiChipSelect ;
132 130

  
133
#endif /* defined(AMIROLLD_CFG_DW1000) */
131
#endif /* (BOARD_DW1000_CONNECTED == true) */
134 132

  
135 133
/**
136 134
 * @brief   User button input signal.
......
146 144
 */
147 145
/*===========================================================================*/
148 146

  
147
#if (BOARD_DW1000_CONNECTED == true)
148

  
149 149
/**
150 150
 * @brief   Event flag to be call dwt_isr() interrupt.
151 151
 */
152 152
#define MODULE_OS_IOEVENTFLAGS_DW1000_IRQn      AOS_IOEVENT_FLAG(PAL_PAD(LINE_ARD_D6))
153 153

  
154
#endif /* (BOARD_DW1000_CONNECTED == true) */
155

  
154 156
/**
155 157
 * @brief   Event flag to be set on a USER_BUTTON interrupt.
156 158
 */
157 159
#define MODULE_OS_IOEVENTFLAGS_USERBUTTON       AOS_IOEVENT_FLAG(PAL_PAD(LINE_BUTTON))
158 160

  
159

  
160 161
#if (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
161 162
/**
162 163
 * @brief   Shell prompt text.
......
174 175
  palEnableLineEvent(moduleGpioUserButton.gpio->line, APAL2CH_EDGE(moduleGpioUserButton.meta.edge));                \
175 176
  MODULE_INIT_INTERRUPTS_DW1000();                                            \
176 177
}
177
#if defined(AMIROLLD_CFG_DW1000)
178
#if (BOARD_DW1000_CONNECTED == true)
178 179
  #define MODULE_INIT_INTERRUPTS_DW1000() {                                   \
179 180
    palSetLineCallback(moduleGpioDw1000Irqn.gpio->line, aosSysGetStdIntCallback(), &moduleGpioDw1000Irqn.gpio->line); \
180 181
    palEnableLineEvent(moduleGpioDw1000Irqn.gpio->line, APAL2CH_EDGE(moduleGpioDw1000Irqn.meta.edge));                \
181 182
  }
182
#else /* defined(AMIROLLD_CFG_DW1000) */
183
#else /* (BOARD_DW1000_CONNECTED == true) */
183 184
  #define MODULE_INIT_INTERRUPTS_DW1000() {                                   \
184 185
  }
185
#endif /* defined(AMIROLLD_CFG_DW1000) */
186
#endif /* (BOARD_DW1000_CONNECTED == true) */
186 187

  
187 188

  
188 189
/**
189
 * @brief   Unit test initialization hook.
190
 * @brief   Test initialization hook.
190 191
 */
191 192
#define MODULE_INIT_TESTS() {                                                 \
192
  /* add unit-test shell commands */                                          \
193
  /* initialize tests and add to shell */                                     \
194
  aosShellAddCommand(&aos.shell, &moduleTestLedShellCmd);                     \
195
  aosShellAddCommand(&aos.shell, &moduleTestButtonShellCmd);                  \
193 196
  MODULE_INIT_TESTS_DW1000();                                                 \
197
  aosShellAddCommand(&aos.shell, &moduleTestAllShellCmd);                     \
194 198
}
195
#if defined(AMIROLLD_CFG_DW1000)
199
#if (BOARD_DW1000_CONNECTED == true)
196 200
  #define MODULE_INIT_TESTS_DW1000() {                                        \
197
    aosShellAddCommand(&aos.shell, &moduleUtAlldDw1000.shellcmd);             \
201
    aosShellAddCommand(&aos.shell, &moduleTestDw1000ShellCmd);                \
198 202
  }
199
#else /* defined(AMIROLLD_CFG_DW1000) */
203
#else /* (BOARD_DW1000_CONNECTED == true) */
200 204
  #define MODULE_INIT_TESTS_DW1000() {                                        \
201 205
  }
202
#endif /* defined(AMIROLLD_CFG_DW1000) */
206
#endif /* (BOARD_DW1000_CONNECTED == true) */
203 207

  
204 208

  
205 209
/**
206 210
 * @brief   Periphery communication interfaces initialization hook.
207 211
 */
208
#define MODULE_INIT_PERIPHERY_COMM() {                                        \
212
#define MODULE_INIT_PERIPHERY_IF() {                                          \
209 213
  /* serial driver */                                                         \
210 214
  sdStart(&MODULE_HAL_PROGIF, &moduleHalProgIfConfig);                        \
211
  MODULE_INIT_PERIPHERY_COMM_DW1000();                                        \
215
  MODULE_INIT_PERIPHERY_IF_DW1000();                                          \
212 216
}
213
#if defined(AMIROLLD_CFG_DW1000)
214
  #define MODULE_INIT_PERIPHERY_COMM_DW1000() {                               \
217
#if (BOARD_DW1000_CONNECTED == true)
218
  #define MODULE_INIT_PERIPHERY_IF_DW1000() {                                 \
215 219
    /* SPI init */                                                            \
216 220
    dw1000_spi_init();                                                        \
217 221
    spiStart(&MODULE_HAL_SPI_UWB, &moduleHalSpiUwbLsConfig);                  \
218 222
  }
219
#else /* defined(AMIROLLD_CFG_DW1000) */
220
  #define MODULE_INIT_PERIPHERY_COMM_DW1000() {                               \
223
#else /* (BOARD_DW1000_CONNECTED == true) */
224
  #define MODULE_INIT_PERIPHERY_IF_DW1000() {                                 \
221 225
  }
222
#endif /* defined(AMIROLLD_CFG_DW1000) */
226
#endif /* (BOARD_DW1000_CONNECTED == true) */
223 227

  
224 228

  
225 229
/**
226 230
 * @brief   Periphery communication interface deinitialization hook.
227 231
 */
228
#define MODULE_SHUTDOWN_PERIPHERY_COMM() {                                    \
229
  MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000();                                    \
232
#define MODULE_SHUTDOWN_PERIPHERY_IF() {                                      \
233
  MODULE_SHUTDOWN_PERIPHERY_IF_DW1000();                                      \
230 234
}
231
#if defined(AMIROLLD_CFG_DW1000)
232
#define MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000() {                             \
235
#if (BOARD_DW1000_CONNECTED == true)
236
#define MODULE_SHUTDOWN_PERIPHERY_IF_DW1000() {                               \
233 237
  /* SPI */                                                                   \
234 238
  spiStop(&MODULE_HAL_SPI_UWB);                                               \
235 239
}
236
#else /* defined(AMIROLLD_CFG_DW1000) */
237
  #define MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000() {                           \
240
#else /* (BOARD_DW1000_CONNECTED == true) */
241
  #define MODULE_SHUTDOWN_PERIPHERY_IF_DW1000() {                             \
238 242
  }
239
#endif /* defined(AMIROLLD_CFG_DW1000) */
243
#endif /* (BOARD_DW1000_CONNECTED == true) */
240 244

  
241 245
/**
242
 * @brief   HOOK to call process_deca_irq() func when the dw1000 interrupt pin is activated.
246
 * @brief   HOOK to toggle the LEDs when the user button is pressed.
243 247
 */
244 248
#define MODULE_MAIN_LOOP_IO_EVENT(eventflags) {                               \
245 249
  if (eventflags & MODULE_OS_IOEVENTFLAGS_USERBUTTON) {                       \
......
249 253
  }                                                                           \
250 254
  MODULE_MAIN_LOOP_IO_EVENT_DW1000();                                         \
251 255
}
252
#if defined(AMIROLLD_CFG_DW1000)
256
#if (BOARD_DW1000_CONNECTED == true)
257
  /**
258
   * @brief   HOOK to call process_deca_irq() func when the dw1000 interrupt pin is activated.
259
   */
253 260
  #define MODULE_MAIN_LOOP_IO_EVENT_DW1000() {                                \
254 261
    if(eventflags & MODULE_OS_IOEVENTFLAGS_DW1000_IRQn) {                     \
255 262
      /*apalGpioToggle(moduleGpioLedGreen.gpio); // just for debug  */        \
256 263
      process_deca_irq();                                                     \
257 264
    }                                                                         \
258 265
  }
259
#else /* defined(AMIROLLD_CFG_DW1000) */
266
#else /* (BOARD_DW1000_CONNECTED == true) */
260 267
  #define MODULE_MAIN_LOOP_IO_EVENT_DW1000() {                                \
261 268
  }
262
#endif /* defined(AMIROLLD_CFG_DW1000) */
269
#endif /* (BOARD_DW1000_CONNECTED == true) */
263 270

  
264 271
/** @} */
265 272

  
......
278 285
 * @{
279 286
 */
280 287
/*===========================================================================*/
281
#if defined(AMIROLLD_CFG_DW1000)
288
#include <alld_LED.h>
289
#include <alld_button.h>
290

  
291
/**
292
 * @brief   LED driver.
293
 */
294
extern LEDDriver moduleLldLed;
295

  
296
/**
297
 * @brief   Button driver.
298
 */
299
extern ButtonDriver moduleLldUserButton;
300

  
301
#if (BOARD_DW1000_CONNECTED == true)
302

  
282 303
#include <alld_DW1000.h>
283 304

  
284 305
extern DW1000Driver moduleLldDw1000;
285 306

  
286
#endif /* defined(AMIROLLD_CFG_DW1000) */
307
#endif /* (BOARD_DW1000_CONNECTED == true) */
287 308

  
288 309
/** @} */
289 310

  
290 311
/*===========================================================================*/
291 312
/**
292
 * @name Unit tests (UT)
313
 * @name Tests
293 314
 * @{
294 315
 */
295 316
/*===========================================================================*/
296 317
#if (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
297 318

  
298
#if defined(AMIROLLD_CFG_DW1000) && (AMIROLLD_CFG_DW1000 == 1)
299
#include <ut_alld_DW1000_v1.h>
319
/**
320
 * @brief   LED test command.
321
 */
322
extern aos_shellcommand_t moduleTestLedShellCmd;
323

  
324
/**
325
 * @brief   User button test command.
326
 */
327
extern aos_shellcommand_t moduleTestButtonShellCmd;
328

  
329
#if (BOARD_DW1000_CONNECTED == true)
300 330

  
301 331
/**
302
 * @brief   DW1000 unit test object.
332
 * @brief   DW1000 (UWB transmitter) test command.
303 333
 */
304
extern aos_unittest_t moduleUtAlldDw1000;
334
extern aos_shellcommand_t moduleTestDw1000ShellCmd;
305 335

  
306
#endif /* defined(AMIROLLD_CFG_DW1000) && (AMIROLLD_CFG_DW1000 == 1) */
336
#endif /* (BOARD_DW1000_CONNECTED == true) */
337

  
338
/**
339
 * @brief   Entire module test command.
340
 */
341
extern aos_shellcommand_t moduleTestAllShellCmd;
307 342

  
308 343
#endif /* (AMIROOS_CFG_TESTS_ENABLE == true) */
309 344

  

Also available in: Unified diff