
1. 引言 客户在使用 Cordic 进行运算时候,对 Cordic 打断 CPU 的时间存有疑问,认为时间不是按照芯片手册中所描述的时钟周期,本文针对 Cordic 时间测试用于澄清计算周期,同时可作为客户评估使用,本文以 STM32G431 作为示例。 2. 执行周期 在 STM32G431 参考手册中有关于 Cordic 的精度及迭代次数描述,另外还有执行周期的对应值,从图上我们了解到设定精度数据等同于指令执行时间,因为 Cordic 执行时会自动耗损CPU 执行周期,因此我们可以了解执行速度等同于精度数据设定。 ![]() 3. 测试方法 我们分两种写法: 1.单次执行测试 2.多次测试取平均值 测试代码中 hcordic.Instance->也可以写为 CORDIC->;读取 TIM3 的寄存器数据就可以知道这段代码执行的时间,其中 TIM3 配置时钟为 170MHz 等同于 CPU 执行时间;TIM3 的 CNT数据即指令执行周期。 3.1. 单次执行测试 当使用单次测试时,我们使用 16 次迭代测试,精度配置字为 4; 图 2.单次执行时间测试代码 ![]() ![]() ![]() 去除数据 load 设定时间以及 TIM3 执行停止指令时间,可以看到真正 Cordic 运算正弦运算的指令执行周期为: 24cycle -(3+2+2+1+2+3+5+1+1)cycle = 4 cycle; 也就是在写入 WDATA 和读取 RDATA 之间的 CPU 占用时间为 4 个 CPU 时间。 完整版请查看:附件 |
LAT1059_STM32_Cordic运算速度评估_V1.0.pdf
下载702.11 KB, 下载次数: 38
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南