你好
当我调用“status = attmdb_add_service时(shdl,dest_id,nb_att_uuid_16,0,nb_att_uuid_128,total_size);”功能
nb_att_uuid_16 = 15.
nb_att_uuid_128 = 6.
Total_size = 868.
软件崩溃了。如果over_size低于868,则正常工作。我试图增加堆大小,但它是相同的结果。
如果我在函数之前和之后放置调试打印,我可以看到它的基本内部的崩溃。
设备:
嗨,每个克里斯蒂安娜,
设备崩溃的原因是因为您用完了数据库堆,这就是设备分配数据库请求的内存的大量,您已提到您已饱和导入堆(它是DB_Heap_sz定义吗?)。显然您要么增加了错误的堆型,要么在设备以不同的睡眠模式运行时增加DB堆大小。例如,如果您希望增加DB_HEAP_SZ,请转到da1458x_conifg_advanced.h文件,并在#if定义(cfg_mem_map_ext_sleep)下||!定义(cfg_mem_map_deep_sleep)使用相应的大小添加以下#define db_heap_sz。
谢谢mt_dialog.
你好
在这种情况下,我认为该函数应该返回“att_err_insuff_resource”而不是崩溃。
每
嗨,每个基督徒,
设备不会崩溃,它刚刚被调用的wrap_platform_reset()重置,是的,函数应该返回所提到的内容,原因它不是因为分配所需空间的Malloc函数只调用它在函数返回之前重置,因此如果我正确地发出问题,那么您的设备将在Wrap_platform_reset()中最终找到,您应该得到的错误消息是reset_mem_alloc_fail。所以请尽量遵循上面提到的内容。
谢谢mt_dialog.