当前位置:  开发笔记 > 编程语言 > 正文

什么是Pic18 micro的最佳c编译器

如何解决《什么是Pic18micro的最佳c编译器》经验,为你挑选了4个好方法。

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



1> Veynom..:

    Microchip C18编译器:真的是最好也是最容易使用的.非常适合专业用途.

    HI-TECH:当Microchip不工作时使用(用于PIC16).

    CCS

    SourceBoost

PS:我自己制作的PIC18F25XX和PIC18F45xx家庭,所以我知道一个很小的一点关于这一点.;)

PS2:如果编译器错误(它发生在我们身上),Microchip团队非常反应,新版本很快就会发布.尝试找到与Microchip联系的本地经销商,然后与他们一起参加活动并获得直接联系.无价.



2> blak3r..:

几年前,我对Hitech PICC18编译器和Microchip C18编译器进行了广泛的研究.

我想大多数决定使用Microchip C18编译器的人只是因为他们在进入微芯片网站时看到它并且已经熟悉MpLab进行汇编(这是一个糟糕的IDE恕我直言).

HiTech的解决方案更接近ANSI C(因此代码更加便携).使用C18,您可以添加各种编译器特定的关键字,并且您不得不更多地管理内存.

    您必须指定将变量分配给哪个ram bank.

    为了将const字符串分配给程序空间(而不是ram),您必须使用rom关键字.

    如果不编辑链接描述文件,则无法分配大于256字节的变量.

可以在此处找到更深入的优秀比较:http://www.xargs.com/pic/picc18-vs-c18.html

除了编译器,您还需要考虑IDE.我是一个狂热的日食爱好者,因此我非常喜欢HiTech的HiTide.但是,由于Microchip购买了HiTech ......似乎他们不再支持HiTide了.我不认为这是官方的...但是根据我对HiTech支持的经验......他们不再修复错误了,这真是一种耻辱.


我也试过他们的专业编译器.我真的很喜欢这个主意.但是,我的项目超出了自动参数块要求,无法使用它.它似乎也需要花费很长时间才能编译,但它可能是程序复杂性的b/c.



3> geometrikal..:

技术PICC对我来说一直很可靠,并且已经有多年的发展.



4> supercat..:

我没有使用Microchip编译器,但多年来一直在使用HiTech的产品.我一般都喜欢他们的PIC16编译器,但发现他们的PIC18编译器相当令人沮丧.虽然我很欣赏不必将所有变量都放到银行中,但HiTech编译器使用的规则令人烦恼,奇怪和愚蠢.简要背景:芯片有16个256字节的变量组(*并非所有256字节都可用于所有组)和一个组指针.直接访问变量需要选择适当的存储区; 换银行需要一条指令.

全局和静态整数和结构及其数组,其大小范围为2-255个字节,每个模块将按模块分配到psect; 每个模块的psect必须适合256字节的页面.字节数组以及单个字节进入"大"psect,其中假定每个字节可能位于不同的页面中.

整个程序中的所有自动变量和参数必须适合256字节的页面(它们在链接时静态分配).链接器确实覆盖了永远不会同时存在的变量,但它假设对具有特定签名的函数指针的任何调用都可以调用其地址被采用且具有该签名的任何函数.

可以将最多128个字节的全局和静态变量声明为"接近".无需银行切换即可访问这些内容.无法指定将自动变量或参数放置在"附近".

HiTech使用的银行转换规则意味着许多功能,即使他们从不在自己的模块之外使用任何变量,也将使用movlb(交换机组)指令.

我不想要"无所不知的代码生成".我希望能够通过为自定义psect定义关键字或宏来添加一些提示来合理地放置事物,允许自动和局部变量与其他变量共享psect(在给定指定的银行限制的情况下尽可能覆盖自动变量/参数).如果编译器供应商真的想要很好,请允许指针接受存储区限定符,这样只能指向某个psect中的东西的指针才能以8位存储.同样,允许函数和函数指针上的bank限定符指定某些间接调用只能用于某些函数.而不是使函数指针24位或必须工作以确保间接调用函数最终在第一个64K,在第一个64K中放置一个自动GOTO,因此函数指针可以是16位.或者更好的是,如果函数"类"的函数少于64个,则使用8位指针.

我问得太多了吗?

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有