主题中讨论的其他器件:SYSBIOS
工具/软件:
您好!
我们有一个 f280049c 工程、我们将移植到 F28P55X。
在这个工程中、我们处理了 FPU 上溢和下溢、我们收集的一个调试信息是指令返回指针、用于大致了解从闪存运行时中断的来源。
为此、我们使用了以下调用:
isrHandle = Hwi_getHandle(id); uint32_t addr = Hwi_getIrp(isrHandle);
F28P55X 中是否有等效功能?
我似乎找不到它们。
谢谢您、
Nuno
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.
工具/软件:
您好!
我们有一个 f280049c 工程、我们将移植到 F28P55X。
在这个工程中、我们处理了 FPU 上溢和下溢、我们收集的一个调试信息是指令返回指针、用于大致了解从闪存运行时中断的来源。
为此、我们使用了以下调用:
isrHandle = Hwi_getHandle(id); uint32_t addr = Hwi_getIrp(isrHandle);
F28P55X 中是否有等效功能?
我似乎找不到它们。
谢谢您、
Nuno
是否在不使用 RTOS 的情况下使用 F28P55x? 如果没有 RTOS、我认为您需要从堆栈获取返回位置。 如果我在 ISR 的一开始就放置一个断点、并在“Registers"视“视图中查找 SP、则可以看到 SP - 3 处的返回地址。

您可以在软件中使用一些内联汇编代码来读取 SP 并在堆栈上找到返回地址、但会更加棘手、因为您还需要考虑编译器生成的压入堆栈、从而更改 SP 的相对地址。
Whitney
一种方法是将 ISR 更改为 1) 删除__interrupt 属性、以及 2) 添加一个“Naked"属性“属性、这将阻止编译器插入 除函数中实际 C 之外的任何其他指令。 这样、您可以获取返回位置、作为函数中的第一个操作。 您必须进一步添加汇编指令才能执行启动和退出 步骤(对齐 SP,保存寄存器,返回等)。 对现有代码的反汇编可用作添加这些汇编指令的参考。
Arnav