请教IAR5.3下STM323.0库调试的问题

madcow   2009-9-17 15:37 楼主


请教一下
Error[Pa045]: function "__STREXW" has no prototype

Warning[Pe223]: function "assert_param" declared implicitly
的原因和解决办法。

1> Error[Pa045]: function "__STREXW" has no prototype
这个错误提示是在Options——C/C++ Complier——Language里勾选Require Protypes 后出现的,不勾选就不会出现,请问问什么,勾不勾选有什么影响?我看圈圈的工程模块是推荐要勾选这个选项的

2>Warning[Pe223]: function "assert_param" declared implicitly
出现这个警告后,通过搜索发现在每个出现这个警告的文件头部加上#include "stm32f10x_conf.h"能解决问题,请问这又是为什么呢?

本人新手,问题幼稚,还望大家能有耐心指点迷津,谢谢!


回复评论 (3)

C语言中要求在调用每个函数之前,要明确说明这个函数的原型,即它的参数表、参数类型和返回类型等,如没有明确说明,则编译器会使用默认的原型,并给出警告。

勾选Require Protypes就是开放我上面说的规则检查。

文件"stm32f10x_conf.h"中有函数的原型,文件头部加上#include "stm32f10x_conf.h"表示编译该文件时明确说明了相应函数的原型,所以没有了警告。
点赞  2009-9-17 17:22
香版主,出现error是两个只读文件:core_m3.c和stm32f10x_pwr.c
通过在core_m3.c中添加
#include "stm32f10x_conf.h"
或者
#include "stm32f10x.h"
都可以解决编译这个文件时提示的12个错误

但是stm32f10x_pwr.c文件中的两个错误并不能通过这种方法来解决
点赞  2009-12-16 23:36
                                 个人觉得固件库的文件包含上存在一定的问题
点赞  2009-12-16 23:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复