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.

[参考译文] LAUNCHXL-F28379D:用于差分方程计算的汇编网关

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1342011/launchxl-f28379d-assembly-gateway-for-difference-equation-calculation

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:C2000WARE

您好!

我想在 C 项目中管理一个汇编网关来计算一个微分方程。 但我有很多问题(我的问题是错的)。 我希望有人能帮助我。

让我们考虑这个示例:我想把这两个向量 X'相乘。 y

所以,我创建了一个应该这样做的函数,使用了执行 MACF32 R7H、R3H、*XAR4++、*XAR7++

输入值分别为2个指针和一个整数、因此可转换到 XAR4、XAR5和 ACC 中。

由于输出值为浮点值、因此它将存储到 R0H 中。

在此函数中、我首先要做的是将 XAR5内容传输到 XAR7中。 我在寻找这样的函数 MOV32 XARn,XARm ,但它似乎不存在。

所以我写道:

它不优雅,有一个警告:

做这个转移的最佳方式是什么?

其余的代码是:

结果正确、但是:

-我预计重复的次数将是5次,而不是7次。 我的错在哪里?

-重复的次数不应该是一个常数,但最后的输入值,即 uint16_myDim,存储在 ACC 中。 如何将此值转换为重复次数? 我想 RPT @ACC 可以起作用、但不能。

最后、我还有一个最后的问题、一般性问题:

我尝试在 asm 函数中声明一个变量:

但是、当使用断点停止程序时、表达式窗口中不会出现这种情况。  

在程序集网关中声明变量的方式是什么?

感谢你的帮助。

下面是我的汇编函数的代码:

;/!\格式 EABI /!\
; fonment pouvant être appel é e directement par asmfunc() dans un fickier C


.global asmfuncEQDIM
.数据

VAR .int 8


.text

asmfunCEQDIM:
NOP
NOP

MOV32 R1H、XAR5
NOP
MOV32 XAR7、R1H

ZERO R2H ; effacement du regime tampon pour le r é sultat de l'accumulation impaire
ZERO R6H ; effacement du registre tampon pour le r é sultat de l'accumulation paire
ZERO R3H;effacement du registre d'accumulation impaire
ZERO R6H;effacement du registre d'accumulation paire

; XAR7 doit contenir l'adresse du tableau Y (en XAR5)

7号 RPT
|| MACF32 R7H、R3H、*XAR4++、*XAR7++

ADDF32 R0H、R7H、R3H;

LRETR

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

    编辑:忘记关于所需重复次数的问题。 我只是个白痴

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

    您好、Vincent:

    我想把这两个向量 X 相乘'。 Y [/报价]

    您是否有机会了解我们的 C2000WARE 以了解可以满足您需求的任何现有示例? 然后、检查反汇编以查看如何处理它、并将其用作起始参考?

    可用于矩阵数学运算的库位于 C2000ware 的 FPU DSP 库中。 它提供实数矩阵的乘法。

    此致!

    马瑞安

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

    我只是想知道如何从 XAR7转移到 XAR5 。。。

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

    您好、Vincent:

    明白了、让我看看我是否与另一位同事讨论、以便更好地了解有哪些资源可以实现您所要求的目标。

    此致!

    马瑞安

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

    您好、Vincent:

    您要查找的指令如下:

    www.ti.com/lit/spru430

    您是否观察到可以分享的 C 语言中的任何低效之处? 我们可以向编译器团队提供反馈。

    此致!

    马瑞安

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

    您好、无法对 RnH 使用该指令

    -因为这个指令处理 CPU (并且 RnH 属于 FPU)

    -因为此指令无法地址工作寄存器

    对我来说、重要的是要了解使用以下两项说明时的警告消息是否严重:

    MOV32 R1H、XAR5
    MOV32 XAR7、R1H

    --> 警告! 在第39行:[W9999]寄存器读取访问位于同一寄存器写入的延迟时隙中

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

    Vincent、

    我不清楚当您可以使用 MOVL 在 XAR5和 XAR7之间直接移动时、为什么您要使用 RnH?  

    即 MOVL XAR7、XAR5

    如果使用以下两种结构时出现警告消息是严重的

    是的、请参阅扩展指令集用户指南(www.ti.com/lit/spruhs1)中有关该指令的流水线对齐要求

    此致、

    洛里

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

    感谢您的意见。

    MOVL XAR7、XAR5正是我想要做的。 当阅读 SPRU430文档时、我认为 MOVL 指令的操作不能成为工作注册人、例如 XARn。

    我将介绍 流水线对齐要求、以获取相关信息。 这是我还没有掌握的东西。

    我关闭这个主题。 希望我们会尽快发言。

    文森特