嗨,支持,
我正在工作的一个项目,是基于ble_app_peripheral演示项目。我遇到了一个问题,app_add_ad_struct()函数断言一个错误并崩溃DA。问题是,我没有试图把比我应该放入广告和扫描响应包更多的数据。我目前使用mnf_specific_data_ad_structure结构来处理14字节的制造商数据。还有25字节的其他数据,如设备名,ADV_TYPE_COMPLETE_LIST_16BIT_SERVICE_IDS等…最后,我希望能够利用所有的广告和扫描响应空间,现在,如果我试图添加更多,app_add_ad_struct()停止我的代码。我无法确定冲突在哪里。你能提供的任何见解都将不胜感激。谢谢。
设备:
嗨,大卫。首轮,
当你说app_add_ad_struct()崩溃da你的意思是580进入硬故障处理程序?如果您的程序遇到了困难的错误,您可以检查您的程序折叠到哪里,以便跟踪您的问题。请看7.2.5.2节中的UM-B-051。通过打开你的内存并将其设置为unsigned long,你可以通过查看第7个unsigned long数字来检查你的程序折叠的确切位置,这是你的程序计数器。
由于MT_dialog
它实际上不会崩溃,它会转到断言语句,表示我试图将大量数据放入广告并扫描响应包。这个问题现在已经解决了,所发生的是,我试图使用app_add_ad_struct()添加的数据的大小大于可以容纳在广告包的结尾,所以它被移动到扫描响应。这给我的广告包留下了6个字节的死区。为了利用这些,我将制造商特定的数据分成两个数据结构,然后使用app_add_ad_struct()添加这两个数据结构。