Files

127 lines
4.1 KiB
C
Raw Permalink Normal View History

2026-03-31 13:10:37 +02:00
/* ###################################################################
** THIS COMPONENT MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
** Filename : CS1.h
** Project : Landungsbruecke_KDS_v2.0.0
** Processor : MK20DN512VLL10
** Component : CriticalSection
** Version : Component 01.006, Driver 01.00, CPU db: 3.00.000
** Compiler : GNU C Compiler
** Date/Time : 2015-01-09, 16:27, # CodeGen: 0
** Abstract :
**
** Settings :
**
** Contents :
** CriticalVariable - void CS1_CriticalVariable(void);
** EnterCritical - void CS1_EnterCritical(void);
** ExitCritical - void CS1_ExitCritical(void);
**
** License : Open Source (LGPL)
** Copyright : Erich Styger, 2014, all rights reserved.
** Web : www.mcuoneclipse.com
** This an open source software implementing a driver using Processor Expert.
** This is a free software and is opened for education, research and commercial developments under license policy of following terms:
** * This is a free software and there is NO WARRANTY.
** * No restriction on use. You can use, modify and redistribute it for personal, non-profit or commercial product UNDER YOUR RESPONSIBILITY.
** * Redistributions of source code must retain the above copyright notice.
** ###################################################################*/
/*!
** @file CS1.h
** @version 01.00
** @brief
**
*/
/*!
** @addtogroup CS1_module CS1 module documentation
** @{
*/
#ifndef __CS1_H
#define __CS1_H
/* MODULE CS1. */
/* Include shared modules, which are used for whole project */
#include "PE_Types.h"
#include "PE_Error.h"
#include "PE_Const.h"
#include "MK20D10.h"
/* Include inherited beans */
//#include "Cpu.h"
/* workaround macros for wrong EnterCritical()/ExitCritical() in the low level drivers. Will be removed once PEx is fixed */
#define CS1_CriticalVariableDrv() \
CS1_CriticalVariable()
#define CS1_EnterCriticalDrv() \
CS1_EnterCritical()
#define CS1_ExitCriticalDrv() \
CS1_ExitCritical()
#define CS1_CriticalVariable() \
uint8 cpuSR; /* variable to store current status */
/*
** ===================================================================
** Method : CS1_CriticalVariable (component CriticalSection)
** Description :
** Defines a variable if necessary. This is a macro.
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
#define CS1_EnterCritical() \
do { \
asm ( \
"MRS R0, PRIMASK\n\t" \
"CPSID I\n\t" \
"STRB R0, %[output]" \
: [output] "=m" (cpuSR) :: "r0"); \
} while(0)
/*
** ===================================================================
** Method : CS1_EnterCritical (component CriticalSection)
** Description :
** Enters a critical section
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
#define CS1_ExitCritical() \
do{ \
asm ( \
"ldrb r0, %[input]\n\t" \
"msr PRIMASK,r0;\n\t" \
::[input] "m" (cpuSR) : "r0"); \
} while(0)
/*
** ===================================================================
** Method : CS1_ExitCritical (component CriticalSection)
** Description :
** Exits a critical section
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
/* END CS1. */
#endif
/* ifndef __CS1_H */
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert 10.4 [05.11]
** for the Freescale Kinetis series of microcontrollers.
**
** ###################################################################
*/