立即注册
查看: 715|回复: 0

[xmos原厂资料] XMOS XASSERT 轻量级断言库

已绑定手机
发表于 2022-9-2 16:36:24 | 显示全部楼层 |阅读模式 来自 广东省深圳市
该库为标准 C 头文件 Assert.h 提供了轻量级和灵活的替代品。
可以启用/禁用此库中的断言,并配置它们显示的信息量。 此配置可以是每个“xassert 单元”(即对于文件集)。

特征
• 内存使用率低
• 能够通过编译时定义启用或禁用各种功能

1 . API
要使用该模块,您需要在应用程序中使用 lib_xassert 并包含 xassert.h 标头。

1.1 断言
可以使用 assert 宏将断言插入到代码中,例如:
  1. assert(i < n);
复制代码
可以选择使用 msg 宏添加调试消息:
  1. assert(i < n && msg("i must be less than the array bound"));
复制代码
如果启用了断言并且断言中的表达式为假,则会发生陷阱。

1.2 不可达
如果程序的逻辑表明无法访问某些代码,则可以使用无法访问的宏,例如:
  1. switch (message) {
  2. case 0:
  3. ...
  4. case 1:
  5. ...
  6. default:
  7. unreachable("message must be 0 or 1");
  8. break;
  9. }
复制代码
如果启用了断言,则如果执行此宏将导致陷阱。

1.3 失败
可以使用失败宏指示失败,例如:
  1. if (reg_value != 0xA5)
  2. fail("device not connected properly")
复制代码
如果执行失败,总是会导致陷阱。 失败与不可访问的不同之处在于,不可访问的宏永远不应在正确的程序中执行,而即使程序正确,失败也可能在灾难性情况下发生。

更多内容请下载附件查看

游客,如果您要查看本帖隐藏内容请回复






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

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表