打印

用C语言写PIC的程序的一个问题

[复制链接]
2709|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txh353012|  楼主 | 2007-11-18 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PICC写了一个PIC16F877的程序,可是在最后发现程序大于4K,报警编译不了.
我在资料里看到C语言程序自己不会分页,要把程序分成几个才行.
可我分开了还是不行.
请教高手,怎样才能把程序写到8K的程序存储器上去啊
沙发
兰天白云| | 2007-11-18 17:10 | 只看该作者

你可能搞错了

函数有2K的限制

使用特权

评论回复
板凳
ayb_ice| | 2007-11-19 08:26 | 只看该作者

C会自己分页吧

使用特权

评论回复
地板
yewuyi| | 2007-11-19 09:11 | 只看该作者

PICC会自己分页的……

编译不了是否为盗版?

单个函数最大不能超2K

使用特权

评论回复
5
txh353012|  楼主 | 2007-11-19 17:46 | 只看该作者

怎样才能 突破2点K的限制呢?

C不会自己在程序存储器自己分页,只会在RAM里自己分页.
我想请教一下.
怎样才能把一个大于4K的程序写进去 .
就是分成几个程序文件,可是我不会把他们联在一起.编译不成功啊 !!

使用特权

评论回复
6
ayb_ice| | 2007-11-19 18:42 | 只看该作者

5楼刚好说反了吧

PICC里变量不能自动分页,而程序会自动分页的。

使用特权

评论回复
7
yewuyi| | 2007-11-20 08:46 | 只看该作者

PICC自动进行RAM/ROM的页处理

但RAM中定义变量时,需要在定义的时候指定一写BANK,如果不指定,默认为BANK0,在程序中,直接应用变量,不需要关心在哪个BANK。

你的问题可能是你把程序分成几个文件写的,估计是几个*.C文件如何一起编译的事情把?

如果是这样,把它们都添加到项目组中,然后编译就可以了。

实在想不明白,你还有什么问题。

使用特权

评论回复
8
txh353012|  楼主 | 2007-11-29 17:41 | 只看该作者

7楼说的是

使用特权

评论回复
9
txh353012|  楼主 | 2007-11-29 17:46 | 只看该作者

7楼说的是

我的问题是你把程序分成几个文件写的,是几个*.C文件如何一起编译的事情?
可是我把它们都添加到项目组中,然后编译.可是编译不成功,
请问,这个编译有什么规则吗?请教一下,或者把资料发到我的邮箱:
txh353012@163.com
多谢了啊 !!

使用特权

评论回复
10
shishaojun| | 2007-12-1 01:33 | 只看该作者

建议

你先关掉一些函数的实现,编译,看看能不能通过
或者换成大点rom的片子头文件编译,看看到底要多少rom
可能就是你程序太大了,rom不够用

pic的指令是在是少的可怜,做简单控制还成,一做事务处理,rom耗费猛涨
譬如做个位取反,居然都要2个字节指令;
做个bcd转换,得自己写个减法程序实现(我是用14位pic)
千万注意尽量不要用指针。数组之类的。会很费rom的

你可以一边看lst文件一边改c代码来压缩。
softradio◎tom.com

使用特权

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

本版积分规则

6

主题

60

帖子

0

粉丝