工具/软件:Code Composer Studio
您好!
使用以下命令加载20位 DMA 地址寄存器:__data20_write_long。
该视图显示了 DMA0SA 和 DMS0DA 寄存器中的值。 最高4位未加载。 您能否在没有警告的情况下发送一个包含有效命令的样本?
此致
哈迪
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.
工具/软件:Code Composer Studio
您好!
使用以下命令加载20位 DMA 地址寄存器:__data20_write_long。
该视图显示了 DMA0SA 和 DMS0DA 寄存器中的值。 最高4位未加载。 您能否在没有警告的情况下发送一个包含有效命令的样本?
此致
哈迪
您好、Hardy、
看看此示例是否有用。
出发地: TI Resource Explorer FR5994示例代码
#include
#include
int main (空)
{
WDTCTL = WDTPW | WDTHOLD; //停止 WDT
//配置 GPIO
P1OUT = 0;
P1DIR = BIT0; //表示 LED
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;
//配置 DMA 通道0
__data20_write_long ((uintptr_t)&DMA0SA、(uintptr_t) 0x1C20);
//源块地址
__data20_write_long ((uintptr_t)&DMA0DA、(uintptr_t) 0x1C40);
//目标单个地址
DMA0SZ = 16; //块大小
DMA0CTL = DMADD_5 | DMASRCINCR_3 | DMADSTINCR_3;//报告、包括
DMA0CTL |= DMAEN; //启用 DMA0
while (1)
{
P1OUT |= 0x01; // P1.0 = 1、LED 打开
DMA0CTL |= DMAREQ; //触发块传输
P1OUT &=~0x01; // P1.0 = 0、LED 关闭
}
}
您好!
感谢您的回答。
问题是在20位目的地址和源地址寄存器中加载一个值。 如果我使用高于 FFFF 的存储器部分、则该值只能为一个长值。
您能否编写我需要导入哪些内容才能使用此函数? 我尝试了 intrinsics.h 和 stdint.h 这两个函数都未包含此函数。
intrinsics.h 我在 www.ti.com/.../slau132r.pdf 中找到
此致
哈迪
您好、Hardy、
我将使用 CCS 10和编译器版本 TI v20.2.1.LTS。 应在 instrinsics.h 中定义这些参数 它们的版本是我拥有的版本。
查看 编译器指南的最新版本。
#if defined (_MSP430X_)
/*------------------ *
/* MSP430X 内在函数 */
/*------------------ *
void __data16_write_addr (unsigned short、unsigned long);
unsigned long __data16_read_addr (unsigned short);
void __data20_write_char (unsigned long、unsigned char);
void __data20_write_short (unsigned long、unsigned short);
void __data20_write_long (unsigned long、unsigned long);
unsigned char __data20_read_char (unsigned long);
unsigned short __data20_read_short (unsigned long);
unsigned long __data20_read_long (unsigned long);
#endif
[引用 USER="Hardy Zissel]HE 值为0x4200A 和0x420C6。 但是、在执行加载命令后、最近4位中的"4"缺失。[/quot]对于屏幕截图中显示的反汇编、我看不到生成的指令出现任何错误-它们看起来是向 DMA0SA 和 DMA0DA 寄存器写入20位。
您可以在存储器浏览器中查看地址0x0510 (DMA 通道0寄存器的基址)、显示了什么?