我们正在开始一个新的项目基于一个微型芯片PIC18F252.什么是最好"c"编译器的使用?

有帮助吗?

解决方案

科技中国人民始终是可靠的,对我来说它有多年的发展。

其他提示

  1. 微型芯片C18编译器:真的是最好和最容易使用。完美的专业使用。
  2. 高科技:时使用微型芯片不工作(这是一PIC16).
  3. CCS
  4. SourceBoost

PS:我自己曾在PIC18F25XX和PIC18F45xx家庭,所以我知道一个很小 关于这一点。;)

PS2:在情况下编译错误(事发给美国)、微型芯片队是相当反应的版本和新版本发布相当迅速。试图找到一个地方商人有接触的微芯片,然后参与到事件与他们直接接触。非常宝贵的。

我做了广泛的研究,对高技术PICC18编译器和微型芯片C18编译器,几年前。

我想大多数人决定使用微型芯片C18编译器,不仅是因为他们看到它的时候他们走来的微芯片网站,并已经熟悉MpLab从事大会(这是一个可怕的IDE恕我直言).

高技术的解决方案更接近ANSI C(因此编码被更多的便携式).与C18你必须增加所有类型的编译器的特定关键字和你迫使管理存储更多。

  1. 你必须指定其中ram银行分配变量。
  2. 为了有const串被分配给方案空间(而不是ram)必须使用rom关键词。
  3. 你不能分配的变量是大后256bytes没有编辑的一连接的脚本。

一个极好的比较这种方式更深入的可以在这里找到: http://www.xargs.com/pic/picc18-vs-c18.html

除了从编译器,你还需要考虑到的环境。我是一个狂热蚀风机等等我真的很喜欢高科技的HiTide因为这个原因。然而,由于微型芯片具有购买的高科技...看来,他们不再支持HiTide.我不认为这是官方...但是从我的经验与高技术支持。他们是不是定错误了这是一个真正的耻辱。


我也想他们的亲编译器。我真的很喜欢这个想法。但是,我的项目超过了汽车param块的要求和无法使用它。它也似乎采取verrrryyy长汇编,但它可能已b/c程序的复杂性。

我已经不使用微型芯片编译器,但是已经使用高技术产品的多年。我通常喜欢他们的PIC16编译器,但发现他们的PIC18编译器而令人沮丧。虽然我理解的没有到手的地方所有的变量进入银行,该规则使用高科技的编译器是令人讨厌的,奇怪的,愚蠢的。简要的背景:芯片拥有16 256字节的银行的变量(*并不是所有256字节是适用于所有银行)和一个银行指针。直接进入一个变量需要适当的银行被选定;改变银行需要一个指令。

全球静整数和结构,其阵列,他们的尺寸范围从2至255字节将对每个被分配到psects在每一个模块的基础;每个模块的psect必须适合在一个256字节页。阵列的字节,以及各个字节,在"大"psect其中的每一个字节假设可能是居住在一个不同的网页。

所有自动变量和参数的整个程序必须符合256字节的页面(他们是静态分配在的链接时间)。连接不复盖的变量不同,但它假定任何呼吁一个功能的指针与一个特定的签字可以叫任何功能的地址是采取的和具有此种签名。

它是可能宣布多达128个字节的价值的全球和静态变量'附近的'.这些访问的可没有银行交换。这是不可能指定自动变量或参数被放置'附近的'.

银行-交换规则使用高技术,这意味着许多职能,即使他们从来没有使用任何外部变量自己的模块,将撒movlb(关银行)的说明。

我不想"无所不知码的一代"。我想添加一些提示,地方的事情明智地通过确定关键字或宏定psects,允许自动和地方的变量来分享psects与其他变量(复盖汽车变量/参数的范围内,尽可能给予指定的银行业务的限制)。如果一个编译器供应商的真正想要的是不错的,允许指向接受银行的限定词,以便指这只会永远点东西在某些psect可能存在8位。同样,允许银行限定在功能和功能的指针指定某些间接的电话只能工作的某些职能。而不是功能的指针24位或者具有工作,以确保间接谓的功能最终在第64K,把自动转到在第64K使职能的指针可以是16位。或者更好的是,如果一个函数"类"少于64个不同的功能,使用一个8位指针。

我要求太多吗?

我们使用 CCS 这是很好的。非常缓慢,但它工作得很好。无论如何,我没有任何比较与其他编译器,所以有可能是更好的选择。

我不喜欢CCS,它太古怪。

SourceBoost不是坏和相当便宜,约40英镑。

微型芯片C18编译器是最佳的国际海事组织,但非常昂贵。有一个免费的演示/学生版,虽然。

我目前使用CCS和仇恨。它是如此的非标准和这么多的子集C,它只是吸.我考虑了交换很快。我要尝试微芯片C18编译器,然后我会吞硬和获得高技术,这似乎非常坚实的审查试用版和样本。

IAR系统具有PIC18编译/IDE: IAR嵌入式工作台对于PIC18.

我一直在使用CCS的多年。我发现一些错误,但没有支持是很棒,我可以发展更快和更容易与CCS比C18或科技

使用sdcc:

http://sdcc.sourceforge.net/

并非免费的(但是免费的!) PIC-编译器,mikroC是gr8!

http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

禾田

我会坚持认为,使用C18编译器。这是非常强大,非常容易使用。这是一个必须具备的专业发展。这真的取决于项目的大小。

开始免费/生版和你会得到一个很好的感觉于使用它。如果你的项目是小型的,这可能是你所需要的。我只是完成了一个大杂交大开发项目PIC18和我非常满意的C18编译器。

MPLAB C18生

我一直在使用SourceBoost为一年或一年以如此,我不完全高兴,但是它已经被罚款。然而,我刚刚完成的码尺寸的试验之间的SourceBoost7,MCC18和高科技C。结果是显着的。

对于一个小型的样品的程序(这一房源类型住宿加结构、数组、功能的指针,结构指针,chars和整数)的SB7套件产生的代码,约2/3的大小MCC18和宏达。我想detemine多少,是启动和运行时间开销,所以我加了更多东西随机的样品的程序,和大小三角洲表明,SB仍2/3大小的其他人。宏达略小于MCC18,但不显着。所有优化是在所有环境。

的东西,我不喜欢SB:

  • 有限的在线汇编
  • 慢汇编和链接
  • IDE只是略好于MPLAB.

的事情,我喜欢它们是:

  • 好吧,代码尺寸肯定,似乎比竞争。
  • 一些扩展的语言(例如参考文献)。杀死了便携性,虽然。
  • 价格。
  • 支持通过该论坛实际上是非常良好。作者经常员额。
  • 自动消除未使用的代码(我觉得这个功能减慢的汇编和链接)

因为我不喜欢这SB IDE,我源使用的洞察力的一个编辑和它的岩石!SB"做"实用工具是没有希望为好,所以我用GnuWin32作,这是绝对真正的交易,并免费的。

因此,所有的一切我感觉很好一点关于我的选择的工具。

无论如何,希望这可以帮助别人在那里。

MPLAB C-18很好,他们有一个学生的版本是免费的。它有一个良好的用户界面,这是很简单,它不会混淆用户。这是什么我的使用。

如果你可以摆脱它(我的偏好将)使用PIC18汇编与MPLAB.它具有的优点是免费和relativly好的记录旁边的事实,即它具有体面的hardwars/调试器的支持。它的小指示设置和简化导致本身来轻松和快速的编码。

如果你设置在c但:

CCS是一个很好的编译器的使用,一位车和相当昂贵而且具有良好的调试的能力。

Microsoft嵌入室(或类似的东西)是优秀的,如果你已经使用Visual Studio6方法编写c码。再次良好的硬件支持和优秀的调试器。

我相信如果你是在寻找一个免费的解决方案的确可以得到c编译器MPLAB,虽然我个人从来没有使用任何所以我可以不通过的判决。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top