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.

[参考译文] TMS320C6670:C66x ALU 测试、链接寄存器

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1117254/tms320c6670-c66x-alu-test-link-register

器件型号:TMS320C6670

您好!

我有关于 C66x 控制器的问题。

我正在编写 ALU 单元的安全测试、 因此基本上需要编写一个汇编代码来测试8个单元 L1、L2、M1、M2 D1、D2以及 S1和 S2。
我是针对 ARM 微控制器执行此操作的、在该微控制器中、您有一个用于存储返回地址的链接寄存器、例如在进行函数调用时。
  • 那么、我的第一个问题:我们在 c66x 中是否有类似的东西? 如果不是自动完成的?
  • 第二个问题:如何使用一条汇编器指令(类似于我用于本地分支的 B 指令)调用外部函数?

请在下面找到我测试 ADD 指令的代码的一小段、让我知道该代码中的错误部分在哪里:


A.ASG B15,SP
全局 PAL_AlluTest_v_ArithInstructions_asm



PAL_AluTest_v_ArithInstructions_asm:
 STW .d2T1 A1,* SP++(-4);保存 A1
 STW .d2T1 A2、*SP++(-4);保存 A2
 STW .d2T1 A3、*SP++(-4);保存 A3
 STW .d2T1 A4、*SP++(-4);保存 A4
 STW .d2T1 A5,*SP++(-4);保存 A5

 MVD .M1 A0、A5;MVD (.unit) src2、dst
 MVK .S1 40、A1;在这种情况下,将 A1寄存器设置为特定值40
 MVK .S1 60、A2;在这种情况下,将 A2寄存器设置为特定值60
 MVK .S1 100、A3;在这种情况下,将 A3寄存器设置为预期值 A3+A2
 添加.L1 A1、A2、A4;将 ADD 运算应用于 L1单元(ADD (.unit) src1、src2、dst)
 CMPEQ .L1 A4、A3、A0;CMPEQ (.unit) src1、src2、 dst
 [A0] B .S1 Arithmatic;B (.unit)标签
 [!A0] B .S1 ARITHMATIC_ERR;B (.unit)标签

ARITHMATIC_ERR:
 CallP .S2 External_Function_Name、B3;如果发出外部函数,则会报告错误

Arithmatic OVR:
 MVD .M1 A5、A0;MVD (.unit) src2、dst
 LDW .d2T1 *++SP (4)、A5;LDW (.unit)*+baser[offsetR]、dst
 LDW .d2T1 *++SP (4)、A4;LDW (.unit)*+baser[offsetR]、dst
 LDW .d2T1 *++SP (4)、A3;LDW (.unit)*+baser[offsetR]、dst
 LDW .d2T1 *++SP (4)、A2;LDW (.unit)*+baser[offsetR]、dst
 LDW .d2T1 *++SP (4)、A1;LDW (.unit)*+baser[offsetR]、dst
此致、
Sofiene BK