登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

用 HI-TECH PICC 编译PIC16F77 出现的错误信息,请帮忙怎么解决?

作者:shiaf 栏目:单片机
用 HI-TECH PICC 编译PIC16F77 出现的错误信息,请帮忙怎么解决?
Error[000] D:\safworks\ONE_WIRE\main1.obj 242 : Fixup overflow in expression (loc 0xEAC (0xEA6+6), size 1, VALUE 0x120)
Error[000] D:\safworks\ONE_WIRE\main1.obj 242 : Fixup overflow in expression (loc 0xEC4 (0xEA6+30), size 1, VALUE 0x140)

错误信息如上:
bank1 unsigned CHAR page0[32];        // page0 缓冲区
bank1 unsigned CHAR page1[32];        // page1 缓冲区
bank2 unsigned CHAR page2[32];        // page2 缓冲区
bank2 unsigned CHAR page3[32];        // page3 缓冲区

// 读一个 page ,address = 地址 0-127
unsigned CHAR read_page(unsigned CHAR *buff,unsigned CHAR address);

    read_page(page0,0x00);
    read_page(page1,0x20);
    read_page(page2,0x40);
    read_page(page3,0x60);

    最后 2 句去掉的话,编译通过。加上就出现一开始的错误,谁能帮我找找问题出在哪里?谢谢!


2楼: >>参与讨论
martin
PICC的指针
看两篇老帖子:
http://bbs.21ic.com/club/bbs/list.asp?boardid=27&t=996876&tp=PICC%u7684%u6307%u9488
http://bbs.21ic.com/club/bbs/list.asp?boardid=27&t=1817945&tp=%u8C61%u662F%u5BF9%u6307%u9488%u53D8%u91CF%u8D4B%u503C%u65F6%u4E0D%u5339%u914D%u9519%u8BEF

再看一个例子:
我编译查看了一下,发现问题还是出在Pointer上。我查了你的程序,你的tx_buf位于BANK1,rx_buf都是位于BANK2。但是,pTXD和pTXDSend都是指向BANK2的,你的定义如下:
extern bank2 unsigned CHAR *bank2 pTXD;
extern bank2 unsigned CHAR *bank2 pTXDSend;
extern bank2 unsigned CHAR *bank2 pRXD;
extern bank1 unsigned CHAR tx_buf[50];
extern bank2 unsigned CHAR rx_buf[30];

然后在你的编译报错的init.c文件中,
void InitRam(void)
{

    CommTimeOut = 0;
    CommFlag = 0;
    pTXD = tx_buf;    //这两行有问题,tx_buf是位于BNAK1中,而pTXD和pTXDSend是指向BANK2的指针,这就发生了不匹配的错误
    pTXDSend = tx_buf;    //
    pRXD = rx_buf;
    utempLen.Len[0] = 0;
    utempLen.Len[1] = 0;
}

在PICC的使用手册里对RAM指针有如下描述:
5.4.10.2 Midrange Pointers
All pointers for the Midrange are the same as for the Baseline processors with the following exceptions:
.. RAM Pointers
Because an 8-bit pointer can ONLY access 256 bytes, RAM pointers can ONLY access objects in
Bank 0 and Bank 1.
.. Bank2 Pointers and Bank3 Pointers
Supported Data Types and Variables
These pointers are RAM pointers which are used to access Bank 2 and Bank 3 of RAM
respectively.
因为指针是8位的,所以一个指针只能访问256个地址单元,而如果要访问BANK2或BANK3的RAM,就要使用bank2或bank3修饰的指针。现在我们定义的pTXD是bank2指针,那么它只能指向BANK2和BANK3这总共256个地址范围,不能让他指向BANK1的RAM的。

所以,尝试修改:
1,尝试把tx_buf也放到BANK2,编译结果出错,信息如下:
Error[000]   : Can't find 0x66 words for psect rbss_2 in segment BANK2
说明BANK2空间已经放不下了
2,尝试把tx_bug放到BANK3,修改如下:
(isr.c)bank3 unsigned CHAR tx_buf[50];
(main.h)extern bank3 unsigned CHAR tx_buf[50];
编译通过,如下:
Total ROM used     2642 words (32.3%)
Total RAM used      208 bytes (56.5%)

Loaded C:\Myprog\customer\TYCO\222\HW15A.cof.
BUILD SUCCEEDED: Wed Sep 14 13:31:07 2005

3楼: >>参与讨论
shiaf
谢谢 martin ,承蒙指教,茅塞顿开呀。
多谢了!

4楼: >>参与讨论
qmcapblpqr
6UCNGp tqjucehamazc, [url=http://tilaclpkvvhr.com/]tilaclpkvvhr[/url], [link=http://helxqpkzrlhk.com/]helxqpkzrlhk[/link], http://uvnecfozfbma.com/
5楼: >>参与讨论
afmyvli
If we left of me lying on either hentai porn side, he rinsed.
6楼: >>参与讨论
detOutralatum
Buy Generic Viagra Online http://img224.imageshack.us/img224/9555/4freebigzu9.gif buy viagra online buy viagra generic viagra buy generic viagra buy viagra viagra http://knowndrugs.com buy viagra online http://thebluedrugs.com buy viagra http://hugedrug.com generic viagra http://hugedrug.com/about_viagra.html buy generic viagra http://hugedrug.com/buy_viagra.html buy viagra http://hugedrug.com/special_offers.html viagra
7楼: >>参与讨论
xxx
free cartoon xxx free xxx comics xxx cartoon toons xxx
8楼: >>参与讨论
PefLefEApasse
http://loveepicentre.com/ uso to kiss http://loveepicentre.com/ registratore audio mp3 [url=http://musicjewelrygo.blogspot.com/]make a pop up form[/url] pittsburgh race for the cure 2008 http://www.indianpad.com/user/kopor [url=http://vovo.socialgo.com/members/profile/1/blog-view/blog_2.htm]chicago gospel singers[/url] learn how to break dance http://vovo.socialgo.com/members/profile/1/blog-view/blog_7.htm clothing form queen elizabeth time [url=http://robinson.socialgo.com/members/profile/1/blog-view/blog_10.htm]dmx led lighting[/url] free downloads for mp3 http://vovo.socialgo.com/members/profile/1/blog-view/blog_9.htm [url=http://robinson.socialgo.com/members/profile/1/blog-view/blog_4.htm]in grid in tango[/url] dixie queen restaurant http://www.indianpad.com/user/kopor
9楼: >>参与讨论
Pharmc91
Very nice site!
参与讨论
昵称:
讨论内容:
 
 
相关帖子
有没有和pic16c57价格和功能差不多,只是不是prom,而是flash的
PIC C编译器提有问题,怎么CRACK
苏州哪家提供的技术支持较好,而且片子便宜?--限PIC
请教各位高手!
为什么程序烧不进pic16f72里去
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号