Revision 6b53f6bf os/core/src/aos_main.cpp
os/core/src/aos_main.cpp | ||
---|---|---|
29 | 29 |
/** |
30 | 30 |
* @brief Event mask to identify I/O events. |
31 | 31 |
*/ |
32 |
#define _IOEVENT_MASK EVENT_MASK(0)
|
|
32 |
#define IOEVENT_MASK EVENT_MASK(0)
|
|
33 | 33 |
|
34 | 34 |
/** |
35 | 35 |
* @brief Event mask to identify OS events. |
36 | 36 |
*/ |
37 |
#define _OSEVENT_MASK EVENT_MASK(1)
|
|
37 |
#define OSEVENT_MASK EVENT_MASK(1)
|
|
38 | 38 |
|
39 | 39 |
/** |
40 | 40 |
* @brief Listener object for I/O events. |
... | ... | |
75 | 75 |
*/ |
76 | 76 |
static inline void _unexpectedEventError(eventmask_t mask, eventflags_t flags) |
77 | 77 |
{ |
78 |
aosprintf("unexpected/unknown event recieved. mask: 0x%08X; flags: 0x%08X\n", mask, flags); |
|
78 |
#if (AMIROOS_CFG_DBG == true) |
|
79 |
aosprintf("unexpected/unknown event received. mask: 0x%08X; flags: 0x%08X\n", mask, flags); |
|
80 |
#else |
|
81 |
(void)mask; |
|
82 |
(void)flags; |
|
83 |
#endif |
|
79 | 84 |
return; |
80 | 85 |
} |
81 | 86 |
|
... | ... | |
136 | 141 |
#endif |
137 | 142 |
|
138 | 143 |
// AMiRo-OS and custom OS additions (if any) |
139 |
aosSysInit(&MODULE_HAL_EXT, |
|
140 |
&moduleHalExtConfig, |
|
141 |
&moduleSsspPd, |
|
142 |
&moduleSsspSync, |
|
143 |
MODULE_OS_IOEVENTFLAGS_SYSPD, |
|
144 |
MODULE_OS_IOEVENTFLAGS_SYSSYNC, |
|
145 |
moduleShellPrompt); |
|
144 |
#if (AMIROOS_CFG_SHELL_ENABLE == true) |
|
145 |
aosSysInit(moduleShellPrompt); |
|
146 |
#else |
|
147 |
aosSysInit(); |
|
148 |
#endif |
|
146 | 149 |
#ifdef MODULE_INIT_OS_EXTRA |
147 | 150 |
MODULE_INIT_OS_EXTRA(); |
148 | 151 |
#endif |
... | ... | |
172 | 175 |
#endif |
173 | 176 |
|
174 | 177 |
/* event associations */ |
175 |
chEvtRegisterMask(&aos.events.io.source, &_eventListenerIO, _IOEVENT_MASK);
|
|
176 |
chEvtRegisterMask(&aos.events.os.source, &_eventListenerOS, _OSEVENT_MASK);
|
|
178 |
chEvtRegisterMask(&aos.events.io, &_eventListenerIO, IOEVENT_MASK);
|
|
179 |
chEvtRegisterMask(&aos.events.os, &_eventListenerOS, OSEVENT_MASK);
|
|
177 | 180 |
|
178 | 181 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5) |
179 | 182 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5_ARGS) |
... | ... | |
199 | 202 |
aosShellChannelInit(&_stdshellchannel, (BaseAsynchronousChannel*)&MODULE_HAL_PROGIF); |
200 | 203 |
aosShellChannelInputEnable(&_stdshellchannel); |
201 | 204 |
aosShellChannelOutputEnable(&_stdshellchannel); |
202 |
aosShellStreamAddChannel(&aos.shell->stream, &_stdshellchannel);
|
|
205 |
aosShellStreamAddChannel(&aos.shell.stream, &_stdshellchannel);
|
|
203 | 206 |
#endif |
204 | 207 |
#endif |
205 | 208 |
|
... | ... | |
236 | 239 |
#endif |
237 | 240 |
#endif |
238 | 241 |
|
239 |
/* SSSP startup outro (end of startup stage 2) synchronization */
|
|
242 |
/* SSSP startup OS synchronization phase (end of startup stage 2) */
|
|
240 | 243 |
while ((eventmask = aosSysSsspStartupOsInitSyncCheck(&_eventListenerIO)) != 0) { |
241 | 244 |
/* |
242 | 245 |
* This code is executed if the received event was not about the SYS_SYNC control signal. |
... | ... | |
245 | 248 |
// unexpected IO events |
246 | 249 |
if (eventmask & _eventListenerIO.events) { |
247 | 250 |
eventflags = chEvtGetAndClearFlags(&_eventListenerIO); |
248 |
#ifdef MODULE_SSP_STARTUP_OUTRO_IO_EVENT
|
|
249 |
MODULE_SSP_STARTUP_OUTRO_IO_EVENT(eventmask, eventflags);
|
|
251 |
#ifdef MODULE_SSSP_STARTUP_OSINIT_OUTRO_IOEVENT_HOOK
|
|
252 |
MODULE_SSSP_STARTUP_OSINIT_OUTRO_IOEVENT_HOOK(eventmask, eventflags);
|
|
250 | 253 |
#else |
251 | 254 |
_unexpectedEventError(eventmask, eventflags); |
252 | 255 |
#endif |
... | ... | |
256 | 259 |
eventflags = chEvtGetAndClearFlags(&_eventListenerOS); |
257 | 260 |
_unexpectedEventError(eventmask, eventflags); |
258 | 261 |
} |
259 |
#if (AMIROOS_CFG_DBG == true) |
|
260 | 262 |
// unknown event (must never occur, thus disabled for release builds) |
261 | 263 |
else { |
262 |
eventflags = 0; |
|
263 | 264 |
_unexpectedEventError(eventmask, eventflags); |
264 | 265 |
} |
265 |
#endif |
|
266 | 266 |
} |
267 | 267 |
|
268 | 268 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8) |
... | ... | |
309 | 309 |
|
310 | 310 |
switch (eventmask) { |
311 | 311 |
// if this was an I/O event |
312 |
case _IOEVENT_MASK:
|
|
312 |
case IOEVENT_MASK: |
|
313 | 313 |
// evaluate flags |
314 | 314 |
eventflags = chEvtGetAndClearFlags(&_eventListenerIO); |
315 | 315 |
// PD event |
316 |
if (eventflags & MODULE_OS_IOEVENTFLAGS_SYSPD) {
|
|
316 |
if (eventflags & MODULE_SSSP_EVENTFLAGS_PD) {
|
|
317 | 317 |
shutdown = AOS_SHUTDOWN_PASSIVE; |
318 | 318 |
} |
319 | 319 |
// all other events |
... | ... | |
325 | 325 |
break; |
326 | 326 |
|
327 | 327 |
// if this was an OS event |
328 |
case _OSEVENT_MASK:
|
|
328 |
case OSEVENT_MASK: |
|
329 | 329 |
// evaluate flags |
330 | 330 |
eventflags = chEvtGetAndClearFlags(&_eventListenerOS); |
331 | 331 |
switch (eventflags) { |
Also available in: Unified diff