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.

[参考译文] LAUNCHXL-F28P55X:CLB ClearFIFO 不清除 FIFO &'不清除 FIFO

Guru**** 2584065 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1569039/launchxl-f28p55x-clb-clearfifo-doesn-t-clear-the-fifo

器件型号:LAUNCHXL-F28P55X


工具/软件:

我正在使用 HLC 将数据推送到 CLB1 的 FIFO

我可以使用正确读取数据  
CLB_readFIFO (CLB1_BASE、g_fofoBuff);
for (I=0;i<CLB_FIFO_SIZE
;I++){g_fifoBuff[i]= 0};
clb_clearFIFO (CLB1_BASE);

 调用 CLB_readFIFO 时、它将返回上次发生的内存内容。

然而,它似乎有任何新的数据将被放置在 g_fofoBuff[0]中的效果,较高的索引只在事件发生的速度比我轮询的速度快时使用

我不在中断上下文中调用它。  

我找不到任何方法来确定 FIFO 中是否有新数据以及有多少数据。 我错过了什么吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Marco、

    根据我的理解、HLC 与推送 FIFO 进行通信、如下所示:

    最初、当发生 push 命令时、HLC 会将数据推送到 CLB_O_PUSH (0)。

    下一个 PUSH 命令会将数据推送到 CLB_O_PUSH (1)。

    此模式将在 0、1、2、3、0、1、2、3 等之间对推 FIFO 循环中的偏移地址重复

    因此、仅在 HLC PUSH 命令被调用 4 次后、您才会希望调用 CLB_readFIFO 函数。

    CLB_clearFIFO 函数的用途是什么? 这只会向与 HLC PUSH FIFO 没有交互的 PULL FIFO 写入 4 个 0。

    谢谢您、

    Luke