本文开发环境如下:
IAR版本:8.1
硬件平台:TI的cc2530
zstack版本:2.3.0-1.4.0
持续更新
上手cc2530
- 如何打开一个工程
- 编译常见报错
- Error[e16]: Segment RAM_CODE_FLASH (size: 0x27 align: 0) is too long for segment definition. At least 0x4 more bytes needed. The problem occurred while processing the segment placement command
- Error[e46]: Undefined external "?V1" referred in AF ( D:codeMCUcc2530air_sensorProjectszstackSamplesSampleAppCC2530DBCoordinatorEB-ProObjAF.r51 )
- Error[Pa045]: function "" has no prototype D:codeMCUcc2530chuankouZStack-CC2530-2.3.0-1.4.0ProjectszstackSamplesSampleAppSourceiic_fxread.c 204
如何打开一个工程
一般工程文件的所在路径为:ZStack-CC2530-2.3.0-1.4.0ProjectszstackSamplesSampleAppCC2530DB

.eww文件即为IAR的工程文件。
打开后可能会出现下面几个对话框,这是由于IAR版本过高导致的,不用管,一里路yes确定下去就好了。


打开工程后,在左边我们可以看到一个workspace,虽然有很多文件夹,但我们重点关心的主要是画箭头的几个文件,如下图:

从上到下主要包含了:用户应用层代码、zstack配置、main函数。
然后我们右键工程,选择 Rebuild all对整个工程进行编译。
编译常见报错
Error[e16]: Segment RAM_CODE_FLASH (size: 0x27 align: 0) is too long for segment definition. At least 0x4 more bytes needed. The problem occurred while processing the segment placement command
这种报错提示:分配的空间大小不够,我们首先找到TOOLS文件下的f8w2530.xcl文件,利用CTRL+F找到报错的那一项,如下图:

对下面的代码进行修改,将空间多分配4个字节即可,如下:
-D_RAM_CODE_FLASH_END=(_RAM_CODE_FLASH_START+0x26)
Error[e46]: Undefined external “?V1” referred in AF ( D:codeMCUcc2530air_sensorProjectszstackSamplesSampleAppCC2530DBCoordinatorEB-ProObjAF.r51 )
针对这类报错,我们右键工程,选择Options,并将其中的number of virtual改为8,如下图所示:

这时候在编译,发现还是会报相同的错,这还是IAR版本的锅,我们再在ProjectszstackZMainTI2530DB目录下找到chipcon_cstartup.s51文件

对这个文件进行替换,百度网盘链接,提取码abcd。
替换后重新编译即可。
Error[Pa045]: function “” has no prototype D:codeMCUcc2530chuankouZStack-CC2530-2.3.0-1.4.0ProjectszstackSamplesSampleAppSourceiic_fxread.c 204
这种问题一般出现在加入自己编写的函数后,我们在之前的options选项中,取消选择Require prototypes即可。

最后
以上就是搞怪八宝粥最近收集整理的关于IAR编译zstack常见报错解决的全部内容,更多相关IAR编译zstack常见报错解决内容请搜索靠谱客的其他文章。
发表评论 取消回复