mikroSDK Reference Manual
debug.h
1//*****************************************************************************
2//
3// debug.h - Macros for assisting debug of the driver library.
4//
5// Copyright (c) 2006-2020 Texas Instruments Incorporated. All rights reserved.
6// Software License Agreement
7//
8// Redistribution and use in source and binary forms, with or without
9// modification, are permitted provided that the following conditions
10// are met:
11//
12// Redistributions of source code must retain the above copyright
13// notice, this list of conditions and the following disclaimer.
14//
15// Redistributions in binary form must reproduce the above copyright
16// notice, this list of conditions and the following disclaimer in the
17// documentation and/or other materials provided with the
18// distribution.
19//
20// Neither the name of Texas Instruments Incorporated nor the names of
21// its contributors may be used to endorse or promote products derived
22// from this software without specific prior written permission.
23//
24// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35//
36// This is part of revision 2.2.0.295 of the Tiva Peripheral Driver Library.
37//
38//*****************************************************************************
39
40#ifndef __DRIVERLIB_DEBUG_H__
41#define __DRIVERLIB_DEBUG_H__
42
43//*****************************************************************************
44//
45// Prototype for the function that is called when an invalid argument is passed
46// to an API. This is only used when doing a DEBUG build.
47//
48//*****************************************************************************
49extern void __error__(char *pcFilename, uint32_t ui32Line);
50
51//*****************************************************************************
52//
53// The ASSERT macro, which does the actual assertion checking. Typically, this
54// will be for procedure arguments.
55//
56//*****************************************************************************
57#ifdef DEBUG
58#define ASSERT(expr) do \
59 { \
60 if(!(expr)) \
61 { \
62 __error__(__FILE__, __LINE__); \
63 } \
64 } \
65 while(0)
66#else
67#define ASSERT(expr)
68#endif
69
70#endif // __DRIVERLIB_DEBUG_H__