大家好!
我想使用同一事件(例如 counter_0.count_match1)来触发数据导出到 SPI Rx fiffo 和 HLC。 CLB 在这种情况下的行为是什么? 哪一项最先发生? 我想先运行 HLC 来准备数据并将其复制到 R0,然后将 R0推入 RX fifo。 有可能吗?
请提前感谢。
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.
大家好!
我想使用同一事件(例如 counter_0.count_match1)来触发数据导出到 SPI Rx fiffo 和 HLC。 CLB 在这种情况下的行为是什么? 哪一项最先发生? 我想先运行 HLC 来准备数据并将其复制到 R0,然后将 R0推入 RX fifo。 有可能吗?
请提前感谢。
您好,Erhan,
听起来您想配置其中一个由 counter_0.count_match1触发的 HLC 事件,然后使用此事件准备数据并将其推送到 HLC FIFO。 之后,您可以向 CPU 发出中断信号。 在该中断的事件处理程序中,您可以将数据推送到 RX FIFO。 HLC 应按优先级顺序依次执行这些指令。 我是否正确理解了您的问题? 如果您需要更多信息,请告诉我
此致,
彼得
彼得,你好!
我认为你是真的。非常感谢你。 准备实际上是将数据从计数器复制到 R0以导出它们。 下面是该代码的示例 HLC 代码。
MOV C0, R0 # Copy data to R0 MOV R2, C2 # Trigger data export MOV C1, R0 # Copy data to R0 MOV R2, C2 # Trigger data export
数据导出事件将是计数器1计数匹配1,我想导出 C0和 C1。 我的问题是我的逻辑是否有效? 或者,我是否需要在 HLC 事件后延迟一些时间,比如一些虚拟命令(例如 MOV R0,R0)以确保导出正确的数据? 如下所示
MOV C0, R0 # Copy data to R0 MOV R2, C2 # Trigger data export MOV R0, R0 # dummy instruction MOV C1, R0 # Copy data to R0 MOV R2, C2 # Trigger data export MOV R0, R0 # dummy instruction
另一个问题是数据导出和 HLC 是否使用相同的事件触发。 如果同时触发,会发生什么情况?
请提前感谢。
此外,在 CLB 示例28中,HLC 和数据导出使用相同的事件。 但 没有关于这方面的信息。 而在 CLB 工具用户 Guide.pdf 中的示例详细信息是 wrirten,但我找不到任何信息。 请提供更多有关 CLB 示例的信息吗?
我要提前表示非常感谢。
//############################################################################# // // FILE: clb_ex28_spi_data_export_dma.c // // TITLE: CLB SPI Data Export DMA // //! \addtogroup driver_example_list //! <h1>CLB SPI Data Export DMA</h1> //! //! For the detailed description of this example, please refer to: //! C2000Ware_PATH\utilities\clb_tool\clb_syscfg\doc\CLB Tool Users Guide.pdf //! // //#############################################################################
您好,Erhan,
您不需要在 MOV 指令之间添加任何延迟,因为 HLC 将按指定的顺序执行 MOV 指令。
如果您的 SPI 数据传输和 HLC 使用相同的事件触发器,您可能会遇到比赛情况。 因此,最好确保只有在确定 HLC 已成功地将数据从 C0和 C1移至 R0后才触发 SPI 数据导出中断。
此外,《CLB 用户指南》的更新版本尚未发布,但为了方便起见,我已包括示例27和28的更新说明。
5.1.21示例27 - SPI 数据导出
在此示例中,使用 CLB 的高速数据导出功能,并导出一个 HLC 寄存器
使用 SPI RX 缓冲器从 CLB 模块中取出。 此模块仅适用于 CLB 类型3及以上。
5.1.22示例28 - SPI 数据导出 DMA
在此示例中,使用 CLB 的高速数据导出功能,并导出一个 HLC 寄存器
使用 SPI RX 缓冲器从 CLB 模块中取出。 在 SPI RX 缓冲区中收到的数据将传输到内存
使用 DMA。 此模块仅适用于 CLB 类型3及以上。
此致,
彼得
彼得,你好!
感谢你的帮助。 我终于让它发挥了作用。 在一次 HLC 事件中,我不得不在 HLC 代码中添加3mov 以导出数据2次。 HLC 代码如下。
我使用计数器2匹配事件来导出数据。
您可以确认我的方法是否正常? 请提前感谢。
谢谢,
ADD R1, R0 # Inc R0 MOV R3, C2 # C2 Count Match(Fifo Export Event) MOV R2, R2 # Dummy command MOV R2, R2 # Dummy command MOV R2, R2 # Dummy command ADD R1, R0 # Inc R0 MOV R3, C2 # C2 Count Match(Fifo Export Event)