Fatal Error: Segment LOCK_BITS_ADDRESS_SPACE must be defined in a segment definition option (-Z, -b or -P) ?谢谢!
技术人员、同仁:
你们好!最近在整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)”,请问这是为什么?编译前什么都没修改和设置!
需要添加预编译宏
把 MAKE_CRC_SHDW 放到C/C++ Compiler->Preprocessor->Defined Symbols
技术,同仁:
你们好!
按照你所说的,设置加入后出现如下编译连接提示:
“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“应该有值吧?它们的定义可以在哪里找到了?
你好!
试了你所说的方法,编译连接提示”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“定义从哪里可以找到?
谢谢
可以参考下这个帖子 https://e2e.ti.com/support/wireless_connectivity/f/158/p/97847/385267
IAR版本太新了,你看下协议栈安装目录下的Release Note,里面有IAR的版本需求,你换一个
在工程配置的linker->config->linker configration file勾选override default,路径改为...zstack\Tools\CC2530DB\cc2530-sb.xcl。我是这么解决的。
Segment Fatal Error definition option 相关文章:
- 关于CC2530做成库后编译链接出现Error: Segment IDATA_I...问题
- Z-Stack 3.0 打开ZTOOL_P1后, 提示Error Segment XDATA_I is too long
- CC2530 编译bootload工程时出现Fatal Error: Segment PDATA_Z must be defined in a segment definition option (-Z, -b or -P) 该怎么解决
- AF_DataRequest 函数返回ZMemError
- Error while running Linker
- Error: Undefined external "?V1" referred in AF 求解决,谢谢!