问题:
基于XMC1302,如何在ModusToolbox中加载CMSIS DSP库,如何计算三角函数的运行时间?[size=14.6667px]
答案:
步骤一:使能CMSIS DSP库
基于 ModusToolBox 3.2 创建的工程,会自动从 https://github.com/ARM-software/CMSIS_5/tree/5.8.0 下载 CMSIS DSP 和 NN 库 到 mtb_shared 文件夹,但是这些库默认不会自动使能,使能这些库只需要在 makefile 文件中加入 COMPONENTS+= CMSIS_NN CMSIS_DSP,然后在用户代码文件中 include 对应的 .h 文件(比如 #include "arm_math.h")就可以了。添加方法如图1:加载CMSIS DSP库。关于不同版本的操作方法有区别,更详细的可以参考:如何在 ModusToolBox IDE 中加载 CMSIS DSP 数**算库
图1:加载CMSIS DSP库
步骤二:计算函数运行时间
在 Modus Toolbox 中没有寄存器可以直接查看某条语句或者某个函数的执行时间,可以利用 ARM Cotex-M 核自带的 System Tick 来实现这个功能。System Tick 是以 CPU Clock 作为它的源时钟,因此 1 个 System Tick 的 count 就表示一个机器周期,下面是可以参考的代码片段:
uint32_t DURATION_TIME;
float result1;
SysTick->CTRL = 0;/*Disable SysTick*/
SysTick->LOAD = 0xffffff; /* Count down from maximum value */
SysTick->CTRL = 0x5; /* Enable SysTick and use processor clock */
SysTick->VAL = 0; /* Clear current value to 0 */
result1 = arm_sin_f32(0.5f);
DURATION_TIME = SysTick->VAL; /* Get duration time */
SysTick->CTRL = 0; /* Disable SysTick */
则运行时间为t,t=(1/MCLK) *(0xffff- DURATION_TIME) us
|