IAR编译zstack常见报错解决

本文开发环境如下:

IAR版本:8.1
硬件平台:TI的cc2530
zstack版本:2.3.0-1.4.0

持续更新

如何打开一个工程

一般工程文件的所在路径为:ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB
在这里插入图片描述
.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:\code\MCU\cc2530\air_sensor\Projects\zstack\Samples\SampleApp\CC2530DB\CoordinatorEB-Pro\Obj\AF.r51 )

针对这类报错,我们右键工程,选择Options,并将其中的number of virtual改为8,如下图所示:
在这里插入图片描述
这时候在编译,发现还是会报相同的错,这还是IAR版本的锅,我们再在Projects\zstack\ZMain\TI2530DB目录下找到chipcon_cstartup.s51文件
在这里插入图片描述
对这个文件进行替换,百度网盘链接,提取码abcd

替换后重新编译即可。

Error[Pa045]: function “” has no prototype D:\code\MCU\cc2530\chuankou\ZStack-CC2530-2.3.0-1.4.0\Projects\zstack\Samples\SampleApp\Source\iic_fxread.c 204

这种问题一般出现在加入自己编写的函数后,我们在之前的options选项中,取消选择Require prototypes即可。
在这里插入图片描述

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zccccccc_tz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值