Revision 7de0cc90 core/src/aos_main.cpp

View differences:

core/src/aos_main.cpp
33 33
 */
34 34
#if defined(AMIROOS_CFG_MAIN_EXTRA_INCLUDE_HEADER)
35 35
#include AMIROOS_CFG_MAIN_EXTRA_INCLUDE_HEADER
36
#endif
36
#endif /* defined(AMIROOS_CFG_MAIN_EXTRA_INCLUDE_HEADER) */
37 37

  
38 38
/******************************************************************************/
39 39
/* LOCAL DEFINITIONS                                                          */
......
81 81
 */
82 82
#define SSSP_STACKINIT_CANMSGID_ABORT           0x001
83 83

  
84
#else /* AMIROOS_CFG_SSSP_ENABLE == false */
84
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
85 85

  
86 86
/**
87 87
 * @brief   Default shutdown mode if SSSP is unavailable.
88 88
 */
89 89
#define AOS_SHUTDOWN_DEFAULT                    AOS_SHUTDOWN_DEEPSLEEP
90 90

  
91
#endif /* AMIROOS_CFG_SSSP_ENABLE */
91
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
92 92

  
93 93
/**
94 94
 * @brief   CAN message identifier for calender synchronization message.
......
136 136
 */
137 137
#if defined(AMIROOS_CFG_MAIN_EXTRA_STATIC_VARIABLES)
138 138
AMIROOS_CFG_MAIN_EXTRA_STATIC_VARIABLES
139
#endif
139
#endif /* defined(AMIROOS_CFG_MAIN_EXTRA_STATIC_VARIABLES) */
140 140

  
141 141
/******************************************************************************/
142 142
/* LOCAL FUNCTIONS                                                            */
......
152 152
{
153 153
#if (AMIROOS_CFG_DBG == true)
154 154
  aosprintf("CTRL: unexpected/unknown event received. mask: 0x%08X; flags: 0x%08X\n", mask, flags);
155
#else
155
#else /* (AMIROOS_CFG_DBG == true) */
156 156
  (void)(mask);
157 157
  (void)(flags);
158
#endif
158
#endif /* (AMIROOS_CFG_DBG == true) */
159 159
  return;
160 160
}
161 161

  
......
175 175

  
176 176
  return;
177 177
}
178
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
178
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
179 179

  
180 180
/**
181 181
 * @brief   Helper function to serialize data.
......
276 276
  return;
277 277
}
278 278

  
279
#endif /* HAL_USE_RTC == TRUE */
279
#endif /* (HAL_USE_RTC == TRUE) */
280 280

  
281 281
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
282 282
/**
......
325 325
  CANRxFrame canRxFrame;
326 326
#if (AMIROOS_CFG_SSSP_STACK_START != true) || (AMIROOS_CFG_DBG == true)
327 327
  aos_ssspmoduleid_t lastid = 0;
328
#endif
328
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) || (AMIROOS_CFG_DBG == true) */
329 329
  flags_t flags;
330 330
  aos_timestamp_t uptime;
331 331

  
......
405 405
        aosDbgPrintf(">>> 3-4 (abort)\n");
406 406
        break;
407 407
    }
408
#endif
408
#endif /* (AMIROOS_CFG_DBG == true) */
409 409

  
410 410
    // reset wfe flag for the next iteration
411 411
    flags.wfe_next = true;
......
446 446
#if (AMIROOS_CFG_SSSP_STACK_END != true)
447 447
        aosDbgPrintf("disabling UP\n");
448 448
        apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_OFF);
449
#endif
449
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
450 450
        // set shutdown flag and exit the loop
451 451
        shutdown = AOS_SHUTDOWN_PASSIVE;
452 452
        break;
......
474 474
      // get the flags
475 475
      eventflags_t oseventflags = chEvtGetAndClearFlags(&_eventListenerOS);
476 476
      // there should be no OS events at this point
477
#ifdef MODULE_SSSP_STARTUP_3_OSEVENT_HOOK
477
#if defined(MODULE_SSSP_STARTUP_3_OSEVENT_HOOK)
478 478
      MODULE_SSSP_STARTUP_3_OSEVENT_HOOK(eventmask, eventflags);
479
#else
479
#else /* defined(MODULE_SSSP_STARTUP_3_OSEVENT_HOOK) */
480 480
      _unexpectedEventError(eventmask, oseventflags);
481
#endif
481
#endif /* defined(MODULE_SSSP_STARTUP_3_OSEVENT_HOOK) */
482 482
    }
483 483
    // if a CAN event occurred
484 484
    if ((eventmask & eventListenerCan.events)) {
......
536 536
          // proceed immediately
537 537
          stage = STAGE_3_2;
538 538
          flags.wfe_next = false;
539
#else
539
#else /* (AMIROOS_CFG_SSSP_STACK_START == true) */
540 540
          // set the timeout timer
541 541
          chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
542 542
          // proceed
543 543
          stage = STAGE_3_3_WAITFORFIRSTID;
544
#endif
545
#else
544
#endif /* (AMIROOS_CFG_SSSP_STACK_START == true) */
545
#else /* (AMIROOS_CFG_SSSP_MASTER == true) */
546 546
          // set the timeout timer
547 547
          chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
548
#endif
548
#endif /* (AMIROOS_CFG_SSSP_MASTER == true) */
549 549
        }
550 550

  
551 551
#if (AMIROOS_CFG_SSSP_MASTER != true)
......
568 568
            // proceed
569 569
            stage = STAGE_3_2;
570 570
            flags.wfe_next = false;
571
#else
571
#else /* (AMIROOS_CFG_SSSP_STACK_START == true) */
572 572
            // set the timeout timer
573 573
            chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
574 574
            // proceed
575 575
            stage = STAGE_3_3_WAITFORFIRSTID;
576
#endif
576
#endif /* (AMIROOS_CFG_SSSP_STACK_START == true) */
577 577
          }
578 578
        }
579
#endif
579
#endif /* (AMIROOS_CFG_SSSP_MASTER != true) */
580 580

  
581 581
        break;
582 582
      } /* end of STAGE_3_1 */
......
599 599
            chEvtBroadcast(&eventSourceTimeout);
600 600
            break;
601 601
          }
602
#if (AMIROOS_CFG_SSSP_STACK_START != true) || (AMIROOS_CFG_DBG == true)
602
#if (AMIROOS_CFG_DBG == true)
603 603
          lastid = aos.sssp.moduleId;
604
#endif
604
#endif /* (AMIROOS_CFG_DBG == true) */
605 605
#if (AMIROOS_CFG_SSSP_STACK_END == true)
606 606
          // sequence is already over
607 607
          // deactivate S
......
609 609
          apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
610 610
          // proceed
611 611
          stage = STAGE_3_3_WAITFORID;
612
#else
612
#else /* (AMIROOS_CFG_SSSP_STACK_END == true) */
613 613
          // set the delay timer so the UP signal is activated later
614 614
          chVTSet(&timerDelay, chTimeUS2I(AMIROOS_CFG_SSSP_SIGNALDELAY), _ssspTimerCallback, &eventSourceDelay);
615
#endif
615
#endif /* (AMIROOS_CFG_SSSP_STACK_END == true) */
616 616
        }
617 617

  
618 618
        // if a delay event occurred
......
629 629
          // proceed
630 630
          stage = STAGE_3_3_WAITFORID;
631 631
        }
632
#endif
632
#endif /* (AMIROOS_CFG_SSSP_STACK_START == true) */
633 633

  
634 634
        break;
635 635
      } /* end of STAGE_3_2 */
......
666 666
            eventmask &= ~(eventListenerTimeout.events);
667 667
          }
668 668
        }
669
#endif
669
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) */
670 670
        break;
671 671
      } /* end of STAGE_3_3_WAITFORFIRSTID */
672 672

  
......
728 728
          // activate UP
729 729
          aosDbgPrintf("enabling UP\n");
730 730
          apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_ON);
731
#endif
731
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
732 732
          // deactivate S
733 733
          aosDbgPrintf("disabling S\n");
734 734
          apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
......
739 739
          // proceed
740 740
          stage = STAGE_3_3_WAITFORID;
741 741
        }
742
#endif
742
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) */
743 743

  
744 744
        break;
745 745
      } /* end of STAGE_3_3_WAITFORIDORSIG */
......
760 760
            // Plausibility of the received ID is not checked at this point but is done by other modules still in a previous stage.
761 761
            lastid = _deserialize(canRxFrame.data8, 4);
762 762
            aosDbgPrintf("ID (%u)\n", lastid);
763
#endif
763
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) || (AMIROOS_CFG_DBG == true) */
764 764
            // restart timeout timer
765 765
            chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
766 766
            chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE);
767 767
            eventmask &= ~(eventListenerTimeout.events);
768 768
          }
769 769
        }
770
#endif
770
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
771 771

  
772 772
        break;
773 773
      } /* end of STAGE_3_3_WAITFORID */
......
877 877
#if (AMIROOS_CFG_SSSP_STACK_END != true)
878 878
  aosDbgPrintf("disabling UP\n");
879 879
  apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_OFF);
880
#endif
880
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
881 881
  aosDbgPrintf("disabling S\n");
882 882
  apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
883 883
  aosSysGetUptime(&uptime);
......
885 885

  
886 886
  return shutdown;
887 887
}
888
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
888
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
889 889

  
890 890
/**
891 891
 * @brief   Application entry point.
......
899 899
  aos_shutdown_t shutdown = AOS_SHUTDOWN_NONE;
900 900
#if defined(AMIROOS_CFG_MAIN_EXTRA_THREAD_VARIABLES)
901 901
  AMIROOS_CFG_MAIN_EXTRA_THREAD_VARIABLES
902
#endif
902
#endif /* defined(AMIROOS_CFG_MAIN_EXTRA_THREAD_VARIABLES) */
903 903

  
904 904
  /*
905 905
   * ##########################################################################
......
910 910
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_0)
911 911
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_0_ARGS)
912 912
  AMIROOS_CFG_MAIN_INIT_HOOK_0(AMIROOS_CFG_MAIN_INIT_HOOK_0_ARGS);
913
#else
913
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_0_ARGS) */
914 914
  AMIROOS_CFG_MAIN_INIT_HOOK_0();
915
#endif
916
#endif
915
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_0_ARGS) */
916
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_0) */
917 917

  
918 918
  /* hardware, kernel, and operating system initialization */
919 919
  // ChibiOS/HAL and custom hal additions (if any)
920 920
  halInit();
921
#ifdef MODULE_INIT_HAL_EXTRA
921
#if defined(MODULE_INIT_HAL_EXTRA)
922 922
  MODULE_INIT_HAL_EXTRA();
923
#endif
923
#endif /* defined(MODULE_INIT_HAL_EXTRA) */
924 924

  
925 925
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_1)
926 926
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_1_ARGS)
927 927
  AMIROOS_CFG_MAIN_INIT_HOOK_1(AMIROOS_CFG_MAIN_INIT_HOOK_1_ARGS);
928
#else
928
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_1_ARGS) */
929 929
  AMIROOS_CFG_MAIN_INIT_HOOK_1();
930
#endif
931
#endif
930
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_1_ARGS) */
931
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_1) */
932 932

  
933 933
  // ChibiOS/RT kernel and custom kernel additions (if any)
934 934
  chSysInit();
935
#ifdef MODULE_INIT_KERNEL_EXTRA
935
#if defined(MODULE_INIT_KERNEL_EXTRA)
936 936
  MODULE_INIT_KERNEL_EXTRA();
937
#endif
937
#endif /* defined(MODULE_INIT_KERNEL_EXTRA) */
938 938

  
939 939
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_2)
940 940
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_2_ARGS)
941 941
  AMIROOS_CFG_MAIN_INIT_HOOK_2(AMIROOS_CFG_MAIN_INIT_HOOK_2_ARGS);
942
#else
942
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_2_ARGS) */
943 943
  AMIROOS_CFG_MAIN_INIT_HOOK_2();
944
#endif
945
#endif
944
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_2_ARGS) */
945
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_2) */
946 946

  
947 947
  // AMiRo-OS and custom OS additions (if any)
948 948
#if (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true)
949 949
  aosSysInit(moduleShellPrompt);
950
#else
950
#else /* (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) */
951 951
  aosSysInit();
952
#endif
953
#ifdef MODULE_INIT_OS_EXTRA
952
#endif /* (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) */
953
#if defined(MODULE_INIT_OS_EXTRA)
954 954
  MODULE_INIT_OS_EXTRA();
955
#endif
955
#endif /* defined(MODULE_INIT_OS_EXTRA) */
956 956

  
957 957
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_3)
958 958
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_3_ARGS)
959 959
  AMIROOS_CFG_MAIN_INIT_HOOK_3(AMIROOS_CFG_MAIN_INIT_HOOK_3_ARGS);
960
#else
960
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_3_ARGS) */
961 961
  AMIROOS_CFG_MAIN_INIT_HOOK_3();
962
#endif
963
#endif
962
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_3_ARGS) */
963
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_3) */
964 964

  
965 965
  /* event associations */
966 966
#if (AMIROOS_CFG_SSSP_ENABLE == true)
967 967
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC;
968 968
#if (AMIROOS_CFG_SSSP_STACK_START != true)
969 969
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_DN;
970
#endif
970
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) */
971 971
#if (AMIROOS_CFG_SSSP_STACK_END != true)
972 972
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_UP;
973
#endif
974
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
973
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
974
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
975 975
  if (ioeventflagsmask != 0) {
976 976
    chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, ioeventflagsmask);
977 977
  }
......
980 980
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_4)
981 981
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_4_ARGS)
982 982
  AMIROOS_CFG_MAIN_INIT_HOOK_4(AMIROOS_CFG_MAIN_INIT_HOOK_4_ARGS);
983
#else
983
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_4_ARGS) */
984 984
  AMIROOS_CFG_MAIN_INIT_HOOK_4();
985
#endif
986
#endif
985
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_4_ARGS) */
986
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_4) */
987 987

  
988 988
  /* periphery communication initialization */
989 989
  // module specific initialization (if any)
990
#ifdef MODULE_INIT_PERIPHERY_COMM
990
#if defined(MODULE_INIT_PERIPHERY_COMM)
991 991
  MODULE_INIT_PERIPHERY_COMM();
992
#endif
992
#endif /* defined(MODULE_INIT_PERIPHERY_COMM) */
993 993
#if (AMIROOS_CFG_SSSP_ENABLE == true)
994 994
  // CAN (mandatory)
995 995
  canStart(&MODULE_HAL_CAN, &moduleHalCanConfig);
996
#endif
996
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
997 997
  // user interface (if any)
998
#ifdef MODULE_HAL_PROGIF
998
#if defined(MODULE_HAL_PROGIF)
999 999
  aosIOChannelInit(&_stdiochannel, (BaseAsynchronousChannel*)&MODULE_HAL_PROGIF);
1000 1000
  aosIOChannelOutputEnable(&_stdiochannel);
1001 1001
  aosIOStreamAddChannel(&aos.iostream, &_stdiochannel);
......
1004 1004
  aosShellChannelInputEnable(&_stdshellchannel);
1005 1005
  aosShellChannelOutputEnable(&_stdshellchannel);
1006 1006
  aosShellStreamAddChannel(&aos.shell.stream, &_stdshellchannel);
1007
#endif
1008
#endif
1007
#endif /* (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) */
1008
#endif /* defined(MODULE_HAL_PROGIF) */
1009 1009

  
1010 1010
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5)
1011 1011
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5_ARGS)
1012 1012
  AMIROOS_CFG_MAIN_INIT_HOOK_5(AMIROOS_CFG_MAIN_INIT_HOOK_5_ARGS);
1013
#else
1013
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_5_ARGS) */
1014 1014
  AMIROOS_CFG_MAIN_INIT_HOOK_5();
1015
#endif
1016
#endif
1015
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_5_ARGS) */
1016
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_5) */
1017 1017

  
1018 1018
  /* module is ready -> print welcome prompt */
1019 1019
  aosprintf("\n");
......
1035 1035
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_6)
1036 1036
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_6_ARGS)
1037 1037
  AMIROOS_CFG_MAIN_INIT_HOOK_6(AMIROOS_CFG_MAIN_INIT_HOOK_6_ARGS);
1038
#else
1038
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_6_ARGS) */
1039 1039
  AMIROOS_CFG_MAIN_INIT_HOOK_6();
1040
#endif
1041
#endif
1040
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_6_ARGS) */
1041
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_6) */
1042 1042

  
1043 1043
#if (AMIROOS_CFG_TESTS_ENABLE == true)
1044 1044
#if defined(MODULE_INIT_TESTS)
1045 1045
  MODULE_INIT_TESTS();
1046
#else
1047
  #warning "MODULE_INIT_TESTS() not defined"
1048
#endif
1049
#endif
1046
#else /* defined(MODULE_INIT_TESTS) */
1047
  #warning "AMIROOS_CFG_TESTS_ENABLE set to true, but MODULE_INIT_TESTS() not defined"
1048
#endif /* defined(MODULE_INIT_TESTS) */
1049
#endif /* (AMIROOS_CFG_TESTS_ENABLE == true) */
1050 1050

  
1051 1051
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_7)
1052 1052
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_7_ARGS)
1053 1053
  AMIROOS_CFG_MAIN_INIT_HOOK_7(AMIROOS_CFG_MAIN_INIT_HOOK_7_ARGS);
1054
#else
1054
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_7_ARGS) */
1055 1055
  AMIROOS_CFG_MAIN_INIT_HOOK_7();
1056
#endif
1057
#endif
1056
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_7_ARGS) */
1057
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_7) */
1058 1058

  
1059 1059
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1060 1060
  /* SSSP startup OS synchronization phase (end of startup stage 2) */
......
1070 1070
      if (eventflags & MODULE_SSSP_EVENTFLAGS_PD) {
1071 1071
        shutdown = AOS_SHUTDOWN_PASSIVE;
1072 1072
      } else {
1073
#ifdef MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK
1073
#if defined(MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK)
1074 1074
        MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK(eventmask, eventflags);
1075
#else
1075
#else /* defined(MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK) */
1076 1076
        // ignore any other IO events
1077
#endif
1077
#endif /* defined(MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK) */
1078 1078
      }
1079 1079
    }
1080 1080
    // OS event
......
1096 1096
  if (shutdown == AOS_SHUTDOWN_NONE) {
1097 1097
    shutdown = _ssspModuleStackInitialization();
1098 1098
  }
1099
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
1099
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1100 1100

  
1101 1101
  /*
1102 1102
   * There must be no delays at this point, thus no hook is allowed.
......
1126 1126
    canTransmitTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, TIME_IMMEDIATE);
1127 1127

  
1128 1128
    aosDbgPrintf("done\n");
1129
#else /* AMIROOS_CFG_SSSP_MASTER == false */
1129
#else /* (AMIROOS_CFG_SSSP_MASTER == true) */
1130 1130
    CANRxFrame frame;
1131 1131
    uint64_t encoded;
1132 1132
    struct tm t;
......
1136 1136
#if (AMIROOS_CFG_DBG == true)
1137 1137
    // increase timeout in debug mode due to additional delays introduced by the many prinf() calls
1138 1138
    if (canReceiveTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, chTimeUS2I(10 * AOS_SYSTEM_SSSP_TIMEOUT)) == MSG_OK) {
1139
#else
1139
#else /* (AMIROOS_CFG_DBG == true) */
1140 1140
    if (canReceiveTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT)) == MSG_OK) {
1141
#endif
1141
#endif /* (AMIROOS_CFG_DBG == true) */
1142 1142
      // validate message
1143 1143
      if (frame.DLC == 8 &&
1144 1144
          frame.RTR == CAN_RTR_DATA &&
......
1157 1157
    } else {
1158 1158
      aosDbgPrintf("fail (timeout)\n");
1159 1159
    }
1160
#endif /* AMIROOS_CFG_SSSP_MASTER == false */
1160
#endif /* (AMIROOS_CFG_SSSP_MASTER == true) */
1161 1161
    aosDbgPrintf("\n");
1162 1162
  }
1163 1163
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_RTC == TRUE) */
......
1165 1165
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8)
1166 1166
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS)
1167 1167
  AMIROOS_CFG_MAIN_INIT_HOOK_8(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS);
1168
#else
1168
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS) */
1169 1169
  AMIROOS_CFG_MAIN_INIT_HOOK_8();
1170
#endif
1171
#endif
1170
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS) */
1171
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_8) */
1172 1172

  
1173 1173
  /* completely start AMiRo-OS */
1174 1174
  if (shutdown == AOS_SHUTDOWN_NONE) {
......
1178 1178
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_9)
1179 1179
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_9_ARGS)
1180 1180
  AMIROOS_CFG_MAIN_INIT_HOOK_9(AMIROOS_CFG_MAIN_INIT_HOOK_9_ARGS);
1181
#else
1181
#else /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_9_ARGS) */
1182 1182
  AMIROOS_CFG_MAIN_INIT_HOOK_9();
1183
#endif
1184
#endif
1183
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_9_ARGS) */
1184
#endif /* defined(AMIROOS_CFG_MAIN_INIT_HOOK_9) */
1185 1185

  
1186 1186
  /*
1187 1187
   * ##########################################################################
......
1194 1194
    // wait for an event
1195 1195
#if (AMIROOS_CFG_MAIN_LOOP_TIMEOUT != 0)
1196 1196
    eventmask = chEvtWaitOneTimeout(ALL_EVENTS, chTimeUS2I(AMIROOS_CFG_MAIN_LOOP_TIMEOUT));
1197
#else
1197
#else /* (AMIROOS_CFG_MAIN_LOOP_TIMEOUT != 0) */
1198 1198
    eventmask = chEvtWaitOne(ALL_EVENTS);
1199
#endif
1199
#endif /* (AMIROOS_CFG_MAIN_LOOP_TIMEOUT != 0) */
1200 1200

  
1201 1201
#if defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0)
1202 1202
#if defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0_ARGS)
1203 1203
    AMIROOS_CFG_MAIN_LOOP_HOOK_0(AMIROOS_CFG_MAIN_LOOP_HOOK_0_ARGS);
1204
#else
1204
#else /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0_ARGS) */
1205 1205
    AMIROOS_CFG_MAIN_LOOP_HOOK_0();
1206
#endif
1207
#endif
1206
#endif /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0_ARGS) */
1207
#endif /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0) */
1208 1208

  
1209 1209
    switch (eventmask) {
1210 1210
      // if this was an I/O event
......
1217 1217
          shutdown = AOS_SHUTDOWN_PASSIVE;
1218 1218
        }
1219 1219
        // all other events
1220
#ifdef MODULE_MAIN_LOOP_IO_EVENT
1220
#if defined(MODULE_MAIN_LOOP_IO_EVENT)
1221 1221
        else {
1222 1222
          MODULE_MAIN_LOOP_IO_EVENT(eventflags);
1223 1223
        }
1224
#endif
1225
#else /* AMIROOS_CFG_SSSP_ENABLE == false */
1226
#ifdef MODULE_MAIN_LOOP_IO_EVENT
1224
#endif /* defined(MODULE_MAIN_LOOP_IO_EVENT) */
1225
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1226
#if defined(MODULE_MAIN_LOOP_IO_EVENT)
1227 1227
        MODULE_MAIN_LOOP_IO_EVENT(eventflags);
1228
#endif
1229
#endif /* AMIROOS_CFG_SSSP_ENABLE */
1228
#endif /* defined(MODULE_MAIN_LOOP_IO_EVENT) */
1229
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1230 1230
        break;
1231 1231

  
1232 1232
      // if this was an OS event
......
1247 1247
          case AOS_SYSTEM_EVENTFLAGS_RESTART:
1248 1248
            shutdown = AOS_SHUTDOWN_RESTART;
1249 1249
            break;
1250
#else /* AMIROOS_CFG_SSSP_ENABLE == false */
1250
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1251 1251
          case AOS_SYSTEM_EVENTFLAGS_SHUTDOWN:
1252 1252
            shutdown = AOS_SHUTDOWN_DEFAULT;
1253 1253
            break;
1254
#endif /* AMIROOS_CFG_SSSP_ENABLE */
1254
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1255 1255
          default:
1256 1256
            _unexpectedEventError(eventmask, eventflags);
1257 1257
            break;
......
1263 1263
        eventflags = 0;
1264 1264
#if (AMIROOS_CFG_MAIN_LOOP_TIMEOUT == 0)
1265 1265
        _unexpectedEventError(eventmask, eventflags);
1266
#endif
1266
#endif /* (AMIROOS_CFG_MAIN_LOOP_TIMEOUT == 0) */
1267 1267
        break;
1268 1268
    }
1269 1269

  
1270 1270
#if defined(AMIROOS_CFG_MAIN_LOOP_HOOK_1)
1271 1271
#if defined(AMIROOS_CFG_MAIN_LOOP_HOOK_1_ARGS)
1272 1272
    AMIROOS_CFG_MAIN_LOOP_HOOK_1(AMIROOS_CFG_MAIN_LOOP_HOOK_1_ARGS);
1273
#else
1273
#else /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_1_ARGS) */
1274 1274
    AMIROOS_CFG_MAIN_LOOP_HOOK_1();
1275
#endif
1276
#endif
1275
#endif /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_1_ARGS) */
1276
#endif /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_1) */
1277 1277
  }
1278 1278

  
1279 1279
  /*
......
1285 1285
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0)
1286 1286
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0_ARGS)
1287 1287
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0_ARGS);
1288
#else
1288
#else /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0_ARGS) */
1289 1289
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0();
1290
#endif
1291
#endif
1290
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0_ARGS) */
1291
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_0) */
1292 1292

  
1293 1293
  // initialize/acknowledge shutdown
1294 1294
  aosSysShutdownInit(shutdown);
......
1296 1296
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1)
1297 1297
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1_ARGS)
1298 1298
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1_ARGS);
1299
#else
1299
#else /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1_ARGS) */
1300 1300
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1();
1301
#endif
1302
#endif
1301
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1_ARGS) */
1302
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_1) */
1303 1303

  
1304 1304
  // stop system threads
1305 1305
  aosSysStop();
......
1307 1307
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2)
1308 1308
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2_ARGS)
1309 1309
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2_ARGS);
1310
#else
1310
#else /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2_ARGS) */
1311 1311
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2();
1312
#endif
1313
#endif
1312
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2_ARGS) */
1313
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_2) */
1314 1314

  
1315 1315
  // deinitialize system
1316 1316
  aosSysDeinit();
......
1318 1318
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3)
1319 1319
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3_ARGS)
1320 1320
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3_ARGS);
1321
#else
1321
#else /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3_ARGS) */
1322 1322
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3();
1323
#endif
1324
#endif
1323
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3_ARGS) */
1324
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3) */
1325 1325

  
1326 1326
  /* stop all periphery communication */
1327 1327
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1328 1328
  // CAN (mandatory)
1329 1329
  canStop(&MODULE_HAL_CAN);
1330
#endif
1331
#ifdef MODULE_SHUTDOWN_PERIPHERY_COMM
1330
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1331
#if defined(MODULE_SHUTDOWN_PERIPHERY_COMM)
1332 1332
  MODULE_SHUTDOWN_PERIPHERY_COMM();
1333
#endif
1333
#endif /* defined(MODULE_SHUTDOWN_PERIPHERY_COMM) */
1334 1334

  
1335 1335
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4)
1336 1336
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4_ARGS)
1337 1337
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4_ARGS);
1338
#else
1338
#else /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4_ARGS) */
1339 1339
    AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4();
1340
#endif
1341
#endif
1340
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4_ARGS) */
1341
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4) */
1342 1342

  
1343 1343
  // finally hand over to bootloader
1344 1344
  aosSysShutdownFinal(shutdown);

Also available in: Unified diff