⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
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: keep in RetRAM, 1: re-init是必需的(当使用Extended Sleep时设置为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,
其他#
空,空,
# endif
custs1_init,零
},
在cust_prf_funcs数组中,看起来我可以编译代码。
你能帮我弄清楚这个问题吗?或者你有更好的建议?

问候,
盎司

mantioned错误:
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配custs1.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配custs2.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配app_diss_task.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配custs3.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配user_profile.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配atts_task.obj(.constdata)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配llc.obj(.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:错误:L6406E:执行区域中没有空间与。any选择器匹配jump_table.o(.text)。
.\ \ \ \ \ \ \ \ \ \sdk\common_project_files\da1458x_scatter_config.h:错误:L6406E:执行区域中没有空间与。any选择器匹配command_def.o(.constdata)。
.\ \ \ \ \ \ \ \ \ \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文档中找到关于scatterfile的更多信息。你可以从以下链接下载本文件:

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

https://support.dialog-semiconductor.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)会增加应用程序的大小,因此从scatterfile中分配的空间可能足够了。很高兴你把问题解决了。我想让你知道,如果你发现任何上述答案有用,请标记其中一个为接受。

谢谢,PM_Dialog