Statistics
| Branch: | Tag: | Revision:

amiro-os / modules / RT-STM32L476RG-NUCLEO64 / module.h @ 1678f270

History | View | Annotate | Download (7.658 KB)

1 27d0378b Simon Welzel
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3
Copyright (C) 2016..2018  Thomas Schöpping et al.
4

5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9

10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
GNU General Public License for more details.
14

15
You should have received a copy of the GNU General Public License
16
along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
/**
20
 * @file
21
 * @brief   Structures and constant for the PowerManagement module.
22
 *
23
 * @addtogroup powermanagement_module
24
 * @{
25
 */
26
27
#ifndef _AMIROOS_MODULE_H_
28
#define _AMIROOS_MODULE_H_
29
30
/*===========================================================================*/
31
/**
32
 * @name Module specific functions
33
 * @{
34
 */
35
/*===========================================================================*/
36
37
/*
38
 * @brief Makro to store data in the core coupled memory (ccm).
39
 *        Example:
40
 *        int compute_buffer[128] CCM_RAM;
41
 *
42
 * @note The ccm is not connected to any bus system.
43
 */
44 75ab9f8b Simon Welzel
#define CCM_RAM                                 __attribute__((section(".ram4"), aligned(4)))moduleHalCanConfig
45 27d0378b Simon Welzel
46
/*
47
 * @brief Makro to store data in the ethernet memory (eth).
48
 *        Example:
49
 *        int dma_buffer[128] ETH_RAM;
50
 *
51
 * @note The eth is a dedicated memory block with its own DMA controller.
52
 */
53
#define ETH_RAM                                 __attribute__((section(".ram2"), aligned(4)))
54
55
/*
56
 * @brief Makro to store data in the backup memory (bckp).
57
 *        Example:
58
 *        int backup_buffer[128] BCKP_RAM;
59
 *
60
 * @note The eth is a dedicated memory block with its own DMA controller.
61
 */
62
#define BCKP_RAM                                __attribute__((section(".ram5"), aligned(4)))
63
64
/** @} */
65
66
/*===========================================================================*/
67
/**
68
 * @name ChibiOS/HAL configuration
69
 * @{
70
 */
71
/*===========================================================================*/
72
#include <hal.h>
73
74
/**
75
 * @brief   CAN driver to use.
76
 */
77
#define MODULE_HAL_CAN                          CAND1
78
79
/**
80
 * @brief   Configuration for the CAN driver.
81
 */
82
extern CANConfig moduleHalCanConfig;
83
84
/**
85
 * @brief   Serial driver of the programmer interface.
86
 */
87
#define MODULE_HAL_PROGIF                       SD2
88
89
/**
90 1678f270 Simon Welzel
 * @brief   I2C driver to access multiplexer, proximity sensors 5 to 8, power monitors for VSYS4.2, VIO 5.0 and VDD, EEPROM, touch sensor, and fuel gauge (front battery).
91
 */
92
#define MODULE_HAL_I2C_MPU6050 I2CD3
93
94
/**
95
 * @brief   Configuration for the multiplexer, proximity sensors 1 to 4, power monitors for VIO1.8 and VIO 3.3, and fuel gauge (rear battery) I2C driver.
96
 */
97
extern I2CConfig moduleHalI2cMpu6050Config;
98
99
/**
100 27d0378b Simon Welzel
 * @brief   Configuration for the programmer serial interface driver.
101
 */
102
extern SerialConfig moduleHalProgIfConfig;
103
104
/**
105
 * @brief   Real-Time Clock driver.
106
 */
107
#define MODULE_HAL_RTC                          RTCD1
108
109
/** @} */
110
111 75ab9f8b Simon Welzel
/**
112
 * @brief   Periphery communication interfaces initialization hook.
113
 */
114
#define MODULE_INIT_PERIPHERY_COMM() {                                        \
115
  /* serial driver */                                                         \
116
  sdStart(&MODULE_HAL_PROGIF, &moduleHalProgIfConfig);                        \
117
}
118
119 27d0378b Simon Welzel
/*===========================================================================*/
120
/**
121
 * @name GPIO definitions
122
 * @{
123
 */
124
/*===========================================================================*/
125
#include <amiro-lld.h>
126
127
/**
128
 * @brief   SYS_REG_EN output signal GPIO.
129
 */
130
extern ROMCONST apalControlGpio_t moduleGpioSysRegEn;
131
132
/**
133
 * @brief   IR_INT1 input signal GPIO.
134
 */
135
extern ROMCONST apalControlGpio_t moduleGpioIrInt1;
136
137
/**
138
 * @brief   POWER_EN output signal GPIO.
139
 */
140
extern ROMCONST apalControlGpio_t moduleGpioPowerEn;
141
142
/**
143
 * @brief   SYS_UART_DN bidirectional signal GPIO.
144
 */
145
extern ROMCONST apalControlGpio_t moduleGpioSysUartDn;
146
147
/**
148
 * @brief   LED output signal GPIO.
149
 */
150
extern ROMCONST apalControlGpio_t moduleGpioLed;
151
152
/**
153
 * @brief   SYS_UART_UP bidirectional signal GPIO.
154
 */
155
extern ROMCONST apalControlGpio_t moduleGpioSysUartUp;
156
157
/**
158
 * @brief   IR_INT2 input signal GPIO.
159
 */
160
extern ROMCONST apalControlGpio_t moduleGpioIrInt2;
161
162
/**
163
 * @brief   TOUCH_INT input signal GPIO.
164
 */
165
extern ROMCONST apalControlGpio_t moduleGpioTouchInt;
166
167
/**
168
 * @brief   SYS_DONE input signal GPIO.
169
 */
170
extern ROMCONST apalControlGpio_t moduleGpioSysDone;
171
172
/**
173
 * @brief   SYS_PROG output signal GPIO.
174
 */
175
extern ROMCONST apalControlGpio_t moduleGpioSysProg;
176
177
/**
178
 * @brief   PATH_DC input signal GPIO.
179
 */
180
extern ROMCONST apalControlGpio_t moduleGpioPathDc;
181
182
/**
183
 * @brief   SYS_SPI_DIR bidirectional signal GPIO.
184
 */
185
extern ROMCONST apalControlGpio_t moduleGpioSysSpiDir;
186
187
/**
188
 * @brief   SYS_SYNC bidirectional signal GPIO.
189
 */
190
extern ROMCONST apalControlGpio_t moduleGpioSysSync;
191
192
/**
193
 * @brief   SYS_PD bidirectional signal GPIO.
194
 */
195
extern ROMCONST apalControlGpio_t moduleGpioSysPd;
196
197
/**
198
 * @brief   SYS_WARMRST bidirectional signal GPIO.
199
 */
200
extern ROMCONST apalControlGpio_t moduleGpioSysWarmrst;
201
202
/**
203
 * @brief   BT_RST output signal GPIO.
204
 */
205
extern ROMCONST apalControlGpio_t moduleGpioBtRst;
206
207
208
/** @} */
209
210 1678f270 Simon Welzel
211 27d0378b Simon Welzel
/*===========================================================================*/
212
/**
213
 * @name AMiRo-OS core configurations
214
 * @{
215
 */
216
/*===========================================================================*/
217
218
/**
219
 * @brief   Event flag to be set on a IR_INT1 / CHARGE_STAT1A interrupt.
220
 */
221
#define MODULE_OS_IOEVENTFLAGS_IRINT1           ((eventflags_t)1 << GPIOB_IR_INT1_N)
222
223
224
/**
225
 * @brief   Event flag to be set on a SYS_UART_DN interrupt.
226
 */
227
#define MODULE_OS_IOEVENTFLAGS_SYSUARTDN        ((eventflags_t)1 << GPIOB_SYS_UART_DN)
228
229
230
/**
231
 * @brief   Event flag to be set on a TOUCH_INT interrupt.
232
 */
233
#define MODULE_OS_IOEVENTFLAGS_TOUCHINT         ((eventflags_t)1 << GPIOC_TOUCH_INT_N)
234
235
236
/**
237
 * @brief   Event flag to be set on a PATH_DC interrupt.
238
 */
239
#define MODULE_OS_IOEVENTFLAGS_PATHDC           ((eventflags_t)1 << GPIOC_PATH_DC)
240
241
/**
242
 * @brief   Event flag to be set on a SYS_SPI_DIR interrupt.
243
 */
244
#define MODULE_OS_IOEVENTFLAGS_SYSSPIDIR        ((eventflags_t)1 << GPIOC_SYS_SPI_DIR)
245
246
/**
247
 * @brief   Event flag to be set on a SYS_SYNC interrupt.
248
 */
249 1ef74af5 Simon Welzel
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          ((eventflags_t)1 << GPIOC_SYS_INT_N)
250 27d0378b Simon Welzel
251
/**
252
 * @brief   Event flag to be set on a SYS_PD interrupt.
253
 */
254
#define MODULE_OS_IOEVENTFLAGS_SYSPD            ((eventflags_t)1 << GPIOC_SYS_PD_N)
255
256
/**
257
 * @brief   Event flag to be set on a SYS_WARMRST interrupt.
258
 */
259
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       ((eventflags_t)1 << GPIOC_SYS_WARMRST_N)
260
261
/**
262
 * @brief   Event flag to be set on a SYS_UART_UP interrupt.
263
 */
264
#define MODULE_OS_IOEVENTFLAGS_SYSUARTUP        ((eventflags_t)1 << GPIOB_SYS_UART_UP)
265
266
#if (AMIROOS_CFG_SHELL_ENABLE == true) || defined(__DOXYGEN__)
267
/**
268
 * @brief   Shell prompt text.
269
 */
270
extern ROMCONST char* moduleShellPrompt;
271
#endif
272
273 1678f270 Simon Welzel
/**
274
 * @brief   Unit test initialization hook.
275
 */
276
#define MODULE_INIT_TESTS() {                                                 \
277
  /* add unit-test shell commands */                                          \
278
  aosShellAddCommand(&aos.shell, &moduleUtAlldMpu6050.shellcmd);              \
279
}
280
281
#include <alld_mpu6050.h>
282
283
/**
284
 * @brief   Accelerometer (MPU6050) driver.
285
 */
286
extern MPU6050Driver moduleLldMpu6050;
287
288
#include <ut_alld_mpu6050.h>
289
290
/**
291
 * @brief   MPU6050 unit test object.
292
 */
293
extern aos_unittest_t moduleUtAlldMpu6050;
294
295 27d0378b Simon Welzel
#endif /* _AMIROOS_MODULE_H_ */
296
297
/** @} */