]> git.sur5r.net Git - freertos/blob
656915ffbb536f5c4cb92fa7ef30c9a6ecd20360
[freertos] /
1 /*******************************************************************************\r
2  * (c) Copyright 2009-2013 Microsemi SoC Products Group. All rights reserved.\r
3  * \r
4  * Assertion implementation.\r
5  *\r
6  * This file provides the implementation of the ASSERT macro. This file can be\r
7  * modified to cater for project specific requirements regarding the way\r
8  * assertions are handled.\r
9  *\r
10  * SVN $Revision: 5279 $\r
11  * SVN $Date: 2013-03-22 20:48:38 +0000 (Fri, 22 Mar 2013) $\r
12  */\r
13 #ifndef __MSS_ASSERT_H_\r
14 #define __MSS_ASSERT_H_\r
15 \r
16 #include <assert.h>\r
17 \r
18 #if defined ( __GNUC__   )\r
19 \r
20 #if defined(NDEBUG)\r
21 \r
22 #define ASSERT(CHECK)\r
23 \r
24 #else   /* NDEBUG */\r
25 /*\r
26  * SoftConsole assertion handling\r
27  */\r
28 #define ASSERT(CHECK)  \\r
29     do { \\r
30         if (!(CHECK)) \\r
31         { \\r
32             __asm volatile ("BKPT\n\t"); \\r
33         } \\r
34     } while (0);\r
35     \r
36 #endif  /* NDEBUG */\r
37 \r
38 #elif defined ( __ICCARM__ )\r
39 /*\r
40  * IAR Embedded Workbench assertion handling.\r
41  * Call C library assert function which should result in error message\r
42  * displayed in debugger.\r
43  */\r
44 #define ASSERT(X)   assert(X)\r
45 \r
46 #else\r
47 /*\r
48  * Keil assertion handling.\r
49  * Call C library assert function which should result in error message\r
50  * displayed in debugger.\r
51  */\r
52 \r
53 #ifndef __MICROLIB\r
54   #define ASSERT(X)   assert(X)\r
55 #else\r
56   #define ASSERT(X)\r
57 #endif\r
58 \r
59 #endif\r
60 \r
61 #endif  /* __MSS_ASSERT_H_ */\r