使用的器件:TMS320F28377D
编程语言:汇编。
使用指令:MMOV32 MR2, *MAR0
经观察,MAR0装载的地址正确,即和要访问的数据的地址一致。
然而,执行此指令后,MR2的内容,总是不可预期的,也试着按手册上说的复杂形式的间接寻址,*MAR0[#imm16]++、*MAR0+[#imm16]形式,仍然得不到所要的结果。
注:MAR0中的地址,是LS3中的数据,并且已设置为CLA使用的数据区。
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.
使用的器件:TMS320F28377D
编程语言:汇编。
使用指令:MMOV32 MR2, *MAR0
经观察,MAR0装载的地址正确,即和要访问的数据的地址一致。
然而,执行此指令后,MR2的内容,总是不可预期的,也试着按手册上说的复杂形式的间接寻址,*MAR0[#imm16]++、*MAR0+[#imm16]形式,仍然得不到所要的结果。
注:MAR0中的地址,是LS3中的数据,并且已设置为CLA使用的数据区。
TX dong 说:然而,执行此指令后,MR2的内容,总是不可预期的
请问能否详细说明一下结果?另外若是可以的话,请给出完整代码或工程,我们来测试一下,谢谢
谢谢您的回复。
因为还在调试阶段,程序比较乱。给您相关部分的文件。
本来想用PWM触发CLA,但一直没有搞定,后来用定时器触发。task1那段运行不正常,又重新弄的任务2,请以任务2 为参考。
应该是您未包含 #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
编译后显示
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文件在哪个路径?
谢谢您的回复。
我用的是这个文件:
//###########################################################################
//
// FILE: F2837xD_EPwm_defines.h
//
// TITLE: #defines used in EPwm examples
//
//###########################################################################
// $TI Release: F2837xD Support Library v210 $
// $Release Date: Tue Nov 1 14:46:15 CDT 2016 $
// $Copyright: Copyright (C) 2013-2016 Texas Instruments Incorporated -
// http://www.ti.com/ ALL RIGHTS RESERVED $
//###########################################################################
很抱歉,您这边的代码我还是无法调试(使用28379 launchpad开发板)
会卡在 while ( ADC_BUSY_STATUS() ){};
附上相关的培训资料,希望对您有所帮助
另外我找到了一个和您类似问题的帖子,您可以参考一下。编译器的话,建议使用较新版本
如 C2000_20.8.0.STS C2000_20.2.3.LTS C2000_18.12.7.LTS 等
e2e.ti.com/.../921130