关于PICC18编译大于16K程序的问题_saixiya_新浪博客

早期的18fxx2的内部有N多的bugs,具体的你可以看microchip有关18fxx2的戡误表(errata)。

简单说其中一个bug:程序在跳转时越过0x4000有可能有问题。所以编译器在默认状态下自动会帮你解决可能的bug——就是不用小于0x4000的空间。

解决起来也简单,在链接时加入-noerrata,这样编译器就认为你使用的是无bug 的芯片。你就能放下大的程序了。

当然,你要确定你使用的是无bug的芯片,出厂批号要大于0250,在片子上有标注。

以下这些内容在picc18的说明书中都有。

 

谢谢register2002!你真是个技术高超并且非常热情的人!

没想到大公司也干这种事,和我们这些干具体工作的小人物在一些问题上的做法也差不多。想必这个问题以后其他人也许会遇到,register2002先生的指导,会让大家从购买芯片时就会注意到这个问题,如果象PIC18F452 这样一个32K的芯片只能用一半,还不如买PIC16F87X了,况且很多时候选择18系列就是看中了其容量大的特点。此外,一定要记住,在LINKER设置中,一定要加入-noerrata参数。再次感谢register2002!

 

我也被这问题困扰着。我用MPLAB IDE v6.52 芯片PIC18F452,我选择project>Build options>project,在PICC18 complier选项中加入“-noerrata”后,能够多增加些内容进行编译,但还是跳不过0X4000。在Linker设置中怎么加入呢?

 

这是在没有加 -noerrata 时的提示:

 

Error[000]   : Can't find 0x474A words (0x474A withtotal) for psect text in segment CODE
BUILD FAILED: Thu Oct 21 09:25:31 2004

加了之后的提示:

Error[000]   : Can't find 0x43B0 words (0x43B0 withtotal) for psect text in segment CODE
BUILD FAILED: Thu Oct 21 09:28:18 2004

郑重声明:资讯 【关于PICC18编译大于16K程序的问题_saixiya_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——