嗨对话派:
我的设备运行了几个小时。当我尝试连接到设备时,发生了硬故障。以下是异常信息。似乎发生在我的代码中不使用的attmdb_svc_get_permission。
--- HF状态
R0 = 0x00000000
R1 = 0x00000001.
R2 = 0x00000009.
R3 = 0x07FCCA01.
R12 = 0x00000009.
lr = 0x07f1045f.
PC = 0x00000000.
PSR = 0x20000000.
地图信息:
Attmdb_att_set_permission 0x07f10373拇指码0 da14585_symbols.txt绝对
ATTMDB_ATT_UPDATE_PERM 0x07F103E7拇指代码0 da14585_symbols.txt绝对
Attmdb_svc_get_permission 0x07f10455 thumb代码0 da14585_symbols.txt绝对
ATTMDB_ATT_GET_PERMISSION 0x07F10473拇指代码0 da14585_symbols.txt绝对
Attmdb_svc_set_permission 0x07f10575拇指码0 da14585_symbols.txt绝对
ATTMDB_INIT 0x07F10599拇指代码0 da14585_symbols.txt绝对
设备:
嗨ericxiong,
您能否在硬盘发生时存储所有寄存器的Status_Base的转储?您使用的是哪种SDK?
谢谢mt_dialog.
嗨mt_dialog:
它是UART输出的所有信息。SDK版本为6.0.6.427。
嗨ericxiong,
对不起,但即使我直接在连接回调中运行attmdb_svc_get_permission(),我也没有收到你提到的硬盘,你是否能够在提供的任何SDK示例中添加一些代码?
谢谢mt_dialog.
它每次都没有发生。我刚刚抓住了它。我的代码可以伤害其导致问题的RAM内容吗?你能猜出它可能是什么吗?
顺便说一下,我发现SDK6驱动程序代码中的一些全局变量没有放置在保留存储器中,这可能导致崩溃,但它没有在DA14580中引起问题。
另一个例外:
--- HF状态
R0 = 0x00000005.
R1 = 0x00000006.
R2 = 0x00000006.
R3 = 0x00000018
R12 = 0x00000020
LR = 0x07F1111F.
PC = 0x00000000.
PSR = 0x00000000.
地图:
ATTS_CLEAR_PREP_DATA 0x07f10ae1拇指代码0 da14585_symbols.txt绝对
ATTS_CLEAR_RSP_DATA 0x07F10B05拇指代码0 da14585_symbols.txt绝对
ATTS_WRITE_RSP_SEND 0x07F10B55拇指代码0 da14585_symbols.txt绝对
ATTS_MTU_EXC_REQ 0x07F10B75拇指代码0 da14585_symbols.txt绝对
ATTS_L2CC_PDU_RECV_HANDLER_FUNC 0x07F1177F thumb代码0 da14585_symbols.txt绝对
ATTS_ALLOCATE_PDU 0x07F11957拇指代码0 da14585_symbols.txt绝对
嗨ericxiong,
只是猜测是不太可能的,看似看起来的看法是PC总是展示为零的事实,所以我可以假设的是,当硬盘发生时,你的代码中的东西会强迫PC转到零,从那时起,从那时起可能发生的是不可预测的。所以我可以假设的是,你在你的代码中的某个地方你正在访问空指针或某种方式你正在破坏内存,并且指向指针的指针访问零点。
谢谢mt_dialog.