打印
[工具和软件]

CodeWarrior 10.x+编译器使用Tips

[复制链接]
1600|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andyzhao365|  楼主 | 2018-6-23 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、引言
CoderWarrior编译器自v10版本之后与之前的老版本差别较大,新的CodeWarrior采用全新的Eclipse框架,与之前老版本的CodeWarrior已经谈不上兼不兼容的问题,已经是完全两个东西,倒是现在很多编译器都采用了Eclipse这种形式,比如CCS、Hitech、Tasking等,这些编译器在使用上可有一定的参考,本文以CodeWarrior 10.6.4版本举例介绍一些使用上的Tips。
2、代码优化
右键工程点击属性,选择C/C++ Build中的Setting,工程的设置都在这里,

然后在Tool Settings中选择ARM Ltd Windows GCC Compiler(该选项名称视使用芯片内核不同而有所不同),其中Optimization level为选择优化等级,默认为0级即不优化,如下图所示,

其中可选择不同的优化等级,

优化等级越高,代码量越小,这个视实际是否有需求而使用了,需要注意的是当选择了优化等级如-O2级优化,会出现Debug时单步调试代码运行位置上下乱跳的情况,这就是因为采用优化后编译器把一些自认为没用的代码删掉导致的现象,所以在没有对代码有相关要求时尽量不要选择优化。另一方面,在试用版中编译器会做代码量的限制比如64K,那么就可以使用该功能对稍大的代码有原来的不能编译改成可以编译,当然如果购买了正式版就无所谓了。说到正式版讲句题外话,经常听到很多人说:xx编译器用免费的Eclipse框架开发的,然而却收费还巨贵,并且还各种收费标准,有是单机版有是网络版的等等。这个您怎么看呢?
3、添加文件路径
还是刚才的属性中选择C/C++ General中的Paths and Symbols,在这里可添加使用的头文件等信息,

并且只能一个文件夹一个文件夹的添加,这不同于老版的Coderwarrior直接把工程目录拽到编译器里自动就添加了。这里我们可以使用${ProjDirPath}关键字来保证添加的事相对路径,否则一个绝对路径的工程在换到其他人电脑时很有可能就不识别了,就要重新添加。

4、显示代码量信息
在上述Setting中选择Additional Tools,勾选其中的Print Size选项,

然后编译工程后就会在Console中显示代码量信息,这对于查看信息评估需求等还是十分有用的。另外勾选Create Flash Image可用于生成hex文件。

以上图为例,该代码工程的text、data、bss、dec信息均以显示出,其中
(1) text代表代码区静态数据即代码中运行的那些函数;
(2) data代表已被初始化为非零的全局变量;
(3) text + data的大小就为实际生成的hex大小(不是hex文件大小,是hex字节数哦);
(4) bss代表没被初始化和已被初始化为0的全局变量;
(5) dec代表十进制总和;
(6) hex代表十六进制总和。


您的关注、转发是对我最大的支持
关注公众号后台留言获取更多资源

相关帖子

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

本版积分规则

1

主题

4

帖子

2

粉丝