IAR常见错误记录
来源:互联网 发布:sql 删除重复 编辑:程序博客网 时间:2024/05/17 22:16
闲来无事,试着自己新建了一下IAR for STM32工程,期间出现一些警告,感觉还挺常见,网上搜索答案各不相同,在这里记录一下自己的解决方法,作为备忘。
1、Warning[Pe223]: function “assert_param” declared implicitly
这个问题原因是由一个宏开关没有打开!这个宏USE_STDPERIPH_DRIVER开关需要打开,就不会有这个告警、错误了。解决方法如下:
- Options -> C/C++ Compiler的Preprocessor页的Defined symbols中加上USE_STDPERIPH_DRIVER
先执行这一步,倘若配置正确仍然有报错,则按照以下两种方法(选择其一即可):
- 1)在头文件中添加 #include “stm32f10x_conf.h”
追踪到stm32f10x_conf.h头文件中,可以发现该文件中有定义assert_param。 - 2)还有另一种方法就是将stm32f10x.h中的宏开关打开:
#if !defined (STM32F10X_LD) && !defined (STM32F10X_MD) && !defined (STM32F10X_HD) /* #define STM32F10X_LD */ /*!< STM32 Low density devices */ /* #define STM32F10X_MD */ /*!< STM32 Medium density devices */ #define STM32F10X_HD /*!< STM32 High density devices */ #endif
2、Warning[25]: Label ‘Reset_Handler’ is defined pubweak in a section implicitl
出现该错误的原因是因为IAR新版本跟旧版本不兼容导致的,可以在startup_stm32f10x_md.s或startup_stm32f10x_md.s或startup_stm32f10x_md.s这三个启动文件中修改(修改内容请继续往下看),具体哪个文件根据自己芯片对应的flash大小而定。
例如我用的是STM32F103C8T6,flash大小为64K,所以对应在startup_stm32f10x_md.s中修改
修改方法如下:
- 将startup_stm32f10x_md.s文件中的文本:SECTION .text:CODE:REORDER(1)
全部替换为 - SECTION .text:CODE:REORDER:NOROOT(1)
或 - SECTION .text:CODE:REORDER:ROOT(1)
注意 NOROOT和 ROOT 的区别,如果NOROOT表示如果符号没有被关联的时候是被优化掉的,
如果想不被优化则使用ROOT.
另外:按照上述修改后有可能会出现下述提示警告:Warning[22]: Set section alignment the same (2) or larger
出现该警告具体原因我暂时不清楚,只知道将上述括号中的1改成2即可。即
3、Warning[22]: Set section alignment the same (2) or larger
解决方法见问题2。
4、Warning[Pe223]: function “xxxx” declared implicitly
出现该错误,是因为自己定义的函数没有声明造成的,一般查看两个地方:
- 1、检查该函数所在C文件对应的 .h 文件中有没有添加 extern 声明该函数的语句。
- 2、检查在所有头文件引用的地方有没有添加该函数所在C文件对应的头文件。
例如:我在exti.c文件中自定义了一个函数void EXTI_Config(void);则我需要干2件事:
(1)在exti.h文件中添加该函数声明:extern void EXTI_Config(void);
(2)并在head.h文件或者main.c文件中添加一个头文件:#include “exti.h”。
- IAR常见错误记录
- IAR常见错误列表
- IAR编译常见错误。
- IAR常见错误列表
- IAR编译常见错误
- IAR 常见错误
- IAR编译常见错误
- IAR编译常见错误
- IAR常见的错误及解决方法
- IAR编译常见错误 【转】
- IAR编译CC2640常见错误及解决方法
- MFC常见错误记录
- Oracle常见错误记录
- Javah 常见错误记录
- git常见错误记录
- Javah 常见错误记录
- 常见错误记录C++
- 【MyBatis】常见错误记录
- Java并发编程重要总结(一)
- 001--easyui 中如何获取不同input的值,并且进行比较呢?
- 玩转Android之Picasso使用详详详详详详解,从入门到源码剖析!!!!
- python的数据类型
- 有关windows系统服务
- IAR常见错误记录
- Dice (III) LightOJ
- 【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典
- webpack超详细配置, 使用教程(图文)
- 在springboot中整合jersey和springfox-swagger2
- Can not find the tag library descriptor for "/WEB-INF/struts-html.tld"报错
- Activiti 流程变量
- php作业01
- NYSQL 修改密码 方法