Revision 1e5f7648 os/core/src/aos_main.cpp
os/core/src/aos_main.cpp | ||
---|---|---|
111 | 111 |
static inline void _unexpectedEventError(const eventmask_t mask, const eventflags_t flags) |
112 | 112 |
{ |
113 | 113 |
#if (AMIROOS_CFG_DBG == true) |
114 |
aosprintf("unexpected/unknown event received. mask: 0x%08X; flags: 0x%08X\n", mask, flags); |
|
114 |
aosprintf("CTRL: unexpected/unknown event received. mask: 0x%08X; flags: 0x%08X\n", mask, flags);
|
|
115 | 115 |
#else |
116 | 116 |
(void)(mask); |
117 | 117 |
(void)(flags); |
... | ... | |
366 | 366 |
if (flags.wfe) { |
367 | 367 |
// wait for any event to occur |
368 | 368 |
aosDbgPrintf("WFE..."); |
369 |
eventmask = chEvtWaitAnyTimeout(ALL_EVENTS, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT));
|
|
369 |
eventmask = chEvtWaitAnyTimeout(ALL_EVENTS, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT));
|
|
370 | 370 |
aosDbgPrintf("\t0x%08X", eventmask); |
371 | 371 |
} else { |
372 | 372 |
aosDbgPrintf("WFE skipped"); |
... | ... | |
483 | 483 |
flags.wfe_next = false; |
484 | 484 |
#else |
485 | 485 |
// set the timeout timer |
486 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
486 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
487 | 487 |
// proceed |
488 | 488 |
stage = STAGE_3_3_WAITFORFIRSTID; |
489 | 489 |
#endif |
490 | 490 |
#else |
491 | 491 |
// set the timeout timer |
492 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
492 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
493 | 493 |
#endif |
494 | 494 |
} |
495 | 495 |
|
... | ... | |
515 | 515 |
flags.wfe_next = false; |
516 | 516 |
#else |
517 | 517 |
// set the timeout timer |
518 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
518 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
519 | 519 |
// proceed |
520 | 520 |
stage = STAGE_3_3_WAITFORFIRSTID; |
521 | 521 |
#endif |
... | ... | |
556 | 556 |
stage = STAGE_3_3_WAITFORID; |
557 | 557 |
#else |
558 | 558 |
// set the delay timer so the UP signal is activated later |
559 |
chVTSet(&timerDelay, TIME_US2I(AMIROOS_CFG_SSSP_SIGNALDELAY), _ssspTimerCallback, &eventSourceDelay);
|
|
559 |
chVTSet(&timerDelay, chTimeUS2I(AMIROOS_CFG_SSSP_SIGNALDELAY), _ssspTimerCallback, &eventSourceDelay);
|
|
560 | 560 |
#endif |
561 | 561 |
} |
562 | 562 |
|
... | ... | |
597 | 597 |
// store received ID |
598 | 598 |
lastid = _deserialize(canRxFrame.data8, 4); |
599 | 599 |
// restart timeout timer |
600 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
600 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
601 | 601 |
// proceed |
602 | 602 |
stage = STAGE_3_3_WAITFORIDORSIG; |
603 | 603 |
} else { |
... | ... | |
633 | 633 |
// store received ID |
634 | 634 |
lastid = _deserialize(canRxFrame.data8, 4); |
635 | 635 |
// restart timeout timer |
636 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
636 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
637 | 637 |
} else { |
638 | 638 |
aosDbgPrintf("ERR: invalid ID\n"); |
639 | 639 |
// abort |
... | ... | |
664 | 664 |
break; |
665 | 665 |
} |
666 | 666 |
// set delay timer |
667 |
chVTSet(&timerDelay, TIME_US2I(AMIROOS_CFG_SSSP_SIGNALDELAY), _ssspTimerCallback, &eventSourceDelay);
|
|
667 |
chVTSet(&timerDelay, chTimeUS2I(AMIROOS_CFG_SSSP_SIGNALDELAY), _ssspTimerCallback, &eventSourceDelay);
|
|
668 | 668 |
} |
669 | 669 |
|
670 | 670 |
// if a delay event occurred |
... | ... | |
678 | 678 |
aosDbgPrintf("S-\n"); |
679 | 679 |
apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF); |
680 | 680 |
// reset the timeout timer |
681 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
681 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
682 | 682 |
chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE); |
683 | 683 |
eventmask &= ~(eventListenerTimeout.events); |
684 | 684 |
// proceed |
... | ... | |
707 | 707 |
aosDbgPrintf("ID (%u)\n", lastid); |
708 | 708 |
#endif |
709 | 709 |
// restart timeout timer |
710 |
chVTSet(&timerTimeout, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
710 |
chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
|
|
711 | 711 |
chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE); |
712 | 712 |
eventmask &= ~(eventListenerTimeout.events); |
713 | 713 |
} |
... | ... | |
728 | 728 |
chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE); |
729 | 729 |
eventmask &= ~(eventListenerTimeout.events); |
730 | 730 |
//set the delay timer |
731 |
chVTSet(&timerDelay, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceDelay);
|
|
731 |
chVTSet(&timerDelay, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceDelay);
|
|
732 | 732 |
} |
733 | 733 |
|
734 | 734 |
// if a CAN event was received |
... | ... | |
809 | 809 |
|
810 | 810 |
// apply wfe value for next iteration |
811 | 811 |
flags.wfe = flags.wfe_next; |
812 |
} |
|
812 |
} /* end of FSM loop */
|
|
813 | 813 |
aosDbgPrintf("\n"); |
814 | 814 |
|
815 | 815 |
// unregister all events (timeout, delay, CAN receive) |
... | ... | |
919 | 919 |
#endif |
920 | 920 |
|
921 | 921 |
/* event associations */ |
922 |
chEvtRegisterMask(&aos.events.io, &_eventListenerIO, IOEVENT_MASK); |
|
922 |
#if (AMIROOS_CFG_SSSP_STACK_START == true) && (AMIROOS_CFG_SSSP_STACK_END == true) |
|
923 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC); |
|
924 |
#elif (AMIROOS_CFG_SSSP_STACK_START == true) |
|
925 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC | MODULE_SSSP_EVENTFLAGS_UP); |
|
926 |
#elif (AMIROOS_CFG_SSSP_STACK_END == true) |
|
927 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC | MODULE_SSSP_EVENTFLAGS_DN); |
|
928 |
#else |
|
929 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC | MODULE_SSSP_EVENTFLAGS_DN | MODULE_SSSP_EVENTFLAGS_UP); |
|
930 |
#endif |
|
923 | 931 |
chEvtRegisterMask(&aos.events.os, &_eventListenerOS, OSEVENT_MASK); |
924 | 932 |
|
925 | 933 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5) |
... | ... | |
1057 | 1065 |
|
1058 | 1066 |
aosDbgPrintf("receiving current date/time...\t"); |
1059 | 1067 |
// receive message |
1060 |
if (canReceiveTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, TIME_US2I(AOS_SYSTEM_SSSP_TIMEOUT)) == MSG_OK) {
|
|
1068 |
if (canReceiveTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT)) == MSG_OK) {
|
|
1061 | 1069 |
// validate message |
1062 | 1070 |
if (frame.DLC == 8 && |
1063 | 1071 |
frame.RTR == CAN_RTR_DATA && |
... | ... | |
1111 | 1119 |
while (shutdown == AOS_SHUTDOWN_NONE) { |
1112 | 1120 |
// wait for an event |
1113 | 1121 |
#if (AMIROOS_CFG_MAIN_LOOP_TIMEOUT != 0) |
1114 |
eventmask = chEvtWaitOneTimeout(ALL_EVENTS, TIME_US2I(AMIROOS_CFG_MAIN_LOOP_TIMEOUT));
|
|
1122 |
eventmask = chEvtWaitOneTimeout(ALL_EVENTS, chTimeUS2I(AMIROOS_CFG_MAIN_LOOP_TIMEOUT));
|
|
1115 | 1123 |
#else |
1116 | 1124 |
eventmask = chEvtWaitOne(ALL_EVENTS); |
1117 | 1125 |
#endif |
... | ... | |
1243 | 1251 |
#endif |
1244 | 1252 |
|
1245 | 1253 |
// finally hand over to bootloader |
1246 |
aosSysShutdownFinal(&moduleIntDriver, shutdown);
|
|
1254 |
aosSysShutdownFinal(shutdown); |
|
1247 | 1255 |
|
1248 | 1256 |
/* |
1249 | 1257 |
* ########################################################################## |
Also available in: Unified diff