主要内容

使用CMSIS DSP库进行代码优化

本示例向您展示如何使用用于ARM Cortex-M处理器的代码替换库,使用用于STMicroelectronics®STM32处理器的嵌入式Coder®支持包,为STMicroelectronics stm32fp - discovery板生成优化的代码。金宝app

简介

代码替换库(CRL)是一组一个或多个代码替换表,它定义了在为Simulink模型生成代码时使用的函数和操作符的特定于目标的实现。金宝appCRL表为用特定于目标的代码替换模型代码中的默认函数和操作符提供了基础。控制函数和操作符替换的能力允许您优化代码执行速度、内存占用,并允许您更好地将外部代码和遗留代码与模型代码集成。

ARM Cortex-M处理器的嵌入式金宝app编码器支持包提供了一个CRL表,它将为某些Simulink块生成的标准ANSI-C代码替换为ARM Cortex-M优化的代码金宝appCMSIS DSP图书馆。CMSIS DSP库包括一组控制和信号处理功能,如滤波器、傅里叶变换、矩阵数学运算、向量运算等。Cortex-M4处理器使用ARM DSP SIMD指令集和浮点单元(FPU)来高效地计算信号处理算法。

这个示例向您展示了如何使用ARM Cortex-M CRL表来生成针对STM32F4-Discovery板上的Cortex-M4处理器优化的代码。您将了解如何使用PIL来获得执行概要测量,并观察在使用ARM Cortex-M CRL表时获得的性能改进。

先决条件

我们建议填写代码验证和验证与PIL和监视和调优

所需的硬件

要运行这个例子,你需要以下硬件:

  • STMicroelectronics STM32F4-Discovery板

  • USB type A转Mini-B电缆

串行通信:

  • USB TTL-232电缆- TTL-232R 3.3V

注:

  • 这个例子是用FTDI朋友USB TTL-232R 3.3V适配器。

任务1 -为PIL仿真配置模型

在这个任务中,您将配置一个Simulink模型来为STM32F4-Di金宝appscovery板生成优化的代码,并且您将运行PIL模拟来收集执行概要测量。

1.打开代码优化模型.此模型配置用于STM32F4-Discovery目标。的基础上创建PIL块冷杉运行在STM32F4-Discovery板上的子系统。的冷杉子系统包含一个64抽头FIR滤波器。该模型使用单精度浮点数据类型,充分利用STM32F4xx处理器的浮点单元。

2.打开建模页签,按“CTRL+E”打开“Configuration Parameters”对话框。

3.代码生成>接口>代码替换库并选择Arm Cortex-M (CMSIS)

4.您可以从启用PIL配置参数>代码生成>验证>创建块并选择公益诉讼

或者,您可以启用PIL代码优化模型通过运行set_param(“stm32f4discovery_cmsis_crl”、“CreateSILPILBlock”、“公益诉讼”)从MATLAB命令窗口。

5.使用PIL启用分析。

一个。配置参数>代码生成>验证

b。选择测量任务执行时间,并选择测量函数执行时间>详细信息(所有函数调用站点)选择。

6.启用PIL通信接口。

一个。硬件实现并选择公益诉讼

b。选择PIL通信接口>串行(USART2)并点击好吧

本例中选择的是串口通信接口,并且USB TTL-232线缆(COM28)对应的COM口已在手册中指定串行通讯端口编辑框。的任务1代码验证和验证与PIL和监视和调优关于选择PIL通信接口的更多信息的示例。

7.创建一个PIL块冷杉的任务1 -步骤3代码验证和验证与PIL和监视和调优的例子。

8.的任务1 -步骤4运行PIL模拟代码验证和验证与PIL和监视和调优的例子。

任务2 -检查执行概要分析结果

这个示例向您展示了如何检查PIL模拟期间收集的执行概要分析结果。

1.在任务1中,您运行了PIL模拟来收集执行概要测量。测量结果保存在firProfile工作空间变量。要查看代码执行概要测量的报告,在MATLAB提示符中输入以下命令:

报告(firProfile)

下面的报告打开并显示执行概要测量:

执行时间测量的默认单位是纳秒。

2.扩大FIR_step [0.009375 0]中所花费的总时间离散FIR滤波器函数,arm_fir_f32,来自CMSIS DSP库。来查看对应的代码离散FIR滤波器表中的条目,单击MATLAB图标(上图中的数字2)旁边的链接。

3.重复PIL模拟选择没有一个而不是手臂Cortex-M作为您的CRL表。方法获取的分析测量值手臂Cortex-M的名称进行修改firProfile工作空间变量。比较两种方法的执行概要分析结果。时,您应该会注意到过滤算法的显著性能改进手臂Cortex-M使用CRL表。

总结

这个示例说明了如何使用ARM Cortex-M CRL表来将标准操作替换为CMSIS DSP库等等物,从而提高为FIR过滤器生成的代码所花费的执行时间。该示例还介绍了在PIL模拟期间收集和分析执行概要测量的工作流。