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.

[参考译文] TMS320F28375D:FPU 状态寄存器访问

Guru**** 2442090 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/785147/tms320f28375d-fpu-status-register-access

器件型号:TMS320F28375D

您好-

我正在寻找一种使用 C 访问 FPU STF 寄存 器的方法。我想监控 LVF 标志、除了在 CCS Registers 视图中监控它之外、我找不到访问寄存器的方法。  此外、您是否有任何指针用于设置 PIE 控制器以处理 FPU 溢出中断?

谢谢、

卡盘

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

    我认为唯一的方法是编写一个简短的汇编函数来读取 STF 并将其复制到 ACC 中。 以下操作将实现此目的:

    全局_getSTF

    getSTF:
    MOV32* SP++,STF
    弹出ACC
    LRETR

    然后、您需要在 C 代码中声明该函数:
    extern unsigned long getSTF (void);
    无符号长整型 lVar;

    ...并在需要时调用函数:
    lVar = getSTF();

    然后、您可以测试位0以获得 LVF 标志的保持。

    关于 LVF 中断、您引用的原始帖子包含大多数相关信息。 初始化 ISR 的 C 代码如下所示:
    EALLOW;
    PieVectTable.LVF =&lvf_isr;
    EDIS;
    PieCtrlRegs.PIEIER12.bit.INTx7=1; //启用 PIE INT 12.7 (LVF)
    IER |= M_INT12;

    希望这对您有所帮助。

    此致、

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

    我决定只使用 LVF 中断来获得溢出通知。

    感谢您的帮助、
    卡盘