码迷,mamicode.com
首页 > 其他好文 > 详细

移植 STM32 Keil 工程到 IAR遇到的常见问题

时间:2018-05-08 14:40:50      阅读:1461      评论:0      收藏:0      [点我收藏+]

标签:class   blank   family   style   mode   常见问题   arch   ide   info   

常见问题一:Fatal Error[Pe1696]: cannot open source file "core_cm3.h" 

解决方案:

IAR的安装路径下已有CMSIS,不需要添加额外的文件,

如果包含了自己的CMSIS文件就会有冲突而会报很多错
在options->general->library configuration里的CMSIS你看Use CMSIS是不是被勾选了

可以勾选这个选项,不用你的CMSIS文件,这样就解决了
技术分享图片

  

常见问题二 :Error[Pe020]: identifier "FILE" is undefined
解决方案:如果工程中是用了串口,需要在IAR的Options -> General Options ->Library Configuration里设置一下函数库,
不然printf函数不对,将Library Configuration 中的Library 设置由"Normal"改为"Full"就可以了。
技术分享图片



常见问题三:如果你的IAR工程是从别人那里复制而来,如果编译器版本不一致可能会出现各种问题,

例如Error[Ta097]: Cannot call intrinsic function "__nounwind __DSB" from Thumb mode in this architecture  啥啥的,很多。

解决方案:在打开别人的工程后最后还是要按自己的实际情况设置一下工程选项,

例子中的问题就是因为没有选芯片型号导致的,具体的操作是按自己的实际情况把工程选项都设置好了再编译。

技术分享图片

 

 

 

常见问题四:还是IAR版本不同造成的,例如有时可能出现:Warning[25]: Label ‘Reset_Handler‘ is defined pubweak in a section implicitly declared root 

解决方案:7.1版本之前,section默认是noroot,但现在是root。所以可以将SECTION .text:CODE:REORDER(1)改成SECTION .text:CODE:REORDER:NOROOT(1)或SECTION .text:CODE:REORDER:ROOT(1)。

注意 NOROOT和 ROOT 的区别,NOROOT表示如果符号没有被关联的时候是被优化掉的,如果想不被优化则使用ROOT。

解决办法就是在SECTION .text:CODE:REORDER(1) 这句的REORDER 与(1)之间添加 :NOROOT !!! 注意位置和前面的冒号!!!

技术分享图片

 

 

 

 

 

 

移植 STM32 Keil 工程到 IAR遇到的常见问题

标签:class   blank   family   style   mode   常见问题   arch   ide   info   

原文地址:https://www.cnblogs.com/humain/p/9007314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!