您的位置:首页 > Web前端

IAR编译zigbee出现问题Undefined external "?V1" referred in AF

2017-07-20 14:48 435 查看
Error[e46]: Undefined external "?V1" referred in AF ( C:\Texas Instruments\Z-Stack Lighting 1.0.2\Projects\zstack\ZLL\SampleApp\CC253x\RouterEB-Pro\ Obj\AF.r51 )解决问题如下:原来这个是IAR版本的问题引起的,参考这个 http://supp.iar.com/Support/?Note=98110按照参考里面说的解决方法,将workaround.s51 文件加到工程里(我是加到了C:\Texas Instruments\Z-Stack Lighting 1.0.2\Projects\zstack\ZMain\TI2530DB目录下,注意要在工程里该目录右击“add file ... ”),然后再次rebuild后,原来的问题没有了,但是出现了第二个问题,“Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xe more bytes needed. The problem occurred while processing the segment placement command  "-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA0_END", where at the moment of placement the available memory ranges were "IDATA:4e-ff" ”于是又查到 http://e2e.ti.com/support/low_power_rf/f/538/p/303921/1061753.aspx根据以上列出的这个帖子里面的 Luis Johnson (就是贴出了一大个图的那个)给出的解决方法,将numbers of virtual registers 由16 改为8个,再次rebuild,就OK了,没有报错。workaround.s51文件内容如下:
;----------------------------------------------------------------;
; Virtual registers                                              ;
; =================                                              ;
; Below is some segment needed for the IAR ICC C/EC++ compiler   ;
;                                                                ;
; BREG  : A segment for 8 bit registers for use by the compiler. ;
;         ?B0 is the first register.                             ;
; VREG  : Segment that holds up to 32 virtual registers for      ;
;         use by the compiler. ?V0 is the first register.        ;
; PSP   : Segment containing the PDATA stack pointer (?PSP)      ;
; XSP   : Segment containing the XDATA stack pointer (?XSP)      ;
;                                                                ;
;----------------------------------------------------------------;
;----------------------------------------------------------------;

PROGRAM VIRTUAL_REGISTERS
PUBLIC  ?B0
PUBLIC  ?V0
PUBLIC  ?V1
PUBLIC  ?V2
PUBLIC  ?V3
PUBLIC  ?V4
PUBLIC  ?V5
PUBLIC  ?V6
PUBLIC  ?V7
PUBLIC  ?V8
PUBLIC  ?V9
PUBLIC  ?V10
PUBLIC  ?V11
PUBLIC  ?V12
PUBLIC  ?V13
PUBLIC  ?V14
PUBLIC  ?V15
PUBLIC  ?V16
PUBLIC  ?V17
PUBLIC  ?V18
PUBLIC  ?V19
PUBLIC  ?V20
PUBLIC  ?V21
PUBLIC  ?V22
PUBLIC  ?V23
PUBLIC  ?V24
PUBLIC  ?V25
PUBLIC  ?V26
PUBLIC  ?V27
PUBLIC  ?V28
PUBLIC  ?V29
PUBLIC  ?V30
PUBLIC  ?V31
PUBLIC  ?PSP
PUBLIC  ?XSP
RSEG    BREG:BIT:NOROOT
?B0:
DS      8

RSEG    VREG:DATA:NOROOT
?V0:
DS      1
?V1:
DS      1
?V2:
DS      1
?V3:
DS      1
?V4:
DS      1
?V5:
DS      1
?V6:
DS      1
?V7:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V7
?V8:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V8
?V9:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V9
?V10:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V10
?V11:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V11
?V12:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V12
?V13:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V13
?V14:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V14
?V15:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V15
?V16:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V16
?V17:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V17
?V18:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V18
?V19:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V19
?V20:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V20
?V21:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V21
?V22:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V22
?V23:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V23
?V24:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V24
?V25:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V25
?V26:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V26
?V27:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V27
?V28:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V28
?V29:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V29
?V30:
DS      1

RSEG    VREG:DATA:NOROOT
REQUIRE ?V30
?V31:
DS      1

RSEG    PSP:DATA:NOROOT
EXTERN  ?RESET_PSP
REQUIRE ?RESET_PSP
?PSP:
DS      1

RSEG    XSP:DATA:NOROOT
EXTERN  ?RESET_XSP
REQU
a8df
IRE ?RESET_XSP
?XSP:
DS      2

ENDMOD ; VIRTUAL_REGISTERS

END
第二个问题如下:
Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xe more bytes needed. The problem occurred while processing the segment placement command  "-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA_END", where at the moment of placement the available memory ranges were "IDATA:4e-ff"    Reserved ranges relevant to this placement:    IDATA:8-1f           VREG    IDATA:21-40          VREG    IDATA:41-42          XSP    IDATA:43-43          DATA_I    IDATA:44-4b          DATA_Z    IDATA:4c-4d          IDATA_Z    IDATA:4e-ff          ISTACK    BIT:0-7              BREG    BIT:80-97            SFR_AN    BIT:a0-af            SFR_AN    BIT:b8-c7            SFR_AN Error while running Linker  Total number of errors: 1 Total number of warnings: 0I had the exact same problem and I just change the number of virtual registers from 16 to 8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zigbee cc2530
相关文章推荐