[XMC™]

基于XMC1302,如何在ModusToolbox中加载CMSIS DSP库,如何计算三角函数的运行时间?

[复制链接]
60|0
手机看帖
扫描二维码
随时随地手机跟帖
IFX_Lingling|  楼主 | 2024-7-1 16:59 | 显示全部楼层 |阅读模式

问题:

基于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 数**算库
2KBA图1.png


图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




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

66

主题

144

帖子

3

粉丝