命中ROM中的断点,而不是在可排除的源代码中

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
MBWJR12.
离线
最后看到:4个月4个星期前
加入:2015-11-05十八33
命中ROM中的断点,而不是在可排除的源代码中

亲爱的对话框半,

我在ROM中碰到一个断点0x07F22F50。我最初检查了映射文件,发现它在0x07F22C19的attm_svc_create_db_128函数附近,但是在从ROM代码中排除这个函数后,我仍然碰到这个断点,没有在源代码中重定向到这个函数。

对于调试这些断点,您有什么建议步骤吗?如果有一个带有断点的ROM地址/函数的列表以及它们周围的源代码,或者一个关于该位置上的断点意味着什么的描述,那就太好了。

在我的情况下,我每秒都在击中这个断点我连接。我连接,断开连接,然后再次连接并点击此断点。第一个连接完美且稳定,我可以读取属性并使用指示/通知,等等。断开连接后,然后尝试再次连接,连接失败了100%的时间。在目标应用程序方面,我收到on_disconnect()回调与原因62。

在Wireshark中嗅探BLE连接,可以看到连接设备发送了一个连接请求,发送了6个pdu报文后没有响应就放弃了。

我确信这是一个简单的错误配置,但是ROM断点已经使它相当难以确定。

谢谢,

迈克

关键词:
设备:
PM_Dialog
离线
最后看到:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨mbwjr12,

嗨mbwjr12,

请按照SmartSnippets Studio(SSS)的步骤操作。出于演示目的,使用SDK6.0.12的Prox_reporter示例。SDK6.0.12创建了一个基于Eclipse的项目。该项目是邻近记者,它位于Projects \ target_apps \ ble_examples \ prox_reporter \ eclipse sdk路径下。

1.下载并安装SmartSnippets Studio (SSS)最新版本(v2.0.10)。

2.打开工具并选择工作区目录。建议在没有.metadata文件夹的情况下按照SPEAR SDK工作区中的步骤操作。

3.打开“Eclipse IDE”并导入PXP_Reporter项目。

4.从“Project Explorer”窗口右键单击PXP_Reporter,然后选择“属性”。请检查附加的图像并取消单击“生成错误而不是警告”选项。

5.构建DA14531配置的项目。在GUI的顶部,你会发现一个“锤子”-你需要从下拉菜单中选择第一个选项。

6.当构建完成后,从“项目资源管理器”窗口中右键单击pxp_reporter项目文件夹,并选择“属性”。(参见step6.png)

7.在预处理器定义的符号中添加_EXCLUDE_ROM_CUSTS1_ _EXCLUDE_ROM_ATTM_DB_128_。(参见step7.png)

8.请“申请”和“确定”。

9.在文本编辑器中导航到\ sdk \ common_project_files \ misc sds路径和打开da14531_symbols.txt。

10.搜索__EXCLUDE_ROM_CUSTS1__和__EXCLUDE_ROM_ATTM_DB_128__

11.用cust1和attm 128数据库注释所有相关函数。

custs1_task.c(由__EXCLUDE_ROM_CUSTS1__控制)

12.保存并关闭da14531_symbols.txt文件。

13.-为DA14531配置构建项目,并将其下载到RAM。

请让我知道这个程序是否有效。

谢谢,PM_Dialog

附件:
MBWJR12.
离线
最后看到:4个月4个星期前
加入:2015-11-05十八33
你好,对话框,

你好,对话框,

我已经成功地排除了这些部分。现在我可以在调试器中很好地单步调试被排除的代码。我可以在输出映射文件中看到,这段代码现在来自那些.o文件,而不是da14531_symbols.txt文件:

attm_svc_create_db_128 0x07fc29a5 Thumb Code 518

在第二次连接时,我仍然碰到断点0x07f22f50,没有它的源代码。我也可以在map文件中看到,在这个区域不再有任何attm或cust1函数,所以它一定是ROM中的一些其他函数。

bas_prf_itf_get 0x07f21a6d Thumb Code 0 da14531_symbols.txt绝对
suotar_prf_itf_get 0x07f22059 Thumb Code 0 da14531_symbols.txt绝对
app_gap_process_handler 0x07f2328d Thumb Code 0 da14531_symbols.txt绝对
app_entry_point_handler 0x07f232a9 Thumb Code 0 da14531_symbols.txt

谢谢,

迈克

PM_Dialog
离线
最后看到:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨,迈克,

嗨,迈克,

是否有可能在断点到达时共享屏幕截图?你有自定义代码吗,或者你正在运行由SDK6.0.12提供的prox_reporter项目。另外,能否请您指出这是否在Keil IDE中复制?

谢谢,PM_Dialog

MBWJR12.
离线
最后看到:4个月4个星期前
加入:2015-11-05十八33
我最终找到了问题所在

我最终通过读取程序集找到了问题:TASK_APP状态没有设置为APP_CONNECTABLE。

我在用Keil和GCC编译时碰到了这个问题,我尝试在Keil IDE、Eclipse和Segger Ozone下进行调试,结果都是一样的。

PM_Dialog
离线
最后看到:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨mbwjr12,

嗨mbwjr12,

很高兴你解决了你的问题,谢谢你的暗示。

谢谢,PM_Dialog