主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用 Custom Code 模块测量 TI C2000 上的代码执行时间

Simulink® Coder™ Custom Code 模块提供调用自定义代码的功能。您可以在 Simulink Coder 库下查看 Custom Code 模块。按下按钮或在 MATLAB® 命令提示符下输入命令 slLibraryBrowser,即可导航至 Simulink 库浏览器。请按照下图所示放置模块:

custom-code

假设您需要测量在 F2837x 设备上执行一段代码所需的时间,配置并使用 CPU 定时器来获取计时信息。代码执行前读取自由运行定时器的值,代码执行结束后再读取定时器的值。计时器值的差值即为代码执行时间。假设要计算执行时间的算法位于原子子系统内。

注意

当使用自定义模块和子系统时,需要注意的是,Custom Code 模块只有在子系统是原子性的时才会遵循子系统的边界。

添加 System Initialize 模块

首先使用 System Initialize 模块初始化、配置并启动 CPU 定时器 2。

System Initialize block

注意

Timer0 用于调度,Timer1 用于探查 C2000™ Microcontroller Blockset

System Initialize 模块添加到模型中,然后双击该模块打开模块掩码,如屏幕截图所示。ConfigCpuTimer() 函数用于配置 CPU 定时器。200MHzCPUTimer 计数的频率,10000 是定时器周期,单位为微秒。

添加 Model Header 模块

使用 Model Header 模块在模型头文件中指定外部变量。

Model Header block

点击该模块以指定外部变量。

添加 Model Source 模块

使用 Model Source 模块定义存储定时器值所需的变量。

Model Source block

点击该模块,并指定存储计时器值所需的变量。

添加包含算法的 Subsystem 模块

当使用自定义模块和子系统时,需要注意的是,Custom Code 模块只有在子系统是原子性的时才会遵循子系统的边界。

添加 System Outputs 模块

在包含算法的原子子系统中添加 System Outputs 模块,以便在代码执行之前读取计时器值。

System Outputs block

您也可以在退出代码的同一模块中读取代码执行后的计时器值,并计算差值。计算出的差值通过串行链路使用内存复制模块发送到主机。

另请参阅

|

另请参阅

| |

主题