IAR环境下同一个工程,用不同版本的IAR编译,产生的不同的*.sim文件?

IAR环境下同一个工程,用不同版本的IAR编译,产生的不同的*.sim文件?,第1张

解决这个问题,建议直接找到一个可以成功编译下载的工程,然后把这个工程进行剪裁。这是最为简单的。
因为sim文件不是标准的二进制目标文件,而且不太清楚你是硬件仿真还是手动下载。不过会提示项目程序地址范围不匹配,基本可以肯定你的仿真器、下载设置或者工程设置有不同

在使用STM32的固件库的时候,需要往工程中添加使用到的功能的对应源文件,比如:stm32f10x_gpioc等等,一个个添加很麻烦不说,每次在rebuild的时候都要编译这些基本不变的文件
而通过使用库则可以解决这些问题,首先只需添加一次库文件,第二Rebuild的时候只编译我们自己写的源文件
创建库的过程(IAR中):
新建一个DLib工程,把stm32f10x_xxxc这样的文件和对应头文件全部复制到工程文件夹下(不复制也可以),然后添加进去,还有core_cm3c, miscc, system_stm32f10xc, 这些都添加进去(注意:不要添加h头文件,这和KEIL是不一样的,IAR里不用添加头文件,只需要源文件里#include就行了)
s启动文件则可以根据实际需要添加,当然你也可以每种型号都分别创建一个对应的库然后在实际工程中根据不同的片子选择不同的库
添加进去后,打开工程属性设置
general option:
target属性框里选择芯片;
output属性框里的Output file里选择Library(如果新建的工程是DLib的话,这里默认已经是了);
Library Configuration属性框里的Library选项选择None; (这里注意哦)
C/C++ compile:
optimizations里可以选择优化等级
Preprocessor里,additional include directories栏里添加包含文件的路径如同一般工程一样把头文件的路径添加进去
OK,设置如上编译后,将会后成一个a文件
以上是Debug模式下生成的库文件,Release下的设置同上两者间的不同的是Debug选项中默认输出调试信息,而Release中默认没有同时时我们可以在Release中根据需要把优化等级调高一点最后,Release模式下生成的库文件小一点
和平时一样建一个工程,或者随便打开一个你自己的STM32工程然后添加库,两种方法可以添加库:
1可以直接像添加源文件一样,在工程中右键-add files,然后添加a文件
2右键属性,在Linker选项中的Library选项卡中的additional libraries:中添加而且可以在Debug属性中添加Debug模式产生的库,release中添加release模式生成的库需要注意的是不能只添加路径,文件名也要写上 比如:E:/IAR_LIB/Stm32/stm32_da
OK,这时你就可以把像stm32f10x_gpioc这样的文件从工程中Remove了
(使用库)和(不使用库手动添加stm32f10x_gpioc)之间,在实际工程中,最终生成的可执行文件的大小是一样的
最后,在实际工程中:
只需将stm32f10x_confh, stm32f10x_ith, stm32f10x_itc复制到工程文件夹,然后把stm32f10x_itc添加进工程就行了(当然,前面已经说过,无论是在ARM工程,还是库工程中,IAR都不需要添加头文件,添加了反而会编译出错,只需要源文件中#include)
另外上述三文件最好不要创建成库,因为它们在不同的工程下都是不一样的,这个就不用我说了吧:)

首先下载好source insight并安装之
1
百度搜“source insight”,直接在搜索栏上的百度软件中心下载安装之。在安装好后会d出一些组件的选择,您可以全选也可以选择性的选择您所需要的功能。
2
在d出的新建工程窗口上面,选择好存放的路径。可以选择系统默认也可以自己更改路径。
3
您也可以新建一个project项目,点击菜单栏“project”,选择“New Project”,就可以新建一个项目了。
4
在d出的“Add and Remove Project Files”对话框中,右侧栏“File Name”选择你所需要的工程文件,点击旁边的“Add”增加按钮,如果需要把该文件夹所有的文件添加进去,点击旁边的按钮“Add All”就可以了。
5
双击最右旁边栏目“File Name”里的文件utilsem,左则栏目则会显示出该项目的所有文件,包括文件名字、函数、变量。再点击左边栏上的任意文件,中间栏目就会出现这个文件里的所有代码。
END
source insight常用的使用热键以及技巧
按住“ctrl”键不动,鼠标指向变量或函数再点击一下,则进入了定义。如果想跳到某一行热键为“Ctrl+G”,想让显示中的每个字符宽度一致请按快捷键“Alt+F12”。
2
按住“shift+f8”热键,会标亮光标旁边的单词函数。由于时间有限,今天暂时先基本介绍到这里,希望起到抛砖引玉的效果。

project---option---C/C++Compiler---language2,在“Floating-point semantics"条目中,选择Relaxed(smaller and/or faster)即可

直接把库文件加入到工程里面(就像添加源文件一样),从提示可以看出,uCGUI32lib不是iar的库文件。IARARM库后缀是a。
或者在左边,就是新建的工程名那里,右击,会出现Add,鼠标放在那里会有选项,添加文件,直接把头文件和那些c文件放在同一个文件夹中,然后添加文件就可以了,添加完运行一下试试。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13335077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存