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.

[参考译文] CCS/TMS320C6678:SRIO 直接 I/O LSU 影响 EDMA3

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616158/ccs-tms320c6678-srio-direct-i-o-lsu-affects-edma3

器件型号:TMS320C6678

工具/软件:Code Composer Studio

在内核2-7上、我使用共享存储器来设置用于 数据传输的缓冲区框架。

 在 MSM 和 L2中有读取/写入缓冲器-这些事务由 EDMA3链完成。

当整个链完成时、每个内核都有一个由中断触发的回调函数;

这 在数据传输和中断按预期运行时效果良好。

我在内核1中添加了一个 SRIO 过程、该过程完全通过编程方式使用 LSU 寄存器来影响直接 I/O 传输。

它的运行方式如下:

if (CSL_SRIO_IsLSUFull (hSrio、LSU)== false)


// LSU 可免费使用

//写入寄存器!!

CSL_SRIO_SetLSUReg0 (hSrio、LSU、0);//无 RapidIO MSB

CSL_SRIO_SetLSUReg1 (hSrio、LSU、dst);

CSL_SRIO_SetLSUReg2 (hSrio、LSU、src);

CSL_SRIO_SetLSUReg3 (hSrio、LSU、LEN_TEST_wors_TX*4、0);//写入 x 个字节、 无门铃

CSL_SRIO_SetLSUReg4 (hSrio、LSU、0x4560、// desid = 0x4560

0、// src id map = 0、使用 RIO_DEVICEID_REG0

1、// id size = 1对于16位器件 ID

LSU&0x3、//输出 ID = 0

0、//优先级= 0

0、// xambs = 0

0、//抑制正常中断= 0 (无关中断)

0);//中断请求= 0

//开始传输

CSL_SRIO_SetLSUReg5 (hSrio、LSU、

4、// ttype

5、// ftype

0、//跳数= 0、

0);//门铃= 0//

//

//在此处执行操作...

//... 一段时间

//在检查 SRIO 是否完成之前

while (CSL_SRIO_IsLSUBusy (hSrio、LSU)=true)

该 SRIO 进程在环回模式下运行、循环正确地传输负载、

但是、它会影响其他内核上 EDMA3进程的完成!?

在 这种简单的设置中、我不希望 SRIO 内核影响其他内核。

 

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

    我已将此内容转发给 c66x SRIO 专家。 他们的反馈应发布在此处。

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

    >>此 SRIO 进程,在环回中运行
    该过程是否会将数据回移到所有内核、还是仅查找 ID 为0x4560的内核?

    >>它会影响其它内核上 EDMA3进程的完成!?
    所有内核2-7都无法完成 EDMA3传输、还是仅无法完成 ID 为0x4560的内核?

    此外、您是否尝试将缓冲区移动到 DDR (缓存和非缓存)、而不是 L2和 MSMC?

    SRIO LSU 传输使用其内部 DMA 与内部存储器通信、应对 EDMA3传输控制器没有影响。 我将尝试邀请 EDMA 专家...

    此致、Garrett