4576|6

102

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

LM3S的库函数源码 [复制链接]

LM3S的库函数的源码在编写的时候经常用到 ASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) |);其中ASSERT在库函数编写的时候为什么起到什么作用。表示一个判断的语句??在LM3S的书籍中并没有发现有给它的定义啊!谁知道能不能说一下。
         

最新回复

多行宏定义用/分行  详情 回复 发表于 2012-10-14 20:13
 
点赞 关注

回复
举报

918

帖子

0

TA的资源

纯净的硅(中级)

沙发
 

回复 楼主 guozhiyang 的帖子

调试用的,检查参数是否正确,默认情况下是关闭的,可以无视其存在。
 
 

回复

2749

帖子

0

TA的资源

裸片初长成(初级)

板凳
 

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

 

函数原型在StellarisWare_for_EK-LM3S811\driverlib\debug.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__

 
 
 

回复

1万

帖子

16

TA的资源

版主

4
 

看来楼主学得很深,这也是我想问的问题

以我的知识水平来解释,这叫断言,如2楼所说,没什么用,花架子一个,不干活占地方,也谢谢3楼,我还没找到原型呢。唉看来LM3S已经深入人心。学习啦
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

5
 
恩,空架子一个,我的理解就是一个if
 
 
 

回复

102

帖子

0

TA的资源

一粒金砂(高级)

6
 
我感觉也是像IF那样,但是David Lee说的#ifdef DEBUG
#define ASSERT(expr) {                                      \
                         if(!(expr))                        \
                         {                                  \
                             __error__(__FILE__, __LINE__); \
                         }                                  \
                     }
#else
#define ASSERT(expr)
#endif
这些是什么意思,好想汇编指令定义总中断那样。不理解__error__(__FILE__, __LINE__); \是什么意思,为什么要加\(斜杠)呢?我在SD卡的试验程序的宏定义上也见了使用\(斜杠)。不用不是也可以?

点评

多行宏定义用/分行:)  详情 回复 发表于 2012-10-14 20:13
 
 
 

回复

50

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 guozhiyang 的帖子

闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
个人签名WO爱LAOWUPO
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
立即报名 | 2025 瑞萨电子工业以太网技术日即将开启!
3月-4月 深圳、广州、北京、苏州、西安、上海 走进全国6城
2025瑞萨电子工业以太网技术巡回沙龙聚焦工业4.0核心需求,为工程师与企业决策者提供实时通信技术最佳解决方案。
预报从速,好礼等您拿~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表