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

📄 erc.c

📁 test file nucleus source
💻 C
📖 第 1 页 / 共 3 页
字号:
/*************************************************************************//*                                                                       *//*               Copyright Mentor Graphics Corporation 2002              *//*                         All Rights Reserved.                          *//*                                                                       *//* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS  *//* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS   *//* SUBJECT TO LICENSE TERMS.                                             *//*                                                                       *//*************************************************************************//*************************************************************************//*                                                                       *//* FILE NAME                                               VERSION       *//*                                                                       *//*      erc.c                                          Nucleus PLUS 1.14 *//*                                                                       *//* COMPONENT                                                             *//*                                                                       *//*      ER - Error Management                                            *//*                                                                       *//* DESCRIPTION                                                           *//*                                                                       *//*      This file contains the core routines for the Error management    *//*      component.                                                       *//*                                                                       *//* DATA STRUCTURES                                                       *//*                                                                       *//*      None                                                             *//*                                                                       *//* FUNCTIONS                                                             *//*                                                                       *//*      ERC_System_Error                    System error function        *//*      ERC_Assert                          System assertion routine     *//*                                                                       *//* DEPENDENCIES                                                          *//*                                                                       *//*      tc_defs.h                           Thread control definitions   *//*      er_extr.h                           Error handling functions     *//*                                                                       *//* HISTORY                                                               *//*                                                                       *//*         DATE                    REMARKS                               *//*                                                                       *//*      03-01-1993      Created initial version 1.0                      *//*      04-19-1993      Verified version 1.0                             *//*      03-01-1994      Modified copyright notice,                       *//*                      resulting in version 1.1                         *//*                                                                       *//*      03-18-1994      Verified version 1.1                             *//*      04-17-1996      updated to version 1.2                           *//*      03-24-1998      Released version 1.3.                            *//*      11-24-1998      Added ERC_Assert routine.                        *//*      03-26-1999      Released 1.11m (new release                      *//*                        numbering scheme)                              *//*      04-07-1999      Release 1.11mA                                   *//*      04-17-2002      Released version 1.13m                           *//*      11-07-2002      Released version 1.14                            *//*************************************************************************/#define         NU_SOURCE_FILE#ifdef          NU_ERROR_STRING#include        <stdio.h>                   /* Standard I/O functions    */#endif#include        "tc_defs.h"                 /* Thread control constants  */#include        "er_extr.h"                 /* Error handling functions  */#ifdef NU_DEBUG_MEMORY#include        "er_defs.h"               /* Error management structures */#include        "dm_extr.h"               /* Memory management           */#include        "ncl\inc\string.h"        /* memcmp & memcpy functions   */#include        "ncl\inc\nu_ncl.h"        /* memcmp & memcpy functions   */extern NU_MEMORY_POOL  NU_DEBUG_POOL;extern const UINT8 ERD_MemoryAllocationHead[];extern const UINT8 ERD_MemoryAllocationFoot[];extern ER_DEBUG_ALLOCATION *ERD_RecentAllocation;extern UINT32 ERD_AllocationCount;extern UINT32 ERD_AllocationSequenceCounter;extern UINT32 ERD_TotalMemoryAllocated;extern UINT32 ERD_TotalMemoryAllocations;extern UINT32 ERD_MaxTotalMemoryAllocated;extern UINT32 ERD_MaxTotalMemoryAllocations;#endif /* NU_DEBUG_MEMORY *//* Define external inner-component global data references.  */extern  INT     ERD_Error_Code;#ifdef          NU_ERROR_STRINGextern  CHAR    ERD_Error_String[];#endif#ifdef NU_DEBUGextern UNSIGNED ERD_Assert_Count;#endif/* Define direct access to a thread component variable.  */extern  VOID   *TCD_Current_Thread;/*************************************************************************//*                                                                       *//* FUNCTION                                                              *//*                                                                       *//*      ERC_System_Error                                                 *//*                                                                       *//* DESCRIPTION                                                           *//*                                                                       *//*      This function processes system errors detected by various        *//*      system components.  Typically an error of this type is           *//*      considered fatal.                                                *//*                                                                       *//* CALLED BY                                                             *//*                                                                       *//*      Various Components                                               *//*                                                                       *//* CALLS                                                                 *//*                                                                       *//*      None                                                             *//*                                                                       *//* INPUTS                                                                *//*                                                                       *//*      error_code                          Code of detected system error*//*                                                                       *//* OUTPUTS                                                               *//*                                                                       *//*      None                                                             *//*                                                                       *//* HISTORY                                                               *//*                                                                       *//*         DATE                    REMARKS                               *//*                                                                       *//*      03-01-1993      Created initial version 1.0                      *//*      04-19-1993      Verified version 1.0                             *//*                                                                       *//*************************************************************************/VOID  ERC_System_Error(INT error_code){#ifdef          NU_ERROR_STRINGINT     i;CHAR   *pointer;CHAR    name[NU_MAX_NAME+1];#endifNU_SUPERV_USER_VARIABLES    /* Switch to supervisor mode */    NU_SUPERVISOR_MODE();    /* First place the error code into the global variable.  */    ERD_Error_Code =  error_code;#ifdef          NU_ERROR_STRING    /* Build string that corresponds to the error.  */    switch(error_code)    {    case        NU_ERROR_CREATING_TIMER_HISR:        /* Build string that indicates an error occurred creating the timer           HISR.  */        sprintf(ERD_Error_String,"%s\n", "Error Creating Timer HISR");        break;    case        NU_ERROR_CREATING_TIMER_TASK:        /* Build string that indicates an error occurred creating the timer           Task.  */        sprintf(ERD_Error_String,"%s\n", "Error Creating Timer Task");        break;    case        NU_STACK_OVERFLOW:        /* Build string that indicates a stack overflow occurred.  */        name[NU_MAX_NAME] =  (CHAR) 0;        pointer =  (((TC_TCB *) TCD_Current_Thread) -> tc_name);        for (i = 0; i < NU_MAX_NAME; i++)            name[i] =  *pointer++;        sprintf(ERD_Error_String,"%s %s\n", "Stack Overflow in task/HISR: ",                                                                        name);        break;    case        NU_UNHANDLED_INTERRUPT:        /* Build string that indicates an error occurred because of an           unhandled interrupt.  */        sprintf(ERD_Error_String,"%s\n", "Unhandled interrupt error");        break;    }#endif    /* This function cannot return, since the error is fatal.  */    while(1)    {    }    /* No need to return to user mode because of the infinite loop. */    /* Returning to user mode will cause warnings with some compilers. */}#ifdef NU_DEBUG_MEMORY/*************************************************************************//*                                                                       *//* FUNCTION                                                              *//*                                                                       *//*      ERC_Memory_To_Debug                                              *//*                                                                       *//* DESCRIPTION                                                           *//*                                                                       *//*      This function returns a pointer to the ER_DEBUG_ALLOCATION that  */

⌨️ 快捷键说明

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