Revision 4c72a54c modules/NUCLEO-F103RB/module.h
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