⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个职位/ 0个新职位
最后一篇
盎司
离线
最后一次露面:2年8个月前
加入:2018-10-11 07:20
实施10个特征

你好,

我试图在项目ble_app_profile中添加3个特征到服务CUST1。当我在Training_02_custom_profile_example_v1.0附加文件中写入特征时,我成功地添加了一个特征,但当我执行完全相同的过程添加更多特征(并且项目编译良好)时,函数wrap_platform_reset中的项目中断。为什么会这样?每项服务的特征数量有限制吗?

问候,

设备:
PM_DIALOG.
离线
最后一次露面:1天10小时前
职员
加入:2018-02-08 11:03
嗨,盎司,

嗨,盎司,

发生Wrap_platform_reset()的最明显原因是由于内存分配故障,这意味着您的软件中存在内存泄漏,您可以在某处分配数据,并且您从未释放它们(您可以在参数错误中验证函数,应该是reset_mem_alloc_fail)。为应用程序选择最佳堆,您应该通过更改DA1458x_config_Advanced.h文件中的堆的大小进行实验。

谢谢,PM_DIALOG.

盎司
离线
最后一次露面:2年8个月前
加入:2018-10-11 07:20
嗨PM_Dialog,

嗨PM_Dialog,

感谢您的回复,我不使用任何睡眠模式,因此似乎定义了以下行:
#define reinit_descript_buf 1 // 0 // 0:保持在逆行状态,1:需要重新init(使用延长睡眠时设置为0)
#定义USE_MEMORY_MAP EXT_SLEEP_SETUP
而堆只能在CFG_MEM_MAP_DEEP_SLEEP模式下定义。
以下是在da1458x_config_advanced.h文件中编写的内容:
如果选择CFG_MEM_MAP_EXT_SLEEP或未选择睡眠模式,则会自动配置堆内存大小
您是否有任何建议来解决这个问题?

在您的回复中,您提到我可以验证是否在函数的参数错误中,这应该是reset_mem_alloc_fail。
你的意思是哪个函数?

问候,
盎司

PM_DIALOG.
离线
最后一次露面:1天10小时前
职员
加入:2018-02-08 11:03
嗨,盎司,

嗨,盎司,

在一个服务中添加更多的特性没有任何限制,例如添加10个特性也没有任何问题。添加任何Services/Chars时,内存将从DB_HEAP_SZ分配。所以,wrap_platform_reset命中的原因是由于内存分配,正如我在之前的文章中提到的。尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以将值设置为2048。关于RESET_MEM_ALLOC_FAIL,请查看arch.h头文件中wrap_platform_reset()函数的注释。

谢谢,PM_DIALOG.

盎司
离线
最后一次露面:2年8个月前
加入:2018-10-11 07:20
嗨PM_Dialog,

嗨PM_Dialog,

我喜欢你说和它有效,但我的下一步是创建第三服务,所以我做了写的https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
我添加了第二个服务,就像在这个指南中写的,但当我做了第三个服务,我得到了以下消息错误。
我怀疑它发生的原因是相同的,因为当我把下一行放到注释中:
{TASK_CUSTS1,
custs1_att_db,
CUST1_IDX_NB,
#如果(BLE_APP_PRESENT)
app_custs1_create_db app_custs1_enable,
其他#
空,空,
#万一
custs1_init,null.
},
在cust_prf_funcs数组中,它看起来我可以编译代码。
你能帮我找出这个问题,还是有更好的建议?

问候,
盎司

Mantioned错误:
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配custs1.o(.constdata)。
。\ .. \ .. \ .. \ .. \ .. \ .. \ .. \。
。\ .. \ .. \ .. \ .. \ .. \ .. \ ... \ sdk \ common_project_files \ da1458x_catter_config.h:错误:l6406e:没有执行区域的空间.Anany选择器匹配app_diss_task.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配custs3.o(.constdata)。
。\ .. \ .. \ .. \ .. \ .. \ .. \。\ sdk \ common_project_files \ da1458x_catter_config.h:错误:l6406e:与执行区域中没有空间.Anany选择器匹配user_profile.o(.constdata)。
。\ .. \ .. \ .. \ .. \ .. \ .. \。\。
。\ .. \ .. \ .. \ .. \ .. \ .. \。\ .. \。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配gapc_task.obj(.constdata)。
.\ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配gpio.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配usercusts3_def.o(.conststring)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配mvars.o(.data)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配mvars.o(.data)。
。\ .. \ .. \ .. \ .. \ .. \。\。
。\ .. \ .. \ .. \ .. \ .. \ .. \。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6407E:聚合大小0x84字节的节无法放入任何选择器(s)。
没有足够的信息来生成Symdefs文件。
没有足够的信息来生成一个反馈文件。
没有足够的信息来列出图像符号。
没有足够的信息来列出图像映射中的加载地址。
完成:4个信息,0警告和15条错误消息。
”。\ out_580 \ ble_app_profile_580。axf" - 15个错误,1个警告。

PM_DIALOG.
离线
最后一次露面:1天10小时前
职员
加入:2018-02-08 11:03
嗨,盎司,

嗨,盎司,

似乎从分散文件中分配的空间不够。对您的问题的一个可能的解决方案是重新排列scatterfile,以便能够执行更大的应用程序。我强烈建议你阅读一个论坛过去的帖子,在那里你可以找到适当的步骤,以重新安排散点文件。请点击下面的链接:

https://support.dialog-semiconductor.com/how-build-program-code-larger-32kb

正如在此帖子中提到的那样,您可以从我们的支持门户中找到有关UM-B-011文档中的散点文件的更多信息。您能够从下面的链接下载此文档:

https://support.dialog-semiconductor.com/resource/um-b-011-da14580-memory-map-and-scatter-file

https://support.dialog-seminile.com/resource/um-b-011-da14580-memory-map-excel-tool.

我建议您尝试一下,如果您有任何其他问题,或者您的问题尚未解决,请回复我。

谢谢,PM_DIALOG.

盎司
离线
最后一次露面:2年8个月前
加入:2018-10-11 07:20
嗨PM_Dialog,

嗨PM_Dialog,

感谢您的回复,我将优化级别更改为3,现在似乎它正常工作。这是一个在如此高的优化水平工作的问题吗?

问候,
盎司

PM_DIALOG.
离线
最后一次露面:1天10小时前
职员
加入:2018-02-08 11:03
嗨,盎司,

嗨,盎司,

高优化级别,例如O0,增加应用程序的大小,因此从散射文件分配的空间可能足够了。很高兴你识上你的问题。我想让你知道,如果你发现上述任何答案有用请标记其中一个接受。

谢谢,PM_DIALOG.