我们正在进行一个项目,需要设置大约70个特征。我们已经开始使用ble_app_外围设备项目作为基础和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) || !define (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.
谢谢,下午好
你好,
我需要创建自定义配置文件。
你能把软件开发用户指南的链接发给我吗
UM-B-014:用户手册-开发工具包软件开发的第一步指南。
UM-B-003:用户手册-软件开发指南教程,介绍如何修改模板项目和如何添加服务。
你好,阿弗里德,
谢谢你的帖子,但是这个帖子和你问的问题没有关系。请下次创建一个新的论坛帖子。如果你不知道创建一个新的论坛线程的程序,请让我知道,我会给你提供适当的步骤。UM-B-014文件是针对我们目前不支持的Expert DK的。请访问我们新的支持门户//www.xmece.com/bluetooth-low-energy你会发现我们只有Pro-DK和Basic-DK的DA14580/1/3产品。亚博电竞菠菜另外,我建议你看看我们的DA14585/6产品和我们新的SDK6!亚博电竞菠菜
//www.xmece.com/亚博电竞菠菜products/connectivity/bluetooth-low-energy/smartbond-da14585-and-da14586
此外,AN-B-003文档基于SDK3,SDK3是一个非常旧的SDK版本,目前不可用。
谢谢,下午好
嗨,对话,
我想通过BLE从移动应用程序中的自定义字符读取值。
在5.0.4 SDK中创建特征时,是否可以从SDK中读取值?
嗨MADHUSF,
就我所能理解的你的问题而言,你想要实现一个可读的特性,不是吗?如果是,请检查SDK的ble_app_peripheral示例和“ADC VAL 1”特性。如果你的意思是其他的,请澄清你的问题,并创建一个新的论坛线程。
谢谢,下午好