This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2541:CC2540 8051 CPU 响应无效指令/操作码的操作..

Guru**** 2538950 points
Other Parts Discussed in Thread: CC2541

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/872210/cc2541-cc2540-8051-cpu-action-in-response-to-an-invalid-instruction-opcode

器件型号:CC2541

您好、团队 CC25xx、

CC2541 8051会如何响应接收到无效的操作码?  例如、如果发生存储器损坏或 ESD 事件、导致8051在其指令队列中接收到无效指令/操作码。 系统如何响应?  中断陷阱或复位、或者...?

谢谢、Merril

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Merril、

    通常、如果存在内存损坏、结果是 CPU 跳转至错误的地址并尝试从该地址运行。 正如您所理解的、它非常不可预测、因为发生的情况完全取决于它跳到的地址。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如玛丽所说,这是不可预测的。

    8051内核只会以未知的方式运行并失败。 例如、如果映射的代码空间的末尾部分为0xFF、代码随机跳转到该处、则只需运行相应的命令(MOV R7、A) 这是一个单周期命令、程序计数器(PC)在该命令中进入下一个命令、直到它在0返回并重新启动。 内核和外设的状态在此状态下未知、可能不会进行干净启动。 我认为可能只有一个未定义的命令(0xA5)、但我认为这确实说明了这一点。 我认为从未定义/非法内存读取只返回0、但我尚未对其进行测试。

    https://www.win.tue.nl/~aeb/comp/8051/set8051.html#51undef