调用ATTM_SVC_CREATE_DB_128时reset_mem_alloc_fail

4个帖子/ 0新
最后一篇
Zheshen.
离线
最后一次露面:10个月前1年
加入:2015-08-11 20:01
调用ATTM_SVC_CREATE_DB_128时reset_mem_alloc_fail

嗨,我正在尝试通过添加播放服务和自定义服务来遵循模​​板示例(extent_peripheral_template)。自定义服务有4个特征,值长度设置为20,20,250,500字节。在调用custs1_create_db_req_handler - > attm_svc_create_db_128 - > attmdb_add_service时,我收到了这个重置代码reset_mem_alloc_fail如果我从250到200的第三个特征的长度更改,则代码运行正常。

我的问题是:我可以为所有特征声明多少个字节?我注意到固件尺寸约为15k,所以应该有足够的空间。我需要增加一些堆大小吗?

谢谢,

关键词:
设备:
mt_dialog.
离线
最后一次露面:5个月1周前
职员
加入:2015-06-08 11:34
Zheshen,

Zheshen,

数据库的大小受到数据库堆大小的限制,可以遵循以下链接以增加DB堆的大小。

http://support.dialog-semicondiondiondum/increasing-dbheapsz.

谢谢mt_dialog.

Zheshen.
离线
最后一次露面:10个月前1年
加入:2015-08-11 20:01
嗨mt_dialog,

嗨mt_dialog,

我遵循上面提供的线程,并在da1458x_config_advance中更改了db_heap_sz,从1024到2048中更改为2048,但它没有帮助。在.map文件中我找到了以下内容:

基础Addr大小类型attr idx e section name对象

0x00080768 0x0000040c zer rw 516 heap_db_area jump_table.o
0x00080b74 0x00000154 zer rw 517 heap_env_area jump_table.o
0x00080cc8 0x0000052c zer rw 519 heap_msg_area jump_table.o

堆大小似乎没有变化。我查看了db_heap_sz上方的评论,似乎可以说,如果睡眠模式是cfg_ext_sleep或没有睡眠(这是我配置的),则会自动计算堆大小。

声明heap_db_area在项目搜索似乎表明,它的大小是由在em_map_ble.h定义RWIP_HEAP_DB_SIZE_JT确定:

#ifndef db_heap_sz.
#define rwip_heap_db_size_jt 1024 //以字节为单位
#别的
#define rwip_heap_db_size_jt db_heap_sz //以字节为单位
#万一

因此,如果在没有睡眠或ext睡眠模式下,由于未定义db_heap_sz,因此堆大小会自动默认为1024.否则它将设置为db_heap_sz。我的问题是在em_map_ble中上面的常量1024达到更高的值,而不是在何处介绍困难?

谢谢,

Joacimwe.
离线
最后一次露面:1年8个月前
格鲁鲁
加入:2014-01-14 06:45
只是放置“#define db_heap

只需将“#define db_heap_sz 2048”在DA1458x_config_Advanced.h中放置在if-bolt之外,以便您确保应用,并且您将很好。