技术人员、同仁:
你们好!最近在整zigbee协议栈,从官网上下了代码,编译连接时遇到标题中问题,问题描述进一步如下:
1、问题描述
Zigbee 协议栈
软件环境:在IAR8051 9.10版本下;
程序: Z-Stack Home 1.2.0 文件中程序 “SampleLight.eww”
2、编译通过,连接时提示“Fatal Error[e72]: Segment LOCK_BITS_ADDRESS_SPACE must be defined in a segment definition option (-Z, -b or -P)”,请问这是为什么?编译前什么都没修改和设置!
Susan Yang:
需要添加预编译宏
把 MAKE_CRC_SHDW 放到C/C++ Compiler->Preprocessor->Defined Symbols
zhi fang:
回复 Susan Yang:
技术,同仁:
你们好!
按照你所说的,设置加入后出现如下编译连接提示:
“MAKE_CRC_SHDW“编译又提示”Fatal Error[e72]: Segment CRC_SHDW must be defined in a segment definition option (-Z, -b or -P)“
OnBoard.c程序中有如下代码行:
#if defined MAKE_CRC_SHDW#pragma location="CRC_SHDW"const CODE uint16 _crcShdw = 0xFFFF;#pragma required=_crcShdw
#elif !defined MT_UBL_FUNC
#pragma location="LOCK_BITS_ADDRESS_SPACE"__no_init uint8 _lockBits[16];#pragma required=_lockBits
”CRC_SHDW“和”LOCK_BITS_ADDRESS_SPACE“应该有值吧?它们的定义可以在哪里找到了?
zhi fang:
回复 Susan Yang:
你好!
试了你所说的方法,编译连接提示”Fatal Error[e72]: Segment CRC_SHDW must be defined in a segment definition option (-Z, -b or -P)“?
OnBoard.c程序中
#if defined MAKE_CRC_SHDW#pragma location="CRC_SHDW"const CODE uint16 _crcShdw = 0xFFFF;#pragma required=_crcShdw
#elif !defined MT_UBL_FUNC
#pragma location="LOCK_BITS_ADDRESS_SPACE"__no_init uint8 _lockBits[16];#pragma required=_lockBits
”CRC_SHDW“和”LOCK_BITS_ADDRESS_SPACE“定义从哪里可以找到?
谢谢
Susan Yang:
回复 zhi fang:
可以参考下这个帖子 https://e2e.ti.com/support/wireless_connectivity/f/158/p/97847/385267
Leo1:
回复 zhi fang:
在工程配置的linker->config->linker configration file勾选override default,路径改为…zstack\Tools\CC2530DB\cc2530-sb.xcl。我是这么解决的。