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.

[参考译文] TMS320F28P659DK-Q1:如何触发 ITRAP

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1417677/tms320f28p659dk-q1-how-to-trigger-a-itrap

器件型号:TMS320F28P659DK-Q1

工具与软件:

您好、TI 专家:

  我想触发 ITRAP、并在主循环中使用以下方法。

定义指针并指向 非法地址、然后写入和读取它的值。

但我没有进入任何中断。

我的方法有什么问题吗?

Volatile uint32_t * TestOverRangePoint =(uint32_t *) 0xFFFFFFFF;
Volatile uint32_t Testdata = 0;

(;;)

*TestOverRangePoint = 0x01;
Testdata =* TestOverRangePoint;

}

另一个问题是、我想为  ITRAP 编写处理程序。

TI 是否提供了有关如何   在 ITRAP 处理程序中记录栈上返回地址值的示例?

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

    您好、W Z:

    请参阅 C28 CPU 指南 https://www.ti.com/lit/ug/spru430f/spru430f.pdf 第3.6节和3.5.2节

    执行与 ITRAP 相对应的 TRAP #19指令的最简单方法

    谢谢。

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

    感谢您的帮助。 这确实是执行 TRAP #19的最简单方法

    void trigger_trap19(){
    asm (" trap #19");
    }

    您可以帮助检查以下问题吗?

    我的方法有什么问题吗?

    我想测试对 invaild 存储器的访问、然后进入非法中断。

    Volatile uint32_t * TestOverRangePoint =(uint32_t *) 0xFFFFFFFF;
    Volatile uint32_t Testdata = 0;

    (;;)

    *TestOverRangePoint = 0x01;
    Testdata =* TestOverRangePoint;

    }

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

    您好、能否帮您回复?

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

    您好、WZ:

    我要测试对入侵内存的访问、然后输入非法中断。

    您能否为上述陈述指出参考文档?

    在 C28x 指南中、我仅查看 ITRAP 的以下源:

    谢谢

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

    第一个是无效寻址模式。 有没有文档澄清了有关无效指令以及当操作码值为 0x0000 和 0xFFFF 时的更多信息  

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

    WZ:
    这是 在取指令期间从程序存储器中读取的非法值。  

    非法 操作码提取值为0000、FFFF 或任何与已定义的操作码不匹配的值。

    谢谢。

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

    我无法理解、从 程序存储器读取的值是什么非法值。 您能举一个例子吗?

    已经定义了操作码。  但何时进行常规编码、如何引入未定义的操作码?

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

    WZ:

    如果您 开始从全部为0000或 FFFF 的存储器中执行、意外情况下、您可能最终获得 ITRAP

    下面是一个场景解释在这个 e2e : https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1313506/tms320f28335-28335-illegal-instruction-execution-problem/4992071#4992071

    谢谢

x 出现错误。请重试或与管理员联系。