|
查看: 5|回复: 0

[BLE SDK] 编译报错Retention Area Overflow怎么解决?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 6 小时前 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
编译报错 *Error: Retention Area Overflow 32KB, Check your ram_code/retention_data usages*,是什么问题?怎么解决?

回答:

这个错误说明 retention 区域(32K boot 下可保持的 RAM 区域)溢出了——编译链接时,ram_code / retention_data 段需要的空间超过了 32K retention 区域。

常见场景与处理方法:

1、使用了 32K retention 的 boot/link 文件(例如带 deep retention 的工程),而工程中 retention 数据/代码量太大;
2、处理方向是"取舍":
   - 减少 retention 区域里的数据(把不需要保持的变量移到普通 RAM);
   - 调整相关配置(例如协议栈缓冲数量、特性数量,注意业务影响);
   - 换用更大 RAM 的芯片(若产品允许)。
3、可以先统计一下超出多少(哪些段占用量大),联系 FAE 评估是否可以优化协议栈侧的占用。

注意:不要为了强行通过编译随意改动 boot/link 布局,可能导致睡眠唤醒后变量丢失。

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部