打印
[STM8]

STM8S编译器assert_failed未定义问题 的解决过程。。。可供参考

[复制链接]
7628|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
uet_cache|  楼主 | 2013-5-9 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天准备做第七章的程序。第七章的程序都想用库函数来完成。
用最新版本的库函数,建立工程,不想遇到点小问题。在此记录下。
新建工程后,工程中会有默认的MAIN.C文件。把需要的库函数文件加进去之后,尤其是.C文件,编译就不能过。提示assert_failed找不到定义。
后来就打开早期版本,用库函数写好的工程,查找此函数的定义在何处。发现以前版本同现在的版本有所不同。
没办法,只有打一官方库函数的参考工程文件。官方的工程文件,定义了好多不同CPU。打开当前需要的CPU:STM8S903K3,点开MAIN.C文件,发现MAIN.C文件中最后一段有以下定义:
#ifdef USE_FULL_ASSERT

void assert_failed(u8* file, u32 line)
{


  while (1)
  {
  }
}
#endif

呵呵,结合STM8S_CONF.H文件的USE_FULL_ASSERT定义,发现这段语句是需要加进自己主函数MAIHN.C当中的。
最后加进去,再编译就OK了。
在此提供需要的人,如果用库函数时出现assert_failed定义问题,可像以上方法解决。
沙发
cjhk| | 2013-5-9 19:25 | 只看该作者
谢谢了   楼主   资料共享的不错   谢谢了   呵呵

使用特权

评论回复
板凳
cjhk| | 2013-5-9 19:26 | 只看该作者
话说   你的书写好了吗   我还等你送我一本呢  呵呵

使用特权

评论回复
地板
ETjason| | 2013-5-9 19:46 | 只看该作者
断言?

使用特权

评论回复
5
uet_cache|  楼主 | 2013-5-9 21:06 | 只看该作者
谢谢3楼对我书的关注。书所需的硬件都好了。只要配合把书写完就行了。很快可以完稿了。

使用特权

评论回复
6
error_dan| | 2013-5-9 22:08 | 只看该作者
所以正确方式是直接从官方给的模板工程上改出一个自己的工程~
自己建工程坑太多了~

使用特权

评论回复
7
uet_cache|  楼主 | 2013-5-10 08:21 | 只看该作者
官方模板更麻烦的,只供参考还可以。它那工程模板里大把选项,CPU选择一大堆,而且这些文件即使从工程中移出去,这些文件依然存在于目录中。还是自己建工程,适当删些文件好一些,这样做东西才更有把握,更灵活。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:E精灵淘宝店   全系列STM32开发板 、电机评估套件 、实验箱 u-easytech.taobao.com QQ: 53755787 博客:http://blog.sina.com.cn/u/3193913184

13

主题

906

帖子

9

粉丝