|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
3K程序,如何从876迁到873? |
作者:dfli 栏目:单片机 |
使用PICC,近3K程序,从876迁到873,连接错,如何处理? 用PIC16F876, MEMORY Usage Map: Program ROM $0000 - $0853 $0854 ( 2132) words Program ROM $0D80 - $0FFF $0280 ( 640) words $0AD4 ( 2772) words total Program ROM Bank 0 RAM $0020 - $0049 $002A ( 42) bytes Bank 0 RAM $0070 - $007C $000D ( 13) bytes $0037 ( 55) bytes total Bank 0 RAM Bank 1 RAM $00A0 - $00EA $004B ( 75) bytes total Bank 1 RAM Bank 2 RAM $0110 - $0148 $0039 ( 57) bytes total Bank 2 RAM Config Data $2007 - $2007 $0001 ( 1) words total Config Data Program statistics: Total ROM used 2772 words (33.8%) Total RAM used 187 bytes (50.8%) 用PIC16F873, Executing: "C:\HT-PIC\bin\picc.exe" -E"tctrl.lde" "D:\SPR\tsoft\testhelp.obj" "D:\SPR\tsoft\aquisition.obj" "D:\SPR\tsoft\autocheck.obj" "D:\SPR\tsoft\delay.obj" "D:\SPR\tsoft\initsystem.obj" "D:\SPR\tsoft\innereeprom.obj" "D:\SPR\tsoft\isr.obj" "D:\SPR\tsoft\main.obj" "D:\SPR\tsoft\sms0601.obj" "D:\SPR\tsoft\tcontrol.obj" -M"tctrl.map" -O"tctrl.cof" -O"tctrl.hex" -Q -MPLAB -16F873 Warning[000] : psect rbss_2 not specified in -p option (first appears in C:\HT-PIC\LIB\picrt412.obj) Error[000] D:\SPR\tsoft\innereeprom.obj 22 : Fixup overflow in expression (loc 0x53E (0x502+60), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 22 : Fixup overflow in expression (loc 0x552 (0x502+80), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 22 : Fixup overflow in expression (loc 0x56A (0x502+104), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 24 : Fixup overflow in expression (loc 0x580 (0x580+0), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 26 : Fixup overflow in expression (loc 0x5F4 (0x5BE+54), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 28 : Fixup overflow in expression (loc 0x624 (0x5F6+46), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 31 : Fixup overflow in expression (loc 0x650 (0x644+12), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 31 : Fixup overflow in expression (loc 0x672 (0x644+46), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 31 : Fixup overflow in expression (loc 0x68A (0x644+70), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 33 : Fixup overflow in expression (loc 0x69A (0x694+6), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 33 : Fixup overflow in expression (loc 0x6A8 (0x694+20), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 33 : Fixup overflow in expression (loc 0x6B4 (0x694+32), size 1, VALUE 0x1F4) Error[000] D:\SPR\tsoft\innereeprom.obj 33 : Fixup overflow in expression (loc 0x6C6 (0x694+50), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 33 : Fixup overflow in expression (loc 0x6D0 (0x694+60), size 1, VALUE 0x1EB) Error[000] D:\SPR\tsoft\innereeprom.obj 35 : Fixup overflow in expression (loc 0x6EE (0x6E8+6), size 1, VALUE 0x1EC) Error[000] D:\SPR\tsoft\innereeprom.obj 35 : Fixup overflow in expression (loc 0x6FA (0x6E8+18), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 85 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 119 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 157 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 189 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 397 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 471 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 541 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 597 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 637 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 663 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 683 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 703 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1F4) Error[000] innereeprom.rlf 731 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EC) Error[000] innereeprom.rlf 745 : Fixup overflow in expression (loc 0x4B (0x4B+0), size 1, VALUE 0x1EB) Error[000] innereeprom.rlf 745 : Too many errors BUILD FAILED: Thu Sep 21 15:51:56 2006 请高人指点! |
2楼: | >>参与讨论 |
作者: anzhongxin 于 2006/9/22 10:53:00 发布:
回复! 看看RAM吧,873的好像不够用! |
3楼: | >>参与讨论 |
作者: martin 于 2006/9/22 11:45:00 发布:
指针的问题 问题:我编译得到这样的错误信息“Fixup error referencing ...”或者“Fixup error in expression ...”。这是什么意思,我该怎么做来解决这个错误? 解答:简单地说,这代表连接器被指示要去调整(修正Fixup)一个对存储位置的引用,这个计算出来的地址可能不适合可用的空间,比如,对一个字节(8位)的引用,要求装入一个比0xFF大的值。 典型地,这通常发生在使用PICC编译器,指针没有被恰当声明的时候,我们看个例子: bank2 CHAR ch; CHAR *ptr; ptr = &ch; // fixup error 这里发生fixup error的原因是,“ptr”是bank0指针 - 它必须是指向bank2的指针才不会出错,如: bank2 CHAR *ptr;(译者注:bank0指针的地址是8位的[FSR],它可指向bank0和bank1共256字节的空间;而bank2指针,地址是9位的[IRP+FSR],它可指向bank2和bank3的高地址256字节的空间。本例中,尝试让一个bank0指针“ptr”来指向位于bank2里的ch,显然,ch的地址长度是和bank0指针不匹配的) * - 本贴最后修改时间:2006-9-22 11:49:45 修改者:martin |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |