跳到主要内容

在ROM中击打不可排除的源代码中的断点

1年前

在ROM中击打不可排除的源代码中的断点

张贴了MBWJR12.0分 5回复
0旋转

亲爱的对话框半,

我在0x07F22F50中击中ROM中的断点。我最初检查了地图文件,发现它在0x07F22C19处靠近ATTM_SVC_CREATE_DB_128功能,但从ROM代码中排除此功能后,我仍然会击中此断点,而不是将此功能重定向到源代码中的此功能。

您是否有任何建议的步骤用于调试这些断点?对于具有断点的ROM地址/函数的列表是很好的,并且可能周围的源,或者描述该位置意味着的断点。

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

在Wireshark中嗅出BLE连接,我可以看到连接设备发送连接请求,然后在发送6个PDU后放弃,没有响应。

我相信这是一个简单的错误配置,但是ROM断点使得难以弄清楚。

谢谢,

麦克风

1年前

PM_DIALOG.

嗨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.“构建”完成后,右键单击“Project Explorer”窗口中的PXP_Reporter项目文件夹,然后选择“属性”。(请参阅step6.png)

7.在预处理器定义的符号中添加_EXCLUDE_ROM_CUSTS1_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 DATADASES的所有相关功能。

; attm_db_128.c(由__EXCLUDE_ROM_ATTM_DB_128__控制); 0x07f22c19Ťattm_svc_create_db_128; custs1.c(由__EXCLUDE_ROM_CUSTS1__控制); 0x07f22621Ťcusts1_prf_itf_get; custs1_task.c(由__EXCLUDE_ROM_CUSTS1__控制); 0x07f226d3Ťcusts1_init_ccc_values; 0x07f2270bŤcusts1_set_ccc_value

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

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

如果此程序正在运行,请告诉我。

谢谢,PM_DIALOG.

附件 尺寸
Images.zip. 77.95 KB.

1年前

MBWJR12. 0分

你好对话框,

我已成功排除这些部分。我可以现在可以通过调试器中的排除代码缩短。我可以在输出地图文件中看到此代码现在来自那些.o文件而不是da14531_symbols.txt文件:

ATTM_SVC_CREATE_DB_128 0x07FC29A5拇指码518 ATTM_DB_128.O(.text)

在第二个连接时,我仍然在0x07f22f50处击中断点,没有源代码。我也可以在地图文件中看到,在此区域中不再有任何atm或cutt1函数,因此必须是ROM中的其他一些功能。

bass_prf_itf_get 0x07f21a6d thumb代码0 da14531_symbols.txt绝对
suotar_prf_itf_get 0x07f22059拇指代码0 da14531_symbols.txt绝对
app_gap_process_handler 0x07f2328d thumb代码0 da14531_symbols.txt绝对
app_entry_point_handler 0x07f232a9 thumb代码0 da14531_symbols.txt绝对

谢谢,

麦克风

1年前

PM_DIALOG.

嗨迈克,

断点击中时是否有可能共享屏幕截图?您是否有自定义代码,或者您正在运行SDK6.0.12提供的Prox_reporter项目。此外,您是否可以说明这是在Keil IDE中复制的吗?

谢谢,PM_DIALOG.

接受答案!

1年前

MBWJR12. 0分

我最终通过读取程序员找到问题:Task_App状态未设置为App_Connectable。

我用keil和gcc编译了这个问题,我尝试在Keil IDE,Eclipse和Segger臭氧的调试,并具有相同的结果。

1年前

PM_DIALOG.

嗨mbwjr12,

很高兴您讨论了您的问题并感谢您的迹象。

谢谢,PM_DIALOG.