执行区域ER_IROM5大小超过限制

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
4个帖子 / 0新
最后一篇文章
lewuyouc
离线
最后一次露面:1年6个月前
加入:2016-07-18 01:38
执行区域ER_IROM5大小超过限制

嗨对话框

我将我的alg lib文件添加到项目中。大小超过限制。您能告诉我如何设置该地区解决问题。

***使用编译器'v5.06更新6(构建750)',文件夹:'c:\ keil_v5 \ arm \ armcc \ bin'
构建目标'Prox_reporter_580'
链接...
。区域包含24个字节的填充物和1692个字节(总计1716个接头生成的内容)。

没有足够的信息来产生Symdefs文件。
完成:1个信息,0警告和2条错误消息。
“。\ out_580 \ prox_reporter_580.axf” - 2错误(s),0警告(s)。
目标未创建。

关键字:
设备:
pm_dialog
离线
最后一次露面:22小时35分钟前
职员
加入:2018-02-08 11:03
嗨,lewuyouc,

嗨,lewuyouc,

这意味着您的代码超出了限制。您使用哪个优化级别的二进制图像的大小?

谢谢,pm_dialog

lewuyouc
离线
最后一次露面:1年6个月前
加入:2016-07-18 01:38
嗨,pm_dialog

嗨,pm_dialog

使用优化:Level3(-o3),C99模式。我的alg lib .lib文件是16kb,添加我的alg lib比以前多了6296,RAM:1764,ROM:6368。

如果没有我的alg lib,则prox_reporter_580.hex文件为74kb,程序大小:代码= 23996 ro-data = 2312 rw-data = 576 zi-data = 7592

感谢您的重播!

lewuyouc

pm_dialog
离线
最后一次露面:22小时35分钟前
职员
加入:2018-02-08 11:03
嗨,lewuyouc,

嗨,lewuyouc,

DA14580的内存有限,大多数图像代码应适合ER_IROM5(31.424字节),如果您超过限制,则链接器将无法链接您的项目。一个可能的快速解决方案是将ER_IROM5的大小从0x7AC0更改为0x7BC0,这将为您提供0x100字节(256个字节)。限制是您将无法从OTP启动。从您的帖子中可以看到,固件的大小为32796字节,因此您需要1372个字节。

另一个不直的解决方案是重新排列散点器以提供更大的应用。考虑到您正在使用延长的睡眠,并且代码无法驻留到OTP,您可以尝试以下步骤。同样,您将无法使用OTP。

1.通过更改散点器并将ER_IROM5设置为ER_IROM5 0x20000440 0x7BC0通过更改ER_IROM5增加0xff空间。

2.通过删除RW_IRAM50并在ER_IROM5部分中添加可用空间来增加ER_IROM5中的代码空间。另外,您可以将RW_IRAM51移动到其他地址。ZI_RET20部分是包括非退休堆的可能候选者。通过这样做,将用于源代码和RW数据的连续内存区域从0x20000440到近35kb的0x20009000。为了实施此操作,请遵循以下说明。

一个。删除RW_IRAM50和RW_IRAM51部分

b。将ER_IROM5的大小更改为er_irom5 0x20000440(0x9000-0x440)

C。在两个ZI_RET20定义中,在ZI_RET20中,非保留堆将被移动,例如在ZI_RET20中移动。

请检查UM-B-011 DA14580内存图和散点文件文档以获取有关内存图和散点文件的更多信息。

总之,我建议您看看DA14585/6产品系列和我们的新SDK6。该产品系列是为远程控制,接近标签,信标,连接的医疗设备和智能家庭节点等产品添加蓝牙低能的理想选择。亚博电竞菠菜它支持所有蓝牙开发,包括蓝牙5和蓝牙低能网。另外,DA14585和6具有96 KB的RAM,用户的内存是两倍。另外,在DA14585/6支持门户中,您将能够找到各种各样的软件示例和用户手册,这些示例和用户手册确实可以帮助您入门。

谢谢,pm_dialog