主题中讨论的其他器件:TMS320F28035
大家好、
我想了解《TMS320F2807x 技术参考手册》图2-15中描述的 LSRAM 仲裁机制的后果。
让我们假设 CLA 尝试在 CPU 写入该地址的完全相同周期读取该地址。 是否存在循环仲裁意味着、根据之前的循环状态、CLA 读取可能会被挂起一个周期、等待 CPU 写入完成?
此致、
皮埃尔
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.
大家好、
我想了解《TMS320F2807x 技术参考手册》图2-15中描述的 LSRAM 仲裁机制的后果。
让我们假设 CLA 尝试在 CPU 写入该地址的完全相同周期读取该地址。 是否存在循环仲裁意味着、根据之前的循环状态、CLA 读取可能会被挂起一个周期、等待 CPU 写入完成?
此致、
皮埃尔
Vivek、
还有两个问题:
皮埃尔
您好!
[引用] 我的错误、我在外设名称之间进行了混合。 我的问题是、仲裁方案是否与0类 CLA (类似于 TMS320F28035)和1类 CLA 相同。 [/报价]
仲裁机制与 CLA 类型无关、而是与器件相关。 在 F28035器件上、RAM 被映射到 CPU 或 CLA (不是两者都映射)、因此没有仲裁。 在该器件上提供了仲裁、以便数据可以共享运行时间。
[引述] 关于非确定性延迟的重要性、我认为您对这个问题的看法太轻了。 我在手动优化的程序集中编写控制循环,该程序集的运行频率为~1.5MHz。 我对每个循环只有几十条指令、我需要确切地知道发生了什么以及何时发生。 [/报价]
仲裁仅适用于数据访问、而不适用于代码执行。 CLA 执行代码的 RAM 专用于 CLA、CPU 无权访问。 如果仲裁引起的一个 CPU 周期延迟是一个大问题、那么避免 CLA 和 CPU 同时访问同一个 RAM 块。
此致、
Vivek Singh
Vivek、
您编写以下内容:
"在 F28035器件上、RAM 被映射到 CPU 或 CLA (不是两者都映射)、因此没有仲裁。 在该器件上提供了仲裁、以便数据可以共享运行时间。"
我不赞同。 在 F28035器件上、运行时数据与这些消息 RAM 共享。 只需查看 CLA 数据表 SPRUGE6B 中的附录 A: 消息 RAM 包含两个块。 这些块用于在主 CPU 和 CLA 之间传递数据。
这个方案是完美的。 无论发生什么、CLA 都不能由 CPU 延迟。 为了共享数据、不需要循环仲裁。
"如果仲裁引起的一个 CPU 周期延迟是一个大问题、那么避免 CLA 和 CPU 同时访问同一个 RAM 块。"
如何实现? 每次需要写入控制参数或读取计算结果时、我是否必须等待 MIRUN 标志被清除?
皮埃尔