你好,
我想加3项目中服务CUST1 ble_app_profile特征。我成功添加一个特性,当我喜欢写在文件Training_02_custom_profile_example_v1.0连接,但当我做完全相同的程序添加更多特性(和项目编译好)wrap_platform_reset项目中断函数。为什么会这样呢?有任何限制的数量特征/服务?
问候,
关键词:
设备:
嗨,盎司,
最明显的原因,wrap_platform_reset()发生是由于内存分配失败,这意味着有一个内存泄漏你的软件,你分配数据的地方和你永远不会释放他们(您可以验证在函数的参数错误,应该RESET_MEM_ALLOC_FAIL)。选择最优堆为您的应用程序,你应该尝试通过改变da1458x_config_advanced堆的大小。h文件。
谢谢,PM_Dialog
嗨PM_Dialog,
感谢你的回复,我不使用任何睡眠模式看来以下线定义:
#定义REINIT_DESCRIPT_BUF 1 / / / / 0: RetRAM, 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。
你的意思是什么功能?
问候,
盎司
嗨,盎司,
没有任何限制添加更多特性的一个服务,例如没有任何问题,如果您加10的特点。添加任何服务/字符,从DB_HEAP_SZ内存分配。wrap_platform_reset冲击的原因是由于内存分配,正如我以前我在文章中提到过。试图定义和增加DB_HEAP_SZ da1458x_config_advanced,例如您可以将一个值为2048。关于RESET_MEM_ALLOC_FAIL,请检查wrap_platform_reset的评论()函数在拱门。h头文件。
谢谢,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:部分的总大小0 x84字节不能适应.ANY选择器(s)。
没有足够的信息来产生一个SYMDEFs文件。
没有足够的信息来生成一个反馈文件。
没有足够的信息列表的形象符号。
没有足够的信息在图像映射列表加载地址。
完成:4信息,0警告和15个错误消息。
”。\ out_580 \ ble_app_profile_580。axf”——15个错误(s), 1 (s)的警告。
嗨,盎司,
scatterfile的空间分配似乎是不够的。一个可能的解决你的问题将重新scatterfile为了能够执行一个大的应用程序。我强烈建议你读过去的论坛帖子,你会发现为了重新排列scatterfile适当的步骤。请遵循下面的链接:
https://support.dialog-semiconductor.com/how-build-program-code-larger-32kb
在这篇文章中提到的,你可以找到更多的信息关于scatterfile嗯- b - 011文档中从我们支持门户。你可以从下面的链接下载本文档:
https://support.dialog semiconductor.com/resource/um - b - 011 - da14580 -记忆-地图和分散的文件
https://support.dialog semiconductor.com/resource/um - b - 011 - da14580 -记忆-地图- excel工具
我建议尝试,回到我如果你有任何其他问题或如果你的问题尚未解决。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的回复,我改变了优化级别3,现在看来,它正常工作。是一个问题在如此之高的优化工作水平?
问候,
盎司
嗨,盎司,
优化级别高,例如O0,增加应用程序的大小,所以scatterfile的空间分配可能不够。高兴你找到你的问题。我想让你知道,如果你发现任何上述答案有用请其中一个标记为接受。
谢谢,PM_Dialog