LM3S的库函数源码

2019-03-24 13:21发布

LM3S的库函数的源码在编写的时候经常用到 ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) |);其中ASSERT在库函数编写的时候为什么起到什么作用。表示一个判断的语句??在LM3S的书籍中并没有发现有给它的定义啊!谁知道能不能说一下。          此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
academic
1楼-- · 2019-03-24 13:39
 精彩回答 2  元偷偷看……
David_Lee
2楼-- · 2019-03-24 16:12
< :TI_MSP430_内容页_SA7 -->

原帖由 guozhiyang 于 2011-7-15 14:39 发表 LM3S的库函数的源码在编写的时候经常用到 ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) |);其中ASSERT在库函数编写的时候为什么起到什么作用。表示一个判断的语句??在LM3S的书籍中并没有发现有 ...

 

函数原型在StellarisWare_for_EK-LM3S811driverlibdebug.h

 

#ifndef __DEBUG_H__
#define __DEBUG_H__

//*****************************************************************************
//
// Prototype for the function that is called when an invalid argument is passed
// to an API.  This is only used when doing a DEBUG build.
//
//*****************************************************************************
extern void __error__(char *pcFilename, unsigned long ulLine);

//*****************************************************************************
//
// The ASSERT macro, which does the actual assertion checking.  Typically, this
// will be for procedure arguments.
//
//*****************************************************************************
#ifdef DEBUG
#define ASSERT(expr) {                                     
                         if(!(expr))                       
                         {                                 
                             __error__(__FILE__, __LINE__);
                         }                                 
                     }
#else
#define ASSERT(expr)
#endif

#endif // __DEBUG_H__

ddllxxrr
3楼-- · 2019-03-24 16:20
以我的知识水平来解释,这叫断言,如2楼所说,没什么用,花架子一个,不干活占地方,也谢谢3楼,我还没找到原型呢。唉看来LM3S已经深入人心。学习啦
stonye
4楼-- · 2019-03-24 16:56
 精彩回答 2  元偷偷看……
guozhiyang
5楼-- · 2019-03-24 17:19
我感觉也是像IF那样,但是David Lee说的#ifdef DEBUG
#define ASSERT(expr) {                                      
                         if(!(expr))                        
                         {                                 
                             __error__(__FILE__, __LINE__);
                         }                                 
                     }
#else
#define ASSERT(expr)
#endif
这些是什么意思,好想汇编指令定义总中断那样。不理解__error__(__FILE__, __LINE__); 是什么意思,为什么要加(斜杠)呢?我在SD卡的试验程序的宏定义上也见了使用(斜杠)。不用不是也可以?
电子太
6楼-- · 2019-03-24 18:27
多行宏定义用/分行

一周热门 更多>

相关问题

    相关文章