使用的器件:TMS320F28377D
编程语言:汇编。
使用指令:MMOV32 MR2, *MAR0
经观察,MAR0装载的地址正确,即和要访问的数据的地址一致。
然而,执行此指令后,MR2的内容,总是不可预期的,也试着按手册上说的复杂形式的间接寻址,*MAR0[#imm16]++、*MAR0+[#imm16]形式,仍然得不到所要的结果。
注:MAR0中的地址,是LS3中的数据,并且已设置为CLA使用的数据区。
Susan Yang:
TX dong然而,执行此指令后,MR2的内容,总是不可预期的
请问能否详细说明一下结果?另外若是可以的话,请给出完整代码或工程,我们来测试一下,谢谢
TX dong:
回复 Susan Yang:
谢谢您的回复。
因为还在调试阶段,程序比较乱。给您相关部分的文件。
本来想用PWM触发CLA,但一直没有搞定,后来用定时器触发。task1那段运行不正常,又重新弄的任务2,请以任务2 为参考。
F28377D.rar
Susan Yang:
回复 TX dong:
应该是您未包含 #include "F2837xD_Cla_typedefs.h" 由于在两个内核上C28&CLA对int以及指针等的处理方式不同,所以我们为CLA创建了一个特殊的typedefs.h,一般命名为 “ <DeviceName> _Cla_typedefs.h”,并将其包含在DSP28x_Project.h头文件中,并以特定的顺序保存。如果您不使用标准标头,请确保包含顺序与controlSUITE/C2000ware中的内容保持一致 // Included Files // #include "F2837xD_Cla_typedefs.h" // F2837xD CLA Type definitions 需要放在首位 #include "F2837xD_device.h" // F2837xD Headerfile Include File #include "F2837xD_Examples.h" // F2837xD Examples Include File
Susan Yang:
回复 TX dong:
更多信息您可以参考 processors.wiki.ti.com/…/C2000_CLA_C_Compiler
TX dong:
回复 Susan Yang:
非常感谢回复。我试试。
TX dong:
回复 Susan Yang:
我在添加F2837xD_Cla_typedefs.h时,发现,原来的cla_shared.h文件中已经包含了这个头文件。是DSP2837xD_Project.h中包含的,
重新烧写后,现象依旧。
Susan Yang:
回复 TX dong:
谢谢您的反馈,请您私信一下您的整个工程,我来测试一下,谢谢
TX dong:
回复 Susan Yang:
已将完整的工程发给您了。
Susan Yang:
回复 TX dong:
好的,我会在明天测试后给您回复
Susan Yang:
回复 TX dong:
编译后显示 Description Resource Path Location Type #20 identifier "TB_DIV10" is undefined peripheral.c /AddaCPU1/usr line 555 C/C++ Problem 1 请问TB_DIV10是如何定义的?我在F2837xD_EPwm_defines.h中只找到 // // HSPCLKDIV and CLKDIV bits // #define TB_DIV1 0x0 #define TB_DIV2 0x1 #define TB_DIV4 0x2
2 请问您的.cla文件在哪个路径?