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.
工具与软件:
您好、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:
如果您 开始从全部为0000或 FFFF 的存储器中执行、意外情况下、您可能最终获得 ITRAP
谢谢