概述
本文开发环境如下:
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常见报错解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复