Revision 1a8fb642

View differences:

core/inc/aos_system.h
173 173
  struct {
174 174

  
175 175
    /**
176
     * @brief   I/O event source.
176
     * @brief   GPIO event source.
177 177
     */
178
    event_source_t io;
178
    event_source_t gpio;
179 179

  
180 180
    /**
181 181
     * @brief   OS event source.
......
231 231
  void aosSysStop(void);
232 232
  void aosSysDeinit(void);
233 233
  void aosSysShutdownFinal(aos_shutdown_t shutdown);
234
  palcallback_t aosSysGetStdExtiCallback(void);
234
  palcallback_t aosSysGetStdGpioCallback(void);
235 235
#if defined(__cplusplus)
236 236
}
237 237
#endif /* defined(__cplusplus) */
core/inc/aos_types.h
87 87
/**
88 88
 * @brief   Converts a GPIO pad number to a unique event flag.
89 89
 */
90
#define AOS_IOEVENT_FLAG(pad)                   ((eventflags_t)1 << pad)
90
#define AOS_GPIOEVENT_FLAG(pad)                 ((eventflags_t)1 << pad)
91 91

  
92 92
/******************************************************************************/
93 93
/* EXTERN DECLARATIONS                                                        */
core/src/aos_main.cpp
40 40
/******************************************************************************/
41 41

  
42 42
/**
43
 * @brief   Event mask to identify I/O events.
43
 * @brief   Event mask to identify GPIO events.
44 44
 */
45
#define IOEVENT_MASK                            EVENT_MASK(0)
45
#define GPIOEVENT_MASK                          EVENT_MASK(0)
46 46

  
47 47
/**
48 48
 * @brief   Event mask to identify OS events.
......
116 116
/******************************************************************************/
117 117

  
118 118
/**
119
 * @brief   Listener object for I/O events.
119
 * @brief   Listener object for GPIO events.
120 120
 */
121
static event_listener_t _eventListenerIO;
121
static event_listener_t _eventListenerGPIO;
122 122

  
123 123
/**
124 124
 * @brief   Listener object for OS events.
......
126 126
static event_listener_t _eventListenerOS;
127 127

  
128 128
#if defined(MODULE_HAL_PROGIF) || defined(__DOXYGEN__)
129

  
129 130
/**
130 131
 * @brief   I/O channel for the programmer interface.
131 132
 */
......
444 445
      continue;
445 446
    }
446 447
    // if an IO event occurred
447
    if (eventmask & _eventListenerIO.events) {
448
      ioflags = chEvtGetAndClearFlags(&_eventListenerIO);
448
    if (eventmask & _eventListenerGPIO.events) {
449
      ioflags = chEvtGetAndClearFlags(&_eventListenerGPIO);
449 450
      aosDbgPrintf("INFO: IO evt (0x%08X)\n", ioflags);
450 451
      // a power-down event occurred
451
      if (ioflags & MODULE_SSSP_EVENTFLAGS_PD) {
452
      if (ioflags & MODULE_SSSP_EVENTFLAG_PD) {
452 453
        aosDbgPrintf("PD evt\n");
453 454
        // deactivate S and UP
454 455
        aosDbgPrintf("disabling S\n");
455
        apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
456
        apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
456 457
#if (AMIROOS_CFG_SSSP_STACK_END != true)
457 458
        aosDbgPrintf("disabling UP\n");
458
        apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_OFF);
459
        apalControlGpioSet(&moduleSsspGpioUP, APAL_GPIO_OFF);
459 460
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
460 461
        // set shutdown flag and exit the loop
461 462
        shutdown = AOS_SHUTDOWN_PASSIVE;
462 463
        break;
463 464
      }
464 465
      // the S signal was deactivated
465
      if (ioflags & MODULE_SSSP_EVENTFLAGS_SYNC) {
466
      if (ioflags & MODULE_SSSP_EVENTFLAG_S) {
466 467
        apalControlGpioState_t sstate;
467
        apalControlGpioGet(&moduleSsspGpioSync, &sstate);
468
        apalControlGpioGet(&moduleSsspGpioS, &sstate);
468 469
        if (sstate == APAL_GPIO_ON) {
469 470
          aosDbgPrintf("S evt (enabled)\n");
470 471
        } else {
......
541 542
          }
542 543
          // activate S
543 544
          aosDbgPrintf("enabling S\n");
544
          apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_ON);
545
          apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_ON);
545 546
#if (AMIROOS_CFG_SSSP_STACK_START == true)
546 547
          // proceed immediately
547 548
          stage = STAGE_3_2;
......
573 574
            eventmask &= ~(eventListenerTimeout.events);
574 575
            // activate S
575 576
            aosDbgPrintf("enabling S\n");
576
            apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_ON);
577
            apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_ON);
577 578
#if (AMIROOS_CFG_SSSP_STACK_START == true)
578 579
            // proceed
579 580
            stage = STAGE_3_2;
......
629 630
        if (eventmask & eventListenerDelay.events) {
630 631
          // activate UP
631 632
          aosDbgPrintf("enabling UP\n");
632
          apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_ON);
633
          apalControlGpioSet(&moduleSsspGpioUP, APAL_GPIO_ON);
633 634
          // deactivate S
634 635
          aosDbgPrintf("disabling S\n");
635
          apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
636
          apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
636 637
          // explicitely clear timeout event flag
637 638
          chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE);
638 639
          eventmask &= ~(eventListenerTimeout.events);
......
712 713
        }
713 714

  
714 715
        // if an IO event was received (DN signal)
715
        if ((eventmask & _eventListenerIO.events) && (ioflags & MODULE_SSSP_EVENTFLAGS_DN)) {
716
        if ((eventmask & _eventListenerGPIO.events) && (ioflags & MODULE_SSSP_EVENTFLAG_DN)) {
716 717
          aosDbgPrintf("DN evt\n");
717 718
          // reset timeout timer
718 719
          chVTReset(&timerTimeout);
......
737 738
#if (AMIROOS_CFG_SSSP_STACK_END != true)
738 739
          // activate UP
739 740
          aosDbgPrintf("enabling UP\n");
740
          apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_ON);
741
          apalControlGpioSet(&moduleSsspGpioUP, APAL_GPIO_ON);
741 742
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
742 743
          // deactivate S
743 744
          aosDbgPrintf("disabling S\n");
744
          apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
745
          apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
745 746
          // reset the timeout timer
746 747
          chVTSet(&timerTimeout, chTimeUS2I(AOS_SYSTEM_SSSP_TIMEOUT), _ssspTimerCallback, &eventSourceTimeout);
747 748
          chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE);
......
787 788
        aos.sssp.stage = AOS_SSSP_STARTUP_3_4;
788 789

  
789 790
        // if an IO event was received (S signal)
790
        if ((eventmask & _eventListenerIO.events) && (ioflags & MODULE_SSSP_EVENTFLAGS_SYNC)) {
791
        if ((eventmask & _eventListenerGPIO.events) && (ioflags & MODULE_SSSP_EVENTFLAG_S)) {
791 792
          // reset the timeout timer
792 793
          chVTReset(&timerTimeout);
793 794
          chEvtWaitAnyTimeout(eventListenerTimeout.events, TIME_IMMEDIATE);
......
843 844

  
844 845
        // deactivate S
845 846
        aosDbgPrintf("disabling SYNC\n");
846
        apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
847
        apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
847 848
        // invalidate module ID
848 849
        aos.sssp.moduleId = 0;
849 850

  
850 851
        // if an IO event was received (S signal)
851
        if ((eventmask & _eventListenerIO.events) && (ioflags & MODULE_SSSP_EVENTFLAGS_SYNC)) {
852
        if ((eventmask & _eventListenerGPIO.events) && (ioflags & MODULE_SSSP_EVENTFLAG_S)) {
852 853
          aosDbgPrintf("sequence aborted\n");
853 854
          // exit the sequence
854 855
          flags.loop = false;
......
886 887
  // reset all control signals
887 888
#if (AMIROOS_CFG_SSSP_STACK_END != true)
888 889
  aosDbgPrintf("disabling UP\n");
889
  apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_OFF);
890
  apalControlGpioSet(&moduleSsspGpioUP, APAL_GPIO_OFF);
890 891
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
891 892
  aosDbgPrintf("disabling S\n");
892
  apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
893
  apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
893 894
  aosSysGetUptime(&uptime);
894 895
  aosDbgPrintf("done\t%04ums\n", (uint32_t)(uptime / MICROSECONDS_PER_MILLISECOND));
895 896

  
......
905 906
  // local variables
906 907
  eventmask_t eventmask = 0;
907 908
  eventflags_t eventflags = 0;
908
  eventflags_t ioeventflagsmask = AMIROOS_CFG_MAIN_LOOP_IOEVENT_MASK;
909
  eventflags_t gpioeventflagsmask = AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK;
909 910
  aos_shutdown_t shutdown = AOS_SHUTDOWN_NONE;
910 911
#if defined(AMIROOS_CFG_MAIN_EXTRA_THREAD_VARIABLES)
911 912
  AMIROOS_CFG_MAIN_EXTRA_THREAD_VARIABLES
......
977 978

  
978 979
  /* event associations */
979 980
#if (AMIROOS_CFG_SSSP_ENABLE == true)
980
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC;
981
  gpioeventflagsmask |= MODULE_SSSP_EVENTFLAG_PD | MODULE_SSSP_EVENTFLAG_S;
981 982
#if (AMIROOS_CFG_SSSP_STACK_START != true)
982
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_DN;
983
  gpioeventflagsmask |= MODULE_SSSP_EVENTFLAG_DN;
983 984
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) */
984 985
#if (AMIROOS_CFG_SSSP_STACK_END != true)
985
  ioeventflagsmask |= MODULE_SSSP_EVENTFLAGS_UP;
986
  gpioeventflagsmask |= MODULE_SSSP_EVENTFLAG_UP;
986 987
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
987 988
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
988
  if (ioeventflagsmask != 0) {
989
    chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, ioeventflagsmask);
989
  if (gpioeventflagsmask != 0) {
990
    chEvtRegisterMaskWithFlags(&aos.events.gpio, &_eventListenerGPIO, GPIOEVENT_MASK, gpioeventflagsmask);
990 991
  }
991 992
  chEvtRegisterMask(&aos.events.os, &_eventListenerOS, OSEVENT_MASK);
992 993

  
......
1073 1074

  
1074 1075
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1075 1076
  /* SSSP startup OS synchronization phase (end of startup stage 2) */
1076
  while ((shutdown == AOS_SHUTDOWN_NONE) && (eventmask = aosSysSsspStartupOsInitSyncCheck(&_eventListenerIO)) != 0) {
1077
  while ((shutdown == AOS_SHUTDOWN_NONE) && (eventmask = aosSysSsspStartupOsInitSyncCheck(&_eventListenerGPIO)) != 0) {
1077 1078
    /*
1078 1079
     * This code is executed if the received event was not about the SYS_SYNC control signal.
1079 1080
     * The returned event could be caused by any listener (not only the argument).
1080 1081
     */
1081
    // IO event
1082
    if (eventmask & _eventListenerIO.events) {
1083
      eventflags = chEvtGetAndClearFlags(&_eventListenerIO);
1082
    // GPIO event
1083
    if (eventmask & _eventListenerGPIO.events) {
1084
      eventflags = chEvtGetAndClearFlags(&_eventListenerGPIO);
1084 1085
      // PD event
1085
      if (eventflags & MODULE_SSSP_EVENTFLAGS_PD) {
1086
      if (eventflags & MODULE_SSSP_EVENTFLAG_PD) {
1086 1087
        shutdown = AOS_SHUTDOWN_PASSIVE;
1087 1088
      } else {
1088 1089
#if defined(MODULE_SSSP_STARTUP_2_2_IOEVENT_HOOK)
......
1225 1226
#endif /* defined(AMIROOS_CFG_MAIN_LOOP_HOOK_0) */
1226 1227

  
1227 1228
    switch (eventmask) {
1228
      // if this was an I/O event
1229
      case IOEVENT_MASK:
1229
      // if this was an GPIO event
1230
      case GPIOEVENT_MASK:
1230 1231
        // evaluate flags
1231
        eventflags = chEvtGetAndClearFlags(&_eventListenerIO);
1232
        eventflags = chEvtGetAndClearFlags(&_eventListenerGPIO);
1232 1233
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1233 1234
        // PD event
1234
        if (eventflags & MODULE_SSSP_EVENTFLAGS_PD) {
1235
        if (eventflags & MODULE_SSSP_EVENTFLAG_PD) {
1235 1236
          shutdown = AOS_SHUTDOWN_PASSIVE;
1236 1237
        }
1237 1238
        // all other events
1238
#if defined(MODULE_MAIN_LOOP_IO_EVENT)
1239
#if defined(MODULE_MAIN_LOOP_GPIOEVENT)
1239 1240
        else {
1240
          MODULE_MAIN_LOOP_IO_EVENT(eventflags);
1241
          MODULE_MAIN_LOOP_GPIOEVENT(eventflags);
1241 1242
        }
1242
#endif /* defined(MODULE_MAIN_LOOP_IO_EVENT) */
1243
#endif /* defined(MODULE_MAIN_LOOP_GPIOEVENT) */
1243 1244
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1244
#if defined(MODULE_MAIN_LOOP_IO_EVENT)
1245
        MODULE_MAIN_LOOP_IO_EVENT(eventflags);
1246
#endif /* defined(MODULE_MAIN_LOOP_IO_EVENT) */
1245
#if defined(MODULE_MAIN_LOOP_GPIOEVENT)
1246
        MODULE_MAIN_LOOP_GPIOEVENT(eventflags);
1247
#endif /* defined(MODULE_MAIN_LOOP_GPIOEVENT) */
1247 1248
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1248 1249
        break;
1249 1250

  
core/src/aos_system.c
661 661
 *
662 662
 * @param[in] args   Pointer to the GPIO line identifier.
663 663
 */
664
static void _extiCallback(void* args)
664
static void _gpioCallback(void* args)
665 665
{
666 666
  aosDbgCheck((args != NULL) && (*((ioline_t*)args) != PAL_NOLINE) && (PAL_PAD(*((ioline_t*)args)) < sizeof(eventflags_t) * 8));
667 667

  
668 668
  chSysLockFromISR();
669
  chEvtBroadcastFlagsI(&aos.events.io, AOS_IOEVENT_FLAG(PAL_PAD(*((ioline_t*)args))));
669
  chEvtBroadcastFlagsI(&aos.events.gpio, AOS_GPIOEVENT_FLAG(PAL_PAD(*((ioline_t*)args))));
670 670
  chSysUnlockFromISR();
671 671

  
672 672
  return;
......
690 690
  // if the system is in operation phase
691 691
  if (aos.sssp.stage == AOS_SSSP_OPERATION) {
692 692
    // read signal S
693
    apalControlGpioGet(&moduleSsspGpioSync, &s_state);
693
    apalControlGpioGet(&moduleSsspGpioS, &s_state);
694 694
    // if S was toggled from on to off
695 695
    if (s_state == APAL_GPIO_OFF) {
696 696
      // get current uptime
......
710 710
    }
711 711
  }
712 712
  // broadcast event
713
  chEvtBroadcastFlagsI(&aos.events.io, AOS_IOEVENT_FLAG(PAL_PAD(*((ioline_t*)args))));
713
  chEvtBroadcastFlagsI(&aos.events.gpio, AOS_GPIOEVENT_FLAG(PAL_PAD(*((ioline_t*)args))));
714 714
  chSysUnlockFromISR();
715 715

  
716 716
  return;
......
755 755

  
756 756
  chSysLockFromISR();
757 757
  // toggle and read signal S
758
  apalGpioToggle(moduleSsspGpioSync.gpio);
759
  apalControlGpioGet(&moduleSsspGpioSync, &s_state);
758
  apalGpioToggle(moduleSsspGpioS.gpio);
759
  apalControlGpioGet(&moduleSsspGpioS, &s_state);
760 760
  // if S was toggled from off to on
761 761
  if (s_state == APAL_GPIO_ON) {
762 762
    // reconfigure the timer precisely, because the logically falling edge (next interrupt) snychronizes the system time
......
817 817
  aos.sssp.moduleId = 0;
818 818
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
819 819
  aosIOStreamInit(&aos.iostream);
820
  chEvtObjectInit(&aos.events.io);
820
  chEvtObjectInit(&aos.events.gpio);
821 821
  chEvtObjectInit(&aos.events.os);
822 822

  
823 823
  /* interrupt setup */
824 824
#if (AMIROOS_CFG_SSSP_ENABLE == true)
825 825
  // PD signal
826
  palSetLineCallback(moduleSsspGpioPd.gpio->line, _extiCallback, &moduleSsspGpioPd.gpio->line);
827
  palEnableLineEvent(moduleSsspGpioPd.gpio->line, APAL2CH_EDGE(moduleSsspGpioPd.meta.edge));
826
  palSetLineCallback(moduleSsspGpioPD.gpio->line, _gpioCallback, &moduleSsspGpioPD.gpio->line);
827
  palEnableLineEvent(moduleSsspGpioPD.gpio->line, APAL2CH_EDGE(moduleSsspGpioPD.meta.edge));
828 828
  // SYNC signal
829 829
#if (AMIROOS_CFG_SSSP_MASTER == true)
830
  palSetLineCallback(moduleSsspGpioSync.gpio->line, _extiCallback, &moduleSsspGpioSync.gpio->line);
830
  palSetLineCallback(moduleSsspGpioS.gpio->line, _gpioCallback, &moduleSsspGpioS.gpio->line);
831 831
#else /* (AMIROOS_CFG_SSSP_MASTER == true) */
832
  palSetLineCallback(moduleSsspGpioSync.gpio->line, _signalSyncCallback, &moduleSsspGpioSync.gpio->line);
832
  palSetLineCallback(moduleSsspGpioS.gpio->line, _signalSyncCallback, &moduleSsspGpioS.gpio->line);
833 833
#endif /* (AMIROOS_CFG_SSSP_MASTER == true) */
834
  palEnableLineEvent(moduleSsspGpioSync.gpio->line, APAL2CH_EDGE(moduleSsspGpioSync.meta.edge));
834
  palEnableLineEvent(moduleSsspGpioS.gpio->line, APAL2CH_EDGE(moduleSsspGpioS.meta.edge));
835 835
#if (AMIROOS_CFG_SSSP_STACK_START != true)
836 836
  // DN signal
837
  palSetLineCallback(moduleSsspGpioDn.gpio->line, _extiCallback, &moduleSsspGpioDn.gpio->line);
838
  palEnableLineEvent(moduleSsspGpioDn.gpio->line, APAL2CH_EDGE(moduleSsspGpioDn.meta.edge));
837
  palSetLineCallback(moduleSsspGpioDN.gpio->line, _gpioCallback, &moduleSsspGpioDN.gpio->line);
838
  palEnableLineEvent(moduleSsspGpioDN.gpio->line, APAL2CH_EDGE(moduleSsspGpioDN.meta.edge));
839 839
#endif /* (AMIROOS_CFG_SSSP_STACK_START != true) */
840 840
#if (AMIROOS_CFG_SSSP_STACK_END != true)
841 841
  // UP signal
842
  palSetLineCallback(moduleSsspGpioUp.gpio->line, _extiCallback, &moduleSsspGpioUp.gpio->line);
843
  palEnableLineEvent(moduleSsspGpioUp.gpio->line, APAL2CH_EDGE(moduleSsspGpioUp.meta.edge));
842
  palSetLineCallback(moduleSsspGpioUP.gpio->line, _gpioCallback, &moduleSsspGpioUP.gpio->line);
843
  palEnableLineEvent(moduleSsspGpioUP.gpio->line, APAL2CH_EDGE(moduleSsspGpioUP.meta.edge));
844 844
#endif /* (AMIROOS_CFG_SSSP_STACK_END != true) */
845 845
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
846 846

  
......
926 926
  aos.sssp.stage = AOS_SSSP_STARTUP_2_2;
927 927

  
928 928
  // deactivate the sync signal to indicate that the module is ready (SSSPv1 stage 2.1 of startup phase)
929
  apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF);
929
  apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_OFF);
930 930

  
931 931
  // wait for any event to occur (do not apply any filter in order not to miss any event)
932 932
  m = chEvtWaitOne(ALL_EVENTS);
933 933
  f = chEvtGetAndClearFlags(syncEvtListener);
934
  apalControlGpioGet(&moduleSsspGpioSync, &s);
934
  apalControlGpioGet(&moduleSsspGpioS, &s);
935 935

  
936 936
  // if the event was a system event,
937 937
  //   and it was fired because of the SysSync control signal,
938 938
  //   and the SysSync control signal has been deactivated
939 939
  if (m & syncEvtListener->events &&
940
      f == MODULE_SSSP_EVENTFLAGS_SYNC &&
940
      f == MODULE_SSSP_EVENTFLAG_S &&
941 941
      s == APAL_GPIO_OFF) {
942 942
    chSysLock();
943 943
    // start the uptime counter
......
1030 1030
  chSysLock();
1031 1031
  // activate the SYS_PD control signal only, if this module initiated the shutdown
1032 1032
  if (shutdown != AOS_SHUTDOWN_PASSIVE) {
1033
    apalControlGpioSet(&moduleSsspGpioPd, APAL_GPIO_ON);
1033
    apalControlGpioSet(&moduleSsspGpioPD, APAL_GPIO_ON);
1034 1034
  }
1035 1035
  // activate the SYS_SYNC signal
1036
  apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_ON);
1036
  apalControlGpioSet(&moduleSsspGpioS, APAL_GPIO_ON);
1037 1037
  chSysUnlock();
1038 1038
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1039 1039

  
......
1152 1152
 *
1153 1153
 * @return  Pointer to the callback function.
1154 1154
 */
1155
palcallback_t aosSysGetStdExtiCallback(void)
1155
palcallback_t aosSysGetStdGpioCallback(void)
1156 1156
{
1157
  return _extiCallback;
1157
  return _gpioCallback;
1158 1158
}
1159 1159

  
1160 1160
/** @} */
modules/DiWheelDrive_1-1/aosconf.h
80 80
#endif /* !defined(OS_CFG_PROFILE) */
81 81

  
82 82
/**
83
 * @brief   Mask for the control thread to listen to certain IO events.
83
 * @brief   Mask for the control thread to listen to certain GPIO events.
84 84
 * @note    Any mandatory events (e.g. for SSSP) are enabled implicitely despite this configuration.
85 85
 */
86
#if !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK)
87
  #define AMIROOS_CFG_MAIN_LOOP_IOEVENT_MASK    0
88
#else /* !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK) */
89
  #define AMIROOS_CFG_MAIN_LOOP_IOEVENT_MASK    OS_CFG_MAIN_LOOP_IOEVENT_MASK
90
#endif /* !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK) */
86
#if !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK)
87
  #define AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK 0
88
#else /* !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK) */
89
  #define AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK
90
#endif /* !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK) */
91 91

  
92 92
/**
93 93
 * @brief   Timeout value when waiting for events in the main loop in microseconds.
modules/DiWheelDrive_1-1/module.h
242 242
/**
243 243
 * @brief   Event flag to be set on a SYS_SYNC interrupt.
244 244
 */
245
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          AOS_IOEVENT_FLAG(PAL_PAD(LINE_SYS_INT_N))
245
#define MODULE_OS_GPIOEVENTFLAG_SYSSYNC         AOS_GPIOEVENT_FLAG(PAL_PAD(LINE_SYS_INT_N))
246 246

  
247 247
/**
248 248
 * @brief   Event flag to be set on a SYS_WARMRST interrupt.
249 249
 */
250
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       AOS_IOEVENT_FLAG(PAL_PAD(LINE_SYS_WARMRST_N))
250
#define MODULE_OS_GPIOEVENTFLAG_SYSWARMRST      AOS_GPIOEVENT_FLAG(PAL_PAD(LINE_SYS_WARMRST_N))
251 251

  
252 252
/**
253 253
 * @brief   Event flag to be set on a PATH_DCSTAT interrupt.
254 254
 */