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.

[FAQ] [参考译文] [常见问题解答]常见问题解答:如何使用 Simulink“自定义代码”块来测量 TI C2000上的代码执行时间?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/943879/faq-faq-how-do-i-use-simulink-custom-code-blocks-to-measure-code-execution-time-on-ti-c2000

使用 MathWorks TI C2000硬件支持包的 MathWorks Embedded Coder 可从使用 MATLAB 和 Simulink 开发的模型在 C2000硬件上自动编译和执行。  

Simulink Coder 的自定义代码块是 调用自定义代码的关键方法。  可以 在 Simulink Coder 库下找到自定义代码块。  首先,在   MATLAB 命令提示符处键入命令“slLibraryBrowser”,导航至 Simulink 库 ,然后找到这些块,如下所示。  

假设我们要 测量  在  F2837x 器件上执行代码块所需的时间。 我们 可以 配置和使用 CPU 计时器 来获取计时信息。  我们 在 代码执行前读取自由运行计时器值 、   并在末尾读回计时器值    定时器 值的差异给出 了代码执行时间。  

我们假设要 计算其执行时间的算法位于原子系统内部。 将自定义代码块与子系统结合使用时、请务必注意 、自定义代码 块仅在   子系统是原子系统时才会遵守其边界。  

1.添加 系统初始化块  

  • 从  系统 初始 化块开始  初始化、 配置 和 启动  CPU 定时器2。  

注意:Timer0  用于  调度 、 Timer1  用于   在 C2000 硬件 支持 包中进行性能评测。  

  • 将  块添加 到  模型 、 然后双 击  块  以打开  块 掩码。  

  • ConfigCpuTimer() 函数  用于  配置 CPU 计时器。  

  • 200MHz 是     CPUTimer 计数的频率 、 10000 是  以   uSeconds 为单位的计时器周期。  

2.添加 模型标题 块  

  • 使用 模型 头 文件中  的外部 变量使用模型头文件块   。  

 

3.添加 模型源 块  

  • 使用 模型 源 代码块  定义    存储 计时 器值所需的变量。  

4.添加 包含  算法的子系统块  

  •   如前所述 、  将子系统设 为原子系统。  

5.添加系统 输出 块  

  • 在     原子 系统中添加此块           、该子系统包含在代码执行前读取计时器值的算法。  

  • 我们 还 可以        在代码执行后从      退出 代码中的同一个块读取计时器值 并 计算  差异。  

  •  计算 出的差值 可      通过串行链路使用  存储 器复制 块发送到主机。