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.

[参考译文] TMS320F280037C-Q1:CLA 汇编器问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1208655/tms320f280037c-q1-cla-assembler-problem

器件型号:TMS320F280037C-Q1
主题中讨论的其他器件:C2000WARE

尊敬的专家:

我之前在 F280049上开发了一个有 CLA 汇编程序处理功能的应用程序。 我曾尝试将应用程序传输到新的 F280037、但在汇编器中遇到问题。 F280049应用程序基于 C2000Ware 示例项目 cla_ex2_adc_fir32开发、该示例项目具有 CLA 汇编器例程、没有任何问题。 因此、我曾尝试使用相应的 F28003x 示例、但 C2000Ware 只有一个针对 CLA 的 C 语言示例。 因此、我尝试了两种方法:
- 1. 将 F280049 CLA asm 示例中的所有接头和 I/O 驱动程序例程更改为相应的 F28003x 定义。 仍然保留了原始 C2000Ware .asm 例程、仅用于测试。
- 2. 向 A F29003x C 语言示例中添加了我的.asm 例程。
两次都没有成功。 错误信息如下所示。 其中一些似乎提示汇编器也会偏离 C 编译器、因此我认为.cdecls 指令以某种方式泄漏、但当我将其删除并仅使用一些虚拟代码时、错误仍然存在。 两个处理器都有相同的 CLA 第二代硬件、因此这很奇怪。 您有任何用于 F28003x 的 CLA ASM 项目模型吗?

C2000Ware 版本为4.03.00.00、C 编译器22.6.0.LTS、Code Composer 版本为12。

>>编译失败
subdir_rules.mk:16:目标"cla_ex2_fir32.obj"的配方失败
"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、警告! 第402行:[E0004]无法使用.define 重新定义现有操作码"EALLOW"。 汇编器忽略.define。
.define "__EALLOW ()",EALLOW

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、警告! 在第403行:[E0004]无法使用.define 重新定义现有操作码'EDIS'。 汇编器忽略.define。
.define "__EDIS ()",EDIS

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22219行:[E0800]结构体/联合体定义中不允许使用指令
ar0 .bits 1;bit field、1 bits、0 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22220行:[E0800]结构体/联合体定义中不允许使用指令
ar1 .bits 1;bit field、1 bits、1 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22221行:在结构体/联合体定义中不允许使用[E0800]指令
ar2 .bits 1;bit field、1 bits、2 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22222行:[E0800]结构体/联合体定义中不允许使用指令
ar3 .bits 1;bit field、1 bits、3 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22223行:[E0800]结构体/联合体定义中不允许使用指令
ar4 .bits 1;bit field、1 bits、4 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22224行:[E0800]结构体/联合体定义中不允许使用指令
ar5 .bits 1;bit field、1 bits、5 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22225行:[E0800]结构体/联合体定义中不允许使用指令
ar6 .bits 1;bit field、1 bits、6 bit offset

"C:\Users\JOUKOV~1\AppData\Local\Temp\{CAD5C508-E1CB-4D55-9F36-3D7D4BE23EA8}"、错误! 第22226行:[E0800]结构体/联合体定义中不允许使用指令
ar7 .bits 1;bit field、1 bits、7 bit offset


源代码中的错误-汇编器已中止
gmake:***[cla_ex2_fir32.obj]错误1.

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

    您好!

    只是想检查您是否能够为 F28003x 器件构建 CLA 示例?

    c:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f28003x/examples/cla

    此致、Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    是的、当使用没有 CLA 汇编程序代码的示例时、只有 C 代码。 我描述的问题与一个案例相关、在这个案例中、我有自己的 CLA asm 代码适用于 F280049、 但不适用于 F280037 (如您所见、2000Ware 没有 CLA asm 示例、仅适用于其他 F28x 版本、因此我无法验证 汇编器是否适用于该处理器)。 我们知道、C 编译器不能为 CLA 生成非常高效的代码、因此能够使用手动优化的汇编器至关重要。 如果您可以提供任何 具有 CLA ASM 子部分的工作虚拟骨架项目,它就可以解决问题。 请尝试!
    此致、
    Jouko
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    关于这个问题的更多信息:似乎是.cdecls 指令解释的一些与 f28003x 器件相关的头文件中的错误所致。 这是因为错误仅在我将 f28x_project.h 包含在 汇编器文件中.cdecls 使用的头文件中后才会出现。 该标题又包括许多其他标题、因此对我来说、尝试找出错误的位置是非常乏味的。 您是否能够生成相同的错误消息?

    同时、我认为最好在解决此问题之前、先在 f28004x 环境中继续进行代码开发。

    此致!

    Jouko

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

    您好!

    最终、我没有耐心等待问题的解决、因此我将错误追溯到 C2000Ware 器件支持头文件中的 MCAN 结构位定义。 因为我不使用这个接口、所以我在代码中删除了这些头文件和驱动程序定义。 现在、编译器将完成整个过程。 但是、我没有选择"这个问题解决了我的问题"、因为显然 TI 必须修复那些使用 MCAN 接口的错误。