S32 SDK
devassert.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #ifndef DEVASSERT_H
20 #define DEVASSERT_H
21 
22 #include <stdbool.h>
23 
65 #if defined (CUSTOM_DEVASSERT)
66  /* If the CUSTOM_DEVASSERT symbol is defined, then add the custom implementation */
67  #include CUSTOM_DEVASSERT
68 #elif defined (DEV_ERROR_DETECT)
69  /* Implement default assert macro */
70 static inline void DevAssert(volatile bool x)
71 {
72  if(x) { } else { BKPT_ASM; for(;;) {} }
73 }
74  #define DEV_ASSERT(x) DevAssert(x)
75 #else
76  /* Assert macro does nothing */
77  #define DEV_ASSERT(x) ((void)0)
78 #endif
79 
80 #endif /* DEVASSERT_H */
81 
82 /*******************************************************************************
83  * EOF
84  ******************************************************************************/
#define BKPT_ASM
BKPT_ASM.
Definition: s32_core_cm4.h:63