转发:比较编译器:CCS C和Microchip XC8

[复制链接]
409|2
 楼主 | 2019-1-11 13:27 | 显示全部楼层 |阅读模式
本帖最后由 bellstudio 于 2019-1-11 13:30 编辑

转一篇老外的blog,其实很多人都对MCHP居然卖编译器这件事情颇有微词,还卖那么贵!,甚至我也曾经到处寻找替代的免费(真正的免费哈,例如SDCC这样的)编译器。
其实呢xc真正说来还是可以的,不管是xc8/16/32,打开o1优化可以满足绝大部分需求,用免费版也没那么不堪。
甚至这位老兄还发现xc免费模式也比CCS C的付费版优化更好。当然,CCS C有他自己的优势,比如说库做的很好用。其实我一直想比较一下xc和其他编译器的水平,无奈懒癌缠身,今天无意搜索到一篇文章,我就不用自己造轮子了。

原文链接:
https://www.burningimage.net/cat ... ompiler-comparison/

##汉化是Google帮忙做的,楼主没有花一丝力气##
##版权归原作者所有##

比较编译器:CCS C和Microchip XC8
by andyc — 2017年12月6日
现在我已经让CatTrack工作了,我一直在研究改进代码。正如我之前提到的,我正在使用CCS C编译器,主要是因为他们的编译器的'付费'版本比Microchip的XC8'付费'版本便宜得多。我确实开始怀疑,我的代码会有多大,如果我使用免费版本的Microchip XC8编译器,它运行的速度会慢多少?这是PIC16LF18345中使用CCS C编译的内存使用情况:
16lf18345-ccs-usage.png

花了几个小时的工作来完成代码并进行从CCS转换到XC8所需的所有必要的更改。所以现在是关键时刻,让我们看看使用免费版XC8编译器时的内存使用情况:

xc8-free-mode-1-768x330.png
哦。似乎免费版的XC8编译器正在创建比付费CCS编译器更高效的代码!忽略上面对PRO许可证的引用 - 它是在自由模式下编译的。然后我认为虽然CCS代码占用了更多的空间,但也许它是为速度而不是空间而编译的?长话短说 - 不,不是。免费的XC8编译代码需要26329个时钟周期来配置CatTrack并运行加密例程,而CCS编译的代码需要31849个。
所以到目前为止的标题是CCS 慢了21%,比免费的XC8编译器多占4%的ROM和38%的RAM!出于好奇,我想知道XC8编译器的PRO版本可以制作代码有多小。这就是答案:

xc8-pro-version-768x328.png
非常了不起!XC8编译器的PRO(付费)版本创建的代码比付费版本的CCS消耗少63%的ROM和15%的RAM。这促使我想出一个专门比较两个编译器的项目,这就是我所做的。我把它放在git中,这里:
https://bitbucket.org/andyec/compare_xc8_ccs
它被设计为在MPLAB X中打开并且充满了#define,因此它可以使用CCS或XC8进行编译。代码设置了一些IO,使用XXTEA加密128位,然后将加密结果打印出UART。

Compiler
ROM Used (words)
RAM Used (bytes)
Cycles to run
Price
XC8 v1.44 Free
1317
108
26371
£0
XC8 v1.44 PRO
(for space)
720
104
26637
£750
XC8 v1.44 PRO
(for speed)
1168
104
24097
£750
CCS v5.074
1798
196
38656
£112 (16F, command line only)
£450 (All PICs)


我认为结果可能不言而喻。
我想知道这是否仅限于16F系列PIC器件,但事实并非如此。我转换了一个使用18FPIC的其他项目。从CCS迁移到免费的XC8编译器导致ROM使用量从22420个字减少到20457个字。
所以你有它!我驳回了XC8编译器的免费版本,但你真的不应该这样做。

比较编译器:CCS C和Microchip XC8 - CatTrack.pdf

578.81 KB, 下载次数: 5

| 2019-1-11 15:57 | 显示全部楼层
如果真是这样的话,并且不会影响代码运行逻辑的话,那XC8真的很不错啊!

使用特权

评论回复
 楼主 | 2019-1-14 14:26 | 显示全部楼层
gtghgbgf 发表于 2019-1-11 15:57
如果真是这样的话,并且不会影响代码运行逻辑的话,那XC8真的很不错啊!

我没有试过CCS C,不过o1用起来还是可以的

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表