微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 解决最新版本IAR for 8051 8.30 编译协议栈Z-Stack有错误

解决最新版本IAR for 8051 8.30 编译协议栈Z-Stack有错误

时间:10-02 整理:3721RD 点击:

Hi All,

最近收到很多工程师的反应,使用最新版本IAR for 8051 8.30以上版本,编译协议栈-Stack工程时会出现以下错误,

Error[e46]: Undefined external "?V1" referred in AF ( C:\Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Samples\SampleApp\CC2530DB\DemoEB\Obj\AF.r51 ) 

目前解决这个问题的办法,

1:Change number of virtual registers to 8

2:替换C:\Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\ZMain\TI2530DB下的chipcon_cstartup.s51文件

8814.chipcon_cstartup.rar

谢谢VV给出的解决办法......前几天刚好碰到这问题

CC2540 BLE 的1.4.1亦可用此方法解决编译出错问题!

完美解决了,错误~!

谢谢,不过求这个怎么破,协议栈是2.3的,怎么更新到最新的协议栈,除了ti的官网有没有别的链接,网盘分享啥的

官网就可以下载的 http://www.ti.com.cn/tool/cn/z-stack

 非常感谢,终于解决头痛的问题了。

hi :

按照上面的做法,我在使用IAR软件编译CC2541的BLE协议1.4.0版本的时候,发现还是会出现错误。

以下是我的问题具体分析:

1.我自己写了4个文件,分别是Hud_application.c/Hud_application.h/Hal_hud.c/Hal_hud.h

这四个文件当中,Hal_hud.c当中会调用Hal_i2c.c中的函数,如HalI2CInit().而Hud_application.c中会调用Hal_hud.c中的函数。

2.我需要在simpleBLEPeripheral.c中调用Hud_application.c中的函数,例如我在SimpleBLEPeripheral_ProcessEvent()函数中调用。

那么问题来了:

在我写好上面第一步的时候,编译和链接都没问题。

但是在我写好上面第二步的时候,就出现了如下截图中的问题:

我有个问题感到很奇怪,既然这里面的链接错误是提示说hal_i2c.c中的函数没有定义,那么在我上面第一步的时候,也是有调用这里面的函数的呀,为什么第一步的时候没有提示?反而在第二步的时候,不是直接调用hal_i2c.c中的函数的时候,它却提示了?

请TI的工程师大大们帮忙看看该问题,不胜感激!

PS:我使用的是TI BLE协议栈BLE-CC254X-1.4.0里面的SimpleBLEPeripheral工程。

TI那些工程师没时间跟你整这些问题

附件为啥下不了啊?谢谢!

请问 number of virtual registers 是在哪里修改的?

就是说找不到这个选项,麻烦了,小白

VV的图片给出了

右击工程文件 选择options-->general options -->target 下有的

工程师您好,我在TI官网下载的Z-Stack Home 1.2.2.42930,IAR也是下载的V9.1最新版本,但是按照上面的修改方法修改之后还是出现以下情况:

Error[e46]: Undefined external "?V10" referred in AddrMgr ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external "?V11" referred in AddrMgr ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external "?V12" referred in AddrMgr ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external "?V13" referred in AddrMgr ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external "?V14" referred in AddrMgr ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )
Error[e46]: Undefined external "?V15" referred in APS ( D:\快盘\Desktop\Z-Stack Home 1.2.2.42930\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib )

求解决方案

请问,我这边9.1提示

Fatal Error[LMS001]: License check failed. Use the IAR License Manager to resolve the problem.
No license found. [LicenseCheck:2.14.2.842, RMS:8.5.2.0015, Feature:8051.EW.COMPILER, Version:1.03]
Error while running C/C++ Compiler

怎么解决呢?

你下载的是未破解版的IAR啊?安装的时候可以选免费版或者试用版的license

我注册个免费版的 license 试试。

mark。

那个   .s51文件,不要使用网站上下载的,用Z-Stack Home程序压缩包里直接解压出来的去替换相应路径下的文件就可以了。

我也遇到了这个问题、请问Z-Stack Home程序压缩包里的哪个文件替换?

您好,我也在学习zstack-home 1.2.2,您能给我一个iar8051 9.1吗,986458764@qq.com,非常非常的感谢!

我也遇到了这个问题咋解决的?

问题解决了吗

完美解决,谢谢,分享,哈哈

就是替换帖子开头说的那个  .s51文件啊,帖子开头楼主给出的   。s51文件编译不通过,得用压缩包里解压出来的替换才行。



VV大神:
    上面提到的两个方法都试过了,依旧不行。这该如何处理? 

hal_lcd.c 中 #define HAL_IO_SET_PREP(port, pin, val)   st( P##port##_##pin## = val; )  IAR10.10.1 回报警告,把它改为#define HAL_IO_SET_PREP(port, pin, val)   st( P##port##_##pin = val; ) ( pin后面的##去掉就行了),不是所有编译器都支持这种写法

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top