找回密码
 立即注册
查看: 137|回复: 4

AI8051U、STM32F103C8T6、AT32F421C8T7 浮点数计算能力测试

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-01 11:26:42
已绑定手机

9

主题

14

回帖

170

积分

注册会员

积分
170
发表于 6 天前 | 显示全部楼层 |阅读模式

测试平台介绍

  • STM32F103C8T6是嘉立创地阔星最小系统板
  • AT32F421C8T7最小系统板(自制)
  • AI8051U最小系统板(自制)

微信图片_20250426131452.jpg

测试代码介绍

  • int i;
      float a = 3.1415926f, b = 2.71828f, c = 0.0f;
      float temp;
      float result;
    for(int i = 0; i < 1000; i++) {
    c = a + b;
    c = a - b;
    c = a * b;
    c = a / b;
    temp += c;
    }
    
    for(int i = 0; i < 1000; i++) {
    c = sqrt(a);
    c = sin(a);
    c = exp(b);
    c = a*b + c/b;
    result += c;
    }
    

    测试方案

    • 使用PWM输入捕获上升沿和下降沿,测一个IO高点电平的宽度。得到计算时间,在需要计算的部分,令一个IO为高电平,计算结束之后,使这个IO为低电平。使用PWM输入捕获这个引脚的电平,在定时器中断内部输出计数值。定时器分频之后的计数频率为1Mhz即可。比如STM32定时器的定时器输入频率为72Mhz,那么就需要定时器分频系数为71,AT32的定时器输入频率为120Mhz,那么就需要分频系数为119,AI8051U同理。
    • 编译器编译优化关闭,都为-O0

image.png

image.png

image.png

//假设P14为普通IO,P20为输入捕获IO
P14 = 1;//这里会进入PWM通道1的上升沿中断
/*
计算部分

*/
P14=0;//这里会进入PWM通道2的下降沿中断,用下降沿中断时的值,减去上升沿时的值。即可得到运算时间。

测试结果


单片机 运行时长 排名
AI8051U 86736us=0.086736s 1
AT32F421C8T7 179568us=0.179568s 2
STM32F103C8T6 310956us=0.310956s 3

结果分析

  • 由于AI8051U使用了FPU计算单元,在其主频只有40Mhz的情况下,计算能力很突出。

  • AT32F421C8T7由于其120Mhz的主频,所以计算速度也比较快。

  • stm32F103C8T6其主频72Mhz,但是没有硬件的浮点数计算单元,所以其计算速度较慢。

  • 总结

    • 可以使用stm32f103c8t6的项目,只要硬件外设满足需求,AI8051U完全可以对STM32F103C8T6进行替代, RMB2.3元,全新原厂正品,而且手册也是中文手册,也有类似于cubemx的AiCube开发环境,对于学习过stm32的同学,切换方便。

      问题

      • AI8051U在开启PWM输入捕获时,用手触摸外部引脚不会导致定时器误入中断,抗干扰能力比较强(我是这么认为的)。
      • 但是STM32F103C8T6,AT32F421C8T7用手触摸对应的输入捕获引脚,会一直误入中断。

    upload 附件:test_pwm_cap.zip upload 附件:AT32F421C8T7_TEST_FPU.zipupload 附件:pwm_input_capture.zip

附件说明

  • test_pwm_cap是AI8051U的工程代码
  • AT32F421C8T7_TEST_FPU AT32F421的代码
  • pwm_input_capture是STM32F103C8T6的代码
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-01 11:26:42
已绑定手机

9

主题

14

回帖

170

积分

注册会员

积分
170
发表于 6 天前 | 显示全部楼层
之前的AI8051U的PWM输入捕获程序有点问题,没有对溢出中断进行处理,所以计数值是不准确的,修改后的程序我已经上传了。最新的结果我也修正了一下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 6 天前 | 显示全部楼层
AI8051U,
CPU跑40MHz,
TFPU 可以跑 120MHz,
PWM 可以跑 120MHz

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-28 14:45:49
已绑定手机

3

主题

14

回帖

99

积分

注册会员

积分
99
发表于 4 天前 | 显示全部楼层
神*** 发表于 2025-4-26 16:50
AI8051U,
CPU跑40MHz,
TFPU 可以跑 120MHz,

手册上说 FPU 最多只能跑 108 MHz,楼主跑的 120 MHz 真没问题嘛??

点评

没问题,108只是比较保守的一个速度,实际上跑120完全可以  详情 回复 发表于 3 天前
我爱STC
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 3 天前 | 显示全部楼层
给我你*** 发表于 2025-4-28 14:50
手册上说 FPU 最多只能跑 108 MHz,楼主跑的 120 MHz 真没问题嘛??

没问题,108只是比较保守的一个速度,实际上跑120完全可以
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:36 , Processed in 0.161801 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表