⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mk_user.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:
|  SDL-Application are the main clients of this function.                      |
|                                                                              |
|  Parameter    :                                                              |
|            xmk_T_ERR_NUM xmk_TmpErrorNumber   -   given error number         |
|                                   (see headerfile *err.h)                    |
|                                                                              |
|  Return       : -                                                            |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO
   /* ANSI - Style */
   void ErrorHandler ( xmk_T_ERR_NUM xmk_TmpErrorNumber )
#else
   /* Kernighan-Ritchie-Style */
   void ErrorHandler ( xmk_TmpErrorNumber )
   xmk_T_ERR_NUM xmk_TmpErrorNumber;
#endif

/*-FDEF E*/
{
/*  Added by GBU,990516,    to get rid of IAR warning */
    xmk_TmpErrorNumber = xmk_TmpErrorNumber;

   #ifdef XMK_ADD_PRINTF_USER
      XMK_FUNCTION("ErrorHandler");
   #endif

   #ifdef XMK_ADD_CQUERY_ERROR
     /* Variable stores the last errornumber for the command interface ... */
     xmk_LastStoredError = xmk_TmpErrorNumber;
   #endif

  #ifdef XMK_ADD_TSYS_ERROR
     /*
     ** Trace of Errors via communication interface ...
     ** Note : Not all error situations can be traced
     **        (i.e.an error on the communication interface)
     */
     if(xmk_TmpErrorNumber !=  ERR_N_RING_WRITE_LENGTH)
       xmk_tsys_error ( xmk_TmpErrorNumber );
  #endif

  #ifdef XMK_ADD_PRINTF_ADDITIONAL
    PRINTF (("ERR:xmk_TmpErrorNumber=%d\n", xmk_TmpErrorNumber));

    #if defined(XMK_ADD_PRINTF_ERROR)
        xmk_err_text(STDOUT, xmk_TmpErrorNumber);
    #endif

    PRINTF (("ERR:xmk_TmpErrorNumber=%d\n", xmk_TmpErrorNumber));
  #else

    #ifdef USE_THE_FOLLOWING_EXAMPLE
     /* I.E.implement the 3 functions ECERROR, ECWARNING and ECINFORMATION */
     /* The mapping between different error situations and the reaction on */
     /* it strongly depends on the target hardware architecture, i.e.if it */
     /* has any output device or not.                                      */
     switch (xmk_TmpErrorNumber)
     {
        case ERR_N_UNDEFINED_ERROR          : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_CREATE_NO_MEM            : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_CREATE_INSTANCE          : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_SDL_DISCARD              : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_DIVIDE_BY_ZERO           : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_EMPTY_CHARSTRING         : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_ERROR_CHARSTRING         : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_FATAL_CHARSTRING         : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_NO_FREE_SIGNAL           : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_PARAMETER_MEM_ALLOC      : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_INDEX_SIGNAL             : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_SYSTEM_SIGNAL            : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_NO_CONT_PRIO             : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_NO_COR_PRIO              : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_xRouteSignal             : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_NO_REC_AVAIL             : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_NO_FREE_TIMER            : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_PID_INDEX                : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_SEND_TO_NULLPID          : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_TRANS_TIME               : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_xOutEnv                  : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_ILLEGAL_CMD              : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_TESTER_MESSAGE           : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_CHKSUM              : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_DEST_BUFFER         : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_ENC_MEMORY          : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_ENC_LENGTH          : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_NOT_IMPL            : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_LINK_SYNC                : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_DATA_LINK                : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_DECODE_METHOD            : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_RING_OVERFLOW            : ECWARNING (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_INIT_QUEUE               : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_PREDEFINED_OPERATOR_CALL : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_INIT_SDL_MEM             : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_MEM_PARAM                : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_MEM_NO_FREE              : ECERROR   (xmk_TmpErrorNumber);
                                              break;
        case ERR_N_MEM_ILLMBLOCK            : ECERROR   (xmk_TmpErrorNumber);
                                              break;

        default                             : ECERROR   (ERR_N_UNKNOWN);
                                              break;
      }
    #endif /* ... USE_THE_FOLLOWING_EXAMPLE */

  #endif

  #ifdef XMK_ADD_PRINTF_USER
    XMK_TRACE_EXIT("ErrorHandler");
  #endif

} /* END OF FUNCTION */


#endif /* ...  ! XMK_USE_NO_ERR_CHECK */

#ifndef XMK_USE_RECEIVER_PID_IN_SIGNAL

/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : xRouteSignal                                                 |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|                 This function is called by the Cmicro Kernel, if SDL signals |
|                 have no receiver.                                            |
|                 (undef  XMK_USE_RECEIVER_PID_IN_SIGNAL)                      |
|                 This might be useful in very small systems in order to spare |
|                 some RAM memory.                                             |
|                 The following restrictions apply :                           |
|                   * The SDL System must not contain anything other than the  |
|                     following process declaration. (x,1)                     |
|                   * For each Signal in the SDL System, there is to be only   |
|                     one Receiver process (no signal may be sent to more than |
|                     one processtype).                                        |
|                   * no dynamic process creation is used                      |
|                     (Create-Symbol is not used)                              |
|                                                                              |
|                 Note, timers are represented as signals, and that this       |
|                 xRouteSignal - function also has to map timers to Receiver   |
|                 Processes.                                                   |
|                                                                              |
|                 Important Rule : Each Signal- and Timer is represented by    |
|                 a systemwide unique integer number.                          |
|                                                                              |
|  Parameter    : xmk_T_SIGNAL  - xmk_TmpSignalID                              |
|                                                                              |
|  Return       : xPID  Process - PID or xNULLPID, if no receiver is defined   |
|                                     for the given signal.                    |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO

   /* ANSI - Style */
   xPID xRouteSignal  ( xmk_T_SIGNAL xmk_TmpSignalID )

#else

   /* Kernighan-Ritchie-Style */
   xPID xRouteSignal ( xmk_TmpSignalID )
   xmk_T_SIGNAL       xmk_TmpSignalID;

#endif

/*-FDEF E*/
{


  /*
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  ** P L E A S E _ M O D I F Y _ T H E _ F O L L O W I N G _ C O D E 
  */

   /*
   ** Please insert appropriate code here to map Signal ID's
   ** to Process - Type - ID's (XPTID_ProcessName in generated code).
   ** Keep in mind that this function might be called from within
   ** a critical path.
   ** Include <systemname>.ifc to get signal names and process' XPTID
   */
   switch (xmk_TmpSignalID)
   {
      /*
      **  S D L   T i m e r s ...
      */
      case SDL_Timer1  : return (XPTID_ProcessName)         break;
      case SDL_Timer2  : return (XPTID_ProcessName)         break;
      case SDL_Timer3  : return (XPTID_ProcessName)         break;
      case SDL_TimerN  : return (XPTID_ProcessName)         break;

      /*
      **  O r d i n a r y  S D L   S i g n a l s ...
      */
      case SDL_Signal1 : return (XPTID_ProcessName)         break;
      case SDL_Signal2 : return (XPTID_ProcessName)         break;
      case SDL_Signal3 : return (XPTID_ProcessName)         break;
             ......
      case SDL_SignalN : return (XPTID_ProcessName)         break;

      default          : ErrorHandler (ERR_N_NO_RCV); 
                         return (xNULLPID)                  break;
   }


} /* END OF FUNCTION */

#endif /* ... XMK_USE_RECEIVER_PID_IN_SIGNAL */




#ifdef XMK_USE_KERNEL_WDTRIGGER

/*+FHDR E*/
/*
+------------------------------------------------------------------------------+
|  Functionname : WatchdogTrigger                                              |
|  Author       : S&P Media GmbH Germany                                       |
+------------------------------------------------------------------------------+
|                                                                              |
|  Description :                                                               |
|                 If scaled so, this function is called by the Cmicro Kernel   |
|                 each time an SDL-transition is executed.                     |
|                                                                              |
|                 ** CAUTION **                                                |
|                 -------------------                                          |
|                 Be sure, that the timeout used for the Watchdog is longer    |
|                 than the longest SDL-Transition (in the case of non preemp-  |
|                 tive Cmicro Kernel). If the Cmicro Kernel is scaled to       |
|                 work preemptive, then the Watchdog Trigger should not be     |
|                 used, because the execution time of transitions can never    |
|                 be calculated.                                               |
|                                                                              |
|                                                                              |
|                                                                              |
|  Parameter    :                                                              |
|                 void                                                         |
|                                                                              |
|  Return       : -                                                            |
|                                                                              |
+------------------------------------------------------------------------------+
*/
/*-FHDR E*/

/*+FDEF E*/

#ifndef XNOPROTO
   /* ANSI - Style */
   void WatchdogTrigger ( void )
#else
   /* Kernighan-Ritchie-Style */
   void WatchdogTrigger ( )
#endif

/*-FDEF E*/
{

  #ifdef XMK_ADD_PRINTF_USER
    XMK_FUNCTION("WatchdogTrigger");
  #endif /* ... XMK_ADD_PRINTF_USER */

   /* ........................................... */
   /* ........................................... */
   /* ........................................... */

  #ifdef XMK_ADD_PRINTF_USER
    XMK_TRACE_EXIT("WatchdogTrigger");
  #endif /* ... XMK_ADD_PRINTF_USER */


} /* END OF FUNCTION */

#endif /* XMK_USE_KERNEL_WDTRIGGER */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -