我们在一个项目中需要建立大约70个特征。我们已经开始使用ble_app_peripheral项目作为基础和580。
由于这是一项非常耗时的工作,我创建了自动生成函数,为所有特征的所有定义创建了所有c代码。
在添加它们之后,我发现了一个内存错误,这使我想到了一个主题,即一个服务可以拥有的最大特征数是32。
我试图将特性减少到30,但仍然面临相同的内存问题,这导致我转向另一个主题,即我可以增加数据库的堆大小,我确实这样做了。
我将它设置为“#define DB_HEAP_SZ 4096”,但仍然有相同的内存问题。我不得不将特性减少到13,只有这样它才能在启动过程中没有任何错误。但是只有13是很少的,所以我猜唯一的选择是创建一个包含新数据库的新服务?
如果这是唯一的选择,那么我还没有完全理解如何创建一个新服务(基于ble_app_peripheral项目)。我不确定在哪个文件中添加新服务,以及在哪里定义逻辑之间的所有链接。是否有关于如何在此项目中扩展和创建新服务的教程?
设备:
我看到还有额外的顾客服务!我尝试启用这个服务,并将定义设置为1,这样它将运行所有相关功能并设置它。
但当我编译并运行它时,它花了3秒然后它就变成了看门狗?
我还看到没有数据库功能相关的cust2服务,并不能找到任何属性?启用cust2服务时是否缺少什么,或者它是否应该不做任何修改就运行?
嗨r91_andersson,
在一个服务中添加更多的特性没有任何更简单的限制。添加任何服务/特征时,内存是从DB_HEAP_SZ分配的。因此,堆大小是关于服务和特征数量的唯一限制。如果将DB_HEAP_SZ设置为4096,并且仍然存在内存分配问题,这意味着不能分配70个特征。可能您增加了错误的堆类型,或者当设备在不同的睡眠模式下运行时,您增加了DB堆大小。例如,如果您希望增加DB_HEAP_SZ,请转到da1458x_conifg_advanced.h文件,并在#if defined(CFG_MEM_MAP_EXT_SLEEP) || !defined(CFG_MEM_MAP_DEEP_SLEEP)下添加以下具有相应大小的#define DB_HEAP_SZ。另外,能否请您指出哪个和什么时候得到内存分配错误?当试图构建您的项目或当您试图下载固件和代码卡住wrap_pllattform_reset()?此外,有许多特征,这不是最佳实践,你应该尝试使用某种协议,并将你的值合并到一个或多个特征中。SDK的ble_app_peripheral示例只实现了cust1配置文件。 The custs2 profile exists into the SDK but there is not any implementation, so if you would like to create a second profile you should have to check how the custs1 is implements and follow the same procedure.
谢谢,PM_Dialog
你好,
我需要创建自定义配置文件。
你能把软件开发用户指南的链接发给我吗
用户手册-开发工具包软件开发的第一步指南。
UM-B-003:用户手册-软件开发指南如何修改模板项目和如何添加服务的指南。
你好害怕,
谢谢你的帖子,但是这个帖子和你问的没有关系。请下次创建一个新的论坛帖子。如果你不知道创建一个新的论坛帖子的程序,请让我知道,我会给你提供适当的步骤。UM-B-014文档是针对我们目前不支持的Expert DK的。请访问我们新的支持门户下//www.wsdof.com/bluetooth-low-energy你会发现DA14580/1/3产品只有Pro-DK和Basic-DK。雷电竞官网登录另外,我建议您看看我们的DA14585/6产品和我们新的SDK6!雷电竞官网登录
//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/smartbond-da14585-and-da14586
另外,AN-B-003文档是基于SDK3的,这是一个非常旧的SDK版本,目前还不可用。
谢谢,PM_Dialog
嗨,对话框中,
我想阅读价值通过自定义特征从应用程序在移动通过BLE。
是否有可能在5.0.4 SDK中创建特性时从SDK中读取值。
嗨MADHUSF,
据我从你的问题中了解到的,你想要实现一个可读的特性,不是吗?如果是,请检查SDK的ble_app_peripheral示例和“ADC VAL 1”特性。如果你的意思是别的,请澄清你的问题,并创建一个新的论坛帖子。
谢谢,PM_Dialog