Final assignment for the course "Real Time and Embedded Systems" of THMMY in AUTH university.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

276 lines
7.8 KiB

/* ==========================================
CMock Project - Automatic Mock Generation for C
Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
[Released under MIT License. Please refer to license.txt for details]
========================================== */
typedef unsigned char OSServiceIdType;
typedef void (*OSEKOS_VOIDFUNCPTR)(void);
typedef unsigned char StatusType;
typedef unsigned char OSEK_U8;
typedef unsigned short OSEK_U16;
typedef unsigned long OSEK_U32;
void OSEKOSDisableAll(void);
void OSEKOSEnableAll(void);
typedef unsigned long * OSEKOSSaveType;
typedef void OSEK_TASK;
typedef OSEK_U8 OSEKOSPrioType;
enum {
Task_DbgCAN
,
Task_ALS
,
CalibrateMagTask
,
Task_IAQ
,
SmartBeam
,
Task_QbertTestImage
,
Task_TestQbertMem
,
Task_Cyclic1000
,
ProcessMagForCompass
,
ReadMag
,
Task_Cyclic10
,
Task_Wdm
,
BackgroundTask
,
Task_Cyclic20
,
Task_Cyclic2
};
OSEK_TASK OSEKOS_T_Task_DbgCAN(void);
OSEK_TASK OSEKOS_T_Task_ALS(void);
OSEK_TASK OSEKOS_T_CalibrateMagTask(void);
OSEK_TASK OSEKOS_T_Task_IAQ(void);
OSEK_TASK OSEKOS_T_SmartBeam(void);
OSEK_TASK OSEKOS_T_Task_QbertTestImage(void);
OSEK_TASK OSEKOS_T_Task_TestQbertMem(void);
OSEK_TASK OSEKOS_T_Task_Cyclic1000(void);
OSEK_TASK OSEKOS_T_ProcessMagForCompass(void);
OSEK_TASK OSEKOS_T_ReadMag(void);
OSEK_TASK OSEKOS_T_Task_Cyclic10(void);
OSEK_TASK OSEKOS_T_Task_Wdm(void);
OSEK_TASK OSEKOS_T_BackgroundTask(void);
OSEK_TASK OSEKOS_T_Task_Cyclic20(void);
OSEK_TASK OSEKOS_T_Task_Cyclic2(void);
OSEK_TASK OSEKOS_Twrap_Task_DbgCAN(void);
OSEK_TASK OSEKOS_Twrap_Task_ALS(void);
OSEK_TASK OSEKOS_Twrap_CalibrateMagTask(void);
OSEK_TASK OSEKOS_Twrap_Task_IAQ(void);
OSEK_TASK OSEKOS_Twrap_SmartBeam(void);
OSEK_TASK OSEKOS_Twrap_Task_QbertTestImage(void);
OSEK_TASK OSEKOS_Twrap_Task_TestQbertMem(void);
OSEK_TASK OSEKOS_Twrap_Task_Cyclic1000(void);
OSEK_TASK OSEKOS_Twrap_ProcessMagForCompass(void);
OSEK_TASK OSEKOS_Twrap_ReadMag(void);
OSEK_TASK OSEKOS_Twrap_Task_Cyclic10(void);
OSEK_TASK OSEKOS_Twrap_Task_Wdm(void);
OSEK_TASK OSEKOS_Twrap_BackgroundTask(void);
OSEK_TASK OSEKOS_Twrap_Task_Cyclic20(void);
OSEK_TASK OSEKOS_Twrap_Task_Cyclic2(void);
typedef OSEK_U8 TaskType;
typedef OSEK_U8 TaskStateType;
typedef OSEK_U16 EventMaskType;
typedef OSEK_U8 ResourceType;
void OSEKOSEnableSystemTimers(void);
typedef OSEK_U8 CounterType;
typedef OSEK_U32 TickType;
typedef OSEK_U8 AlarmType;
void OSEKOS_ISR_CanTxInterrupt(void);
void OSEKOS_ISR_CanRxInterrupt(void);
void OSEKOS_ISR_CanErrInterrupt(void);
void OSEKOS_ISR_SCIRxInterrupt(void);
void OSEKOS_ISR_SCITxInterrupt(void);
void OSEKOS_ISR_UP_DMA_Interrupt_0(void);
void OSEKOS_ISR_UP_DMA_Interrupt_1(void);
void OSEKOS_ISR_UP_DMA_Interrupt_2(void);
void OSEKOS_ISR_UP_DMA_Interrupt_3(void);
void OSEKOS_ISR_CompFreqHandler(void);
void OSEKOS_ISR_AmbientReturnInt(void);
void OSEKOS_ISR_GlareReturnInt(void);
void OSEKOS_ISR_ALSTimeoutInt(void);
void OSEKOS_ISR_LINTimerInt(void);
void OSEKOS_ISR_LINDelayInt(void);
void OSEKOS_ISR_TimerMExpire(void);
void OSEKOS_ISR_LINRxTx_SCI1(void);
void OSEKOS_ISR_CanRxInterrupt_1(void);
void OSEKOS_ISR_LINError_SCI1(void);
void OSEKOS_ISR_SysCounter(void);
// defined multiple times (slightly different forms) These should be ignored because they are externed
extern void OSEKOS_ISR_CanTxInterrupt( void );
extern void OSEKOS_ISR_CanRxInterrupt( void );
unsigned long OSEKOSrtcGetSeconds ( void );
void OSEKOSrtcIncrement ( unsigned long nsec );
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
};
typedef struct
{
TickType maxallowedvalue;
TickType ticksperbase;
} AlarmBaseType;
typedef TaskType *TaskRefType;
typedef TaskStateType *TaskStateRefType;
typedef EventMaskType *EventMaskRefType;
typedef TickType *TickRefType;
typedef AlarmBaseType *AlarmBaseRefType;
typedef OSEK_U8 AppModeType;
typedef OSEK_U8 OSEKOSTaskActCntType;
TaskType OSEKOStidact;
OSEKOSPrioType OSEKOSrunprio;
StatusType OSEKOSError ( register StatusType );
void ErrorHook ( StatusType );
void StartupHook ( void );
void ShutdownHook ( StatusType );
int getUsedTaskStack ( TaskType );
int getUnusedTaskStack ( TaskType );
int getUsedIsrStack ( void );
int getUnusedIsrStack ( void );
void OSEKOStaskStackCheckInit ( void );
signed char OSEKOStaskStackCheck ( OSEK_U8 * );
signed char OSEKOSisrStackCheck ( OSEK_U8 * );
void OSEKOStaskStackCheckFatal ( OSEK_U8 * );
void OSEKOSisrStackCheckFatal ( OSEK_U8 * );
OSEK_U8 * OSEKOSgetStackPointer ( void );
void OSEKOSTaskSwitch ( void );
StatusType OSEKOSReturn ( StatusType );
StatusType OSEKOSActivateTask ( register TaskType );
void OSEKOSTerminateTask ( TaskType, TaskType );
extern void OSEKOSGetResource ( ResourceType );
extern void OSEKOSReleaseResource ( ResourceType );
int OSEKOSSetEvent ( TaskType, EventMaskType );
int OSEKOSWaitEvent ( EventMaskType );
TickType OSEKOSGetAlarm(register AlarmType);
void OSEKOSSetAlarm ( AlarmType, TickType, TickType );
StatusType OSEKOSSetAbsAlarm ( AlarmType a, TickType b, TickType c );
StatusType OSEKOSCancelAlarm ( register AlarmType );
void OSEKOSAdvCntr ( void );
AppModeType GetActiveApplicationMode ( void );
void StartOS ( AppModeType );
void OSEKOSShutdownOS ( StatusType );
StatusType ActivateTask ( TaskType A );
StatusType TerminateTask ( void );
StatusType ChainTask ( TaskType A );
StatusType GetTaskState ( TaskType A, TaskStateRefType B );
StatusType GetTaskID ( TaskRefType A );
StatusType Schedule ( void );
StatusType GetResource ( ResourceType A );
StatusType ReleaseResource ( ResourceType A );
StatusType SetEvent ( TaskType A, EventMaskType B );
StatusType ClearEvent ( EventMaskType A );
StatusType WaitEvent ( EventMaskType A );
StatusType GetEvent ( TaskType A, EventMaskRefType B );
StatusType GetAlarm ( AlarmType A, TickRefType B );
StatusType GetAlarmBase ( AlarmType A, AlarmBaseRefType B );
StatusType SetRelAlarm ( AlarmType A, TickType B, TickType C );
StatusType SetAbsAlarm ( AlarmType A, TickType B, TickType C );
StatusType CancelAlarm ( AlarmType A );
StatusType AdvCntr ( CounterType A );
StatusType IAdvCntr ( CounterType A );
void SuspendOSInterrupts ( void );
void ResumeOSInterrupts ( void );
void SuspendAllInterrupts ( void );
void ResumeAllInterrupts ( void );
void DisableAllInterrupts ( void );
void EnableAllInterrupts ( void );
void OSEKOSDisable(void);
void OSEKOSEnable(void);
void OSEKOSAsmIDispatch(unsigned long *);
void OSEKOSAsmDispatch(OSEKOSPrioType p);
void OSEKOSStartupEnable(void);
void OSEKOSNop(void);
unsigned int OSEKOSV850CheckIsrSwitch(void);
void OSEKOSV850InitInterrupts(void);
void OSEKOSV850SetupInterrupts();
void OSEKOSV850SyncContextLoad(OSEKOSSaveType);
void OSEKOSV850SyncContextLoadFromIRQ(OSEKOSSaveType);
void OSEKOSV850ASyncContextLoad(OSEKOSSaveType);
void OSEKOSV850ASyncContextLoadFromIRQ(OSEKOSSaveType);
// arrays of function pointers - they look like function prototypes
void ( ( * const OSEKOStaskStartAddress [10] ) ( void ) );
StatusType (* OSEKOStaskStatuses [10][5]) ( void );
void OSEKOSV850StartContext
(
OSEK_TASK (( * const ) ( void )),
OSEK_U8 * const
);
void OSEKOSV850StartContextFromIRQ
(
OSEK_TASK (( * const ) ( void )),
OSEK_U8 * const
);
void OSEKOSSuspendOSInterrupts(void);
void OSEKOSResumeOSInterrupts(void);
void OSEKOSSuspendAllInterrupts(void);
void OSEKOSResumeAllInterrupts(void);
void OSEKOScheckSuspendResumeNesting(void);
void OSEKOSgetSR(void);
void OSEKOSEnableInterrupt_intern(int nr);
void OSEKOSDisableInterrupt_intern(int nr);