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

📄 os.h

📁 基于16位单片机的符合osek标准的操作系统
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************
 * 
 * created by ProOSEK 4 Configurator
 * 
 * (c) 1998-2002 3SOFT GmbH
 * Frauenweiherstr. 14
 * 91058 Erlangen
 * GERMANY
 * 
 * see: www.3SOFT.de
 * 
 *****************************************************
 * Host-System       : Windows XP
 * Date              : 5/15/06 7:31 PM
 * Licence           : ARCH_HC12-AUTOSOFT-203566-15Feb2006, 15:48-01Mar2007-1577067287
 *****************************************************
 * This file is generated automatically. DO NOT EDIT!!
 *****************************************************/
#ifndef __OSEK__OS_H
#define __OSEK__OS_H
#define INCLUDE_OSEKOS 1
/*****************************************************
 * RevisionNumber     : 2 
 * RevisionDate       : 2004-12-07
 * 
 *****************************************************/
#define __PROOSEK__        1
#define OSEKOS_V_2_2    1
# include"board.h"
typedef unsigned char  OSEK_U8;  
typedef unsigned char OSServiceIdType; 
typedef void (*OSEKOS_VOIDFUNCPTR)(void);  
# ifndef STATUSTYPEDEFINED 
typedef unsigned char  StatusType;     
#define STATUSTYPEDEFINED 1
#define E_OK 0
# endif 
#define OSEKOS_BCC1                 0
#define OSEKOS_BCC2                 1
#define OSEKOS_ECC1                 2
#define OSEKOS_ECC2                 3
#define OSServiceId_ActivateTask 3
#define OSServiceId_TerminateTask 5
#define OSServiceId_ChainTask 7
#define OSServiceId_GetTaskState 9
#define OSServiceId_GetTaskID 11
#define OSServiceId_Schedule 13
#define OSServiceId_GetResource 15
#define OSServiceId_ReleaseResource 17
#define OSServiceId_SetEvent 19
#define OSServiceId_ClearEvent 21
#define OSServiceId_WaitEvent 23
#define OSServiceId_GetEvent 25
#define OSServiceId_GetAlarm 27
#define OSServiceId_GetAlarmBase 29
#define OSServiceId_SetRelAlarm 31
#define OSServiceId_SetAbsAlarm 33
#define OSServiceId_CancelAlarm 35
#define OSServiceId_SuspendOSInterrupts 37
#define OSServiceId_ResumeOSInterrupts 39
#define OSServiceId_SuspendAllInterrupts 41
#define OSServiceId_ResumeAllInterrupts 43
#define OSServiceId_DisableAllInterrupts 45
#define OSServiceId_EnableAllInterrupts 47
#define OSServiceId_AdvanceCounter 63
#define OSServiceId_IAdvanceCounter 65
#define NON                0
#define FULL                1
#define MIX                2
# ifdef OSEKOS_USE_COV 
# include "cov.h"
# else 
#define OSEKOS_COV(a) 0
# endif 
# if (defined(__HIWARE__))
# if (defined(__BANKED__))
# pragma CODE_SEG NON_BANKED
# pragma CONST_SEG CONST_NON_BANKED
# endif
# endif
typedef unsigned short OSEK_U16;       
typedef unsigned long  OSEK_U32;       
typedef unsigned char * OSEKOSSaveType;
typedef unsigned long OSEKOStimestamp_t;
extern void OSEKOSUserMain(void);
/*****************************************************
 * RevisionNumber     : 2 
 * RevisionDate       : 2004-12-07
 * 
 *****************************************************/
#ifndef INCLUDE_LocalInclude
#include "MCS912DP256.h"
#else
#include "MCS912DP256.h"
#endif
#define __ARCH_HC12__   1
#define __uC_MCS912DP256__ 1
#define OSEK_CONST const
#define GENERATION_ID_OS_H 936444223UL
#define __PROOSEK_VER__ 4
#define __PROOSEK_REV__ 2
#define __PROOSEK_CORE_BUILD__ 20041207
#define __PROOSEK_ARCH_BUILD__ 20041207
#define SCHEDULING MIX
#ifdef __HIWARE__
typedef void OSEK_TASK;
#else
#ifdef __COSMIC__
#ifdef __BANKED__
typedef @far void OSEK_TASK;
#else 
typedef void OSEK_TASK;
#endif
#else
typedef void OSEK_TASK;
#endif
#endif
#define OSEK_CC 1
#define OSEKOS_EXTENDED_MODE 1
#define STARTUPHOOK
#ifndef INCLUDE_LocalInclude
#include "timerHC12.h"
#else
#include "timerHC12.h"
#endif
#define PMAX 6
typedef OSEK_U8 OSEKOSPrioType;
enum {
Loop
,
InitTask
,
Cyclic
,
KlineCommunicationTask
,
CreatRespMesKWP2000Task
,
KLineTimerTask


};
extern OSEK_TASK OSEKOS_T_Loop(void);
extern OSEK_TASK OSEKOS_T_InitTask(void);
extern OSEK_TASK OSEKOS_T_Cyclic(void);
extern OSEK_TASK OSEKOS_T_KlineCommunicationTask(void);
extern OSEK_TASK OSEKOS_T_CreatRespMesKWP2000Task(void);
extern OSEK_TASK OSEKOS_T_KLineTimerTask(void);
extern OSEK_TASK OSEKOS_Twrap_Loop(void);
extern OSEK_TASK OSEKOS_Twrap_InitTask(void);
extern OSEK_TASK OSEKOS_Twrap_Cyclic(void);
extern OSEK_TASK OSEKOS_Twrap_KlineCommunicationTask(void);
extern OSEK_TASK OSEKOS_Twrap_CreatRespMesKWP2000Task(void);
extern OSEK_TASK OSEKOS_Twrap_KLineTimerTask(void);
#define ETMAX 0
#define BTMAX 6
#define TMAX 6
typedef OSEK_U8 TaskType;
#define SIZEOF_TaskType 1
typedef OSEK_U8 TaskStateType;
#define SMAX 2
extern OSEK_CONST OSEK_U32 OSEKOStaskStartAddressBanked[];
#define ATMAX 7
#define INT_STACK_SIZE 30
#define OSEKOS_STARTOF_ISRSTACK 14
#define OSEKOStotal_stack_size 198
#define OSEKOS_MAX_STACK_TASK Loop
typedef OSEK_U8 EventMaskType;

/****************************************************/
/*                   Resource Data                  */
/****************************************************/
#define RMAX 2
#define RES_SCHEDULER 1
#define INVALID_RESOURCE 2
#define OSEKOS_ARCH_MAX_LEVEL 1
typedef OSEK_U8 ResourceType;
#define Res_CounterVar 0
extern ResourceType OSEKOSresLIFOindex;
#define C_SysCounter 0
#define SysCounter 0
#define SysCounter_ACtr() AdvCntr(SysCounter)
#define SysCounter_IACtr() IAdvCntr(SysCounter)
#define CMAX 1
typedef OSEK_U8 CounterType;
#define CMAX_STD 1
#ifdef INCLUDE_OSEKOS_20
#define OSMAXTICK 1000
#define OSTICKSPERTIME 100
#endif
#define OSMAXALLOWEDVALUE 1000
#define OSTICKSPERBASE 100
#define OSMINCYCLE 1
#define OSTICKDURATION boardGetTimeInNsNOT_USED()
#define OSMAXALLOWEDVALUE_SysCounter 1000
#define OSTICKSPERBASE_SysCounter 100
#define OSMINCYCLE_SysCounter 1
typedef OSEK_U16 TickType;
#define AlarmActCyclic 0
#define AlarmActKLineTimer 1
#define AMAX 2
typedef OSEK_U8 AlarmType;
#define AMAX_STD AMAX
#define ISR(NAME) void OSEKOS_ISR_##NAME(void)
#ifdef __HIWARE__
#define ISR1(name) OSEKOS_ISR_##name (void)
#endif
#ifdef __COSMIC__
#ifdef __BANKED__
#define ISR1(name) @near @interrupt void name(void)
#else
#define ISR1(name) @interrupt void name(void)
#endif
#endif
#define OSEKOSEnableSystemTimers() do{OSEKOS_timerInit_RTI();}while(0)
#ifdef INCLUDE_VectorTable
#ifndef DC_FLARE_VECTORTABLE
extern const OSEK_U16 OSEKOSVectorTable[];
#else /*DC_FLARE_VECTORTABLE*/
typedef struct{
    char opcode;
    const OSEK_U16 vectab;
} tIntJmpTable;
extern const tIntJmpTable ApplIntJmpTable[];
#endif /*DC_FLARE_VECTORTABLE*/
#endif
#define INVALIDMESSAGE 0
#define         ___ActivateTask(A)           __ActivateTask(A)
#define         ___TerminateTask()           __TerminateTask()
#define         ___ChainTask(A)              __ChainTask(A)
#define         ___GetTaskState(A,B)         __GetTaskState(A,B)
#define         ___GetTaskID(A)              __GetTaskID(A)
#define         ___Schedule()                __Schedule()
#define         ___GetResource(A)            __GetResource(A)
#define         ___ReleaseResource(A)        __ReleaseResource(A)
#define         ___SetEvent(A,B)             __SetEvent(A,B)
#define         ___ClearEvent(A)             __ClearEvent(A)
#define         ___WaitEvent(A)              __WaitEvent(A)
#define         ___GetEvent(A,B)             __GetEvent(A,B)
#define         ___GetAlarm(A,B)             __GetAlarm(A,B)
#define         ___GetAlarmBase(A,B)         __GetAlarmBase(A,B)
#define         ___SetRelAlarm(A,B,C)        __SetRelAlarm(A,B,C)
#define         ___SetAbsAlarm(A,B,C)        __SetAbsAlarm(A,B,C)
#define         ___CancelAlarm(A)            __CancelAlarm(A)
#define         ___AdvCntr(A)                __AdvCntr(A)
#define         ___IAdvCntr(A)               __IAdvCntr(A)
#define         ___SuspendOSInterrupts()     OSEKOSSuspendOSInterrupts()
#define         ___ResumeOSInterrupts()      OSEKOSResumeOSInterrupts()
#define         ___SuspendAllInterrupts()    OSEKOSSuspendAllInterrupts()
#define         ___ResumeAllInterrupts()     OSEKOSResumeAllInterrupts()
#define         ___DisableAllInterrupts()    OSEKOSDisableAllInterrupts()
#define         ___EnableAllInterrupts()     OSEKOSEnableAllInterrupts()
# ifndef INCLUDE_RealOSEKFunctions 
#define         ActivateTask(A)           (OSEKOS_COV(445),___ActivateTask(((TaskType)A)))
#define         TerminateTask()           (OSEKOS_COV(446),___TerminateTask())
#define         ChainTask(A)              (OSEKOS_COV(447),___ChainTask(((TaskType)A)))
#define         GetTaskState(A,B)         (OSEKOS_COV(448),___GetTaskState(((TaskType)A),B))
#define         GetTaskID(A)              (OSEKOS_COV(449),___GetTaskID(A))
#define         Schedule()                (OSEKOS_COV(450),___Schedule())
#define         GetResource(A)            (OSEKOS_COV(451),___GetResource(((ResourceType)A)))
#define         ReleaseResource(A)        (OSEKOS_COV(452),___ReleaseResource(((ResourceType)A)))
#define         SetEvent(A,B)             (OSEKOS_COV(453),___SetEvent(((TaskType)A),((EventMaskType)B)))
#define         ClearEvent(A)             (OSEKOS_COV(454),___ClearEvent(((EventMaskType)A)))
#define         WaitEvent(A)              (OSEKOS_COV(455),___WaitEvent(((EventMaskType)A)))
#define         GetEvent(A,B)             (OSEKOS_COV(456),___GetEvent(((TaskType)A),B))
#define         GetAlarm(A,B)             (OSEKOS_COV(457),___GetAlarm(((AlarmType)A),B))
#define         GetAlarmBase(A,B)         (OSEKOS_COV(458),___GetAlarmBase(((AlarmType)A),B))
#define         SetRelAlarm(A,B,C)        (OSEKOS_COV(459),___SetRelAlarm(((AlarmType)A),((TickType)B),((TickType)C)))
#define         SetAbsAlarm(A,B,C)        (OSEKOS_COV(460),___SetAbsAlarm(((AlarmType)A),((TickType)B),((TickType)C)))
#define         CancelAlarm(A)            (OSEKOS_COV(461),___CancelAlarm(((AlarmType)A)))
#define         AdvCntr(A)                (OSEKOS_COV(462),___AdvCntr(A))
#define         IAdvCntr(A)               (OSEKOS_COV(463),___IAdvCntr(A))
#define         SuspendOSInterrupts()     ___SuspendOSInterrupts()
#define         ResumeOSInterrupts()      ___ResumeOSInterrupts()
#define         SuspendAllInterrupts()    ___SuspendAllInterrupts()
#define         ResumeAllInterrupts()     ___ResumeAllInterrupts()
#define         DisableAllInterrupts()    ___DisableAllInterrupts()
#define         EnableAllInterrupts()     ___EnableAllInterrupts()
# endif 
#define TASK(a) OSEK_TASK OSEKOS_T_##a(void)
#define ALARMCALLBACK(a) void OSEKOS_ACB_##a(void)
#define stackStart(TASK)      OSEKOStaskStack[TASK]
# ifndef OSEKOSSETneuregie
#define OSEKOSSETneuregie(x) (OSEKOSneuregie|=(x))
# endif
enum {
        E_OS_ACCESS=1,     
        E_OS_CALLEVEL=2,   
        E_OS_ID=3,         
        E_OS_LIMIT=4,      
        E_OS_NOFUNC=5,     
        E_OS_RESOURCE=6,   
        E_OS_STATE=7,      
        E_OS_VALUE=8,      
        E_OS_SYS_StackOverflow=20,
        E_OS_SYS_StackUnderflow=21,
        E_OS_SYS_INIT=22,
        E_OS_SYS_CONFIG=23,
        E_OS_SYS_CODE=24,
        E_OS_SYS_TOOL=25,
	E_OS_SYS_TimerRange=26 
     };
enum {
        SUSPENDED         = 0x00,
        READY                = 0x01,
        RUNNING                = 0x02,
        WAITING                = 0x03,
        INTSTART        = 0x08,                
        SETSTART        = 0x10,         
        NPRTASK         = 0x20,                
        USEFP           = 0x40          
     };
#define OSDEFAULTAPPMODE        0
#define TSTATBITS (SUSPENDED|READY|RUNNING|WAITING)
#define OSEK_TASK_TERMINATION                 1
#define OSEK_TASK_WAITING                 2
#define OSEKOS_INVALID_PRIO        (PMAX+1)
#define INVALID_TASK          (TMAX)
#define INVALID_ALARM         (AMAX)
#define DeclareTask(a)        extern TaskType   OSEKOStidact
#define DeclareResource(a)    extern TaskType   OSEKOStidact
#define DeclareEvent(a)       extern TaskType   OSEKOStidact
#define DeclareAlarm(a)       extern TaskType   OSEKOStidact
#define DeclareCounter(a)     extern TaskType   OSEKOStidact
typedef struct {
               TickType maxallowedvalue;
        TickType ticksperbase;
        TickType mincycle;
} AlarmBaseType;
typedef TaskType           *TaskRefType;
typedef TaskStateType      *TaskStateRefType;
typedef EventMaskType      *EventMaskRefType;

⌨️ 快捷键说明

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