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

[复制链接]
 楼主| txh353012 发表于 2007-11-18 17:04 | 显示全部楼层 |阅读模式
我用PICC写了一个PIC16F877的程序,可是在最后发现程序大于4K,报警编译不了.<br />我在资料里看到C语言程序自己不会分页,要把程序分成几个才行.<br />可我分开了还是不行.<br />请教高手,怎样才能把程序写到8K的程序存储器上去啊
兰天白云 发表于 2007-11-18 17:10 | 显示全部楼层

你可能搞错了

函数有2K的限制
ayb_ice 发表于 2007-11-19 08:26 | 显示全部楼层

C会自己分页吧

  
yewuyi 发表于 2007-11-19 09:11 | 显示全部楼层

PICC会自己分页的……

编译不了是否为盗版?<br /><br />单个函数最大不能超2K
 楼主| txh353012 发表于 2007-11-19 17:46 | 显示全部楼层

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

C不会自己在程序存储器自己分页,只会在RAM里自己分页.<br />我想请教一下.<br />怎样才能把一个大于4K的程序写进去 .<br />就是分成几个程序文件,可是我不会把他们联在一起.编译不成功啊 !!
ayb_ice 发表于 2007-11-19 18:42 | 显示全部楼层

5楼刚好说反了吧

PICC里变量不能自动分页,而程序会自动分页的。
yewuyi 发表于 2007-11-20 08:46 | 显示全部楼层

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

但RAM中定义变量时,需要在定义的时候指定一写BANK,如果不指定,默认为BANK0,在程序中,直接应用变量,不需要关心在哪个BANK。<br /><br />你的问题可能是你把程序分成几个文件写的,估计是几个*.C文件如何一起编译的事情把?<br /><br />如果是这样,把它们都添加到项目组中,然后编译就可以了。<br /><br />实在想不明白,你还有什么问题。
 楼主| txh353012 发表于 2007-11-29 17:41 | 显示全部楼层

7楼说的是

  
 楼主| txh353012 发表于 2007-11-29 17:46 | 显示全部楼层

7楼说的是

我的问题是你把程序分成几个文件写的,是几个*.C文件如何一起编译的事情?<br />可是我把它们都添加到项目组中,然后编译.可是编译不成功,<br />请问,这个编译有什么规则吗?请教一下,或者把资料发到我的邮箱:<br />txh353012@163.com<br />多谢了啊 !!
shishaojun 发表于 2007-12-1 01:33 | 显示全部楼层

建议

你先关掉一些函数的实现,编译,看看能不能通过<br />或者换成大点rom的片子头文件编译,看看到底要多少rom<br />可能就是你程序太大了,rom不够用<br /><br />pic的指令是在是少的可怜,做简单控制还成,一做事务处理,rom耗费猛涨<br />譬如做个位取反,居然都要2个字节指令;<br />做个bcd转换,得自己写个减法程序实现(我是用14位pic)<br />千万注意尽量不要用指针。数组之类的。会很费rom的<br /><br />你可以一边看lst文件一边改c代码来压缩。<br />softradio◎tom.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

60

帖子

0

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

6

主题

60

帖子

0

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