解决最新版本IAR for 8051 8.30 编译协议栈Z-Stack有错误
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后面的##去掉就行了),不是所有编译器都支持这种写法