你(们)好
我正在调试主要使用 SWI 的传统 C6412代码。 99%的调用是 SWI_POST(),还有一些 SWI_OR()调用。 RTOS 的版本为 BIOS_5_31_02。
我将更改几个 SWI_POST()调用以改用 SWI_inc (),并读取 SWI 对象函数内的邮箱(SWI_getmbox)以确定发生了多少个 SWI 中断。 我正在进行此更改、因为我怀疑在问题发生时会发生多个 SWI 中断。
但是、我可以编译和链接、并下载到目标。 DSP 加载并开始执行、但当它到达第一个 SWI_inc ()调用时、我的应用程序基本上停止响应。
请注意,如果我在 SWI_object 函数中使用 SWI_POST()和 SWI_getmbox,则没有问题-即使 SWI_getmbox 没有使用,因为 SWI_POST()不会修改 mbox。 这只是额外的信息。
我已阅读并重新阅读 C6000 DSP/BIOS 指南。
使用 SWI_inc()而不是 SWI_POST()时是否需要做一些微妙的事情??
是否存在任何问题、因为对于 SWI_inc、我们将邮箱视为计数器而不是位映射(SWI_OR)、或者根本不是(SWI_POST)?
在使用 SWI_inc 之前、是否还需要初始化其他内容、可能在 tcf 文件中?
我使用 mbox 作为 SWI_inc ()的计数器后需要初始化的任何内容?
只是在寻找想法…
谢谢
Jim