STMCU小助手
发布时间:2021-12-30 13:29
|
STM32F4xx属于Cortex M4F架构,自带FPU硬件,可以加速float类型数据的加减乘除运算。 5 N! ~- X$ d T5 w' y 观察启动文件,发现,要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1) && (__FPU_USED == 1)
在keil的魔术棒中,如上图所示,直接选中单精度浮点运算器,keil就会自动把所需的宏给定义出来。如何验证是否开启成功?) C- ~4 C4 j2 K) r/ M2 B " c: g* q9 C% `, k3 ]- j3 V 验证方法1:3 P P; e* @, l+ H % n2 ]; |) u; h# Z8 R6 x2 X; K1 f 我们把F407主频设为168M,不选中/选中FPU,分别做10万次乘法:发现耗时分别为32153us、5954us,发现耗时缩短为1/6.性能提升显著,说明开启FPU成功了。$ F" u" ~) T3 w2 W$ p - A3 x; j( B5 P6 B8 e7 ` 验证方法2:2 i" G2 v' B5 T! b $ w1 Y) G. ]. ]4 h 进入debug模式,或者直接查看汇编文件,发现C语言乘法运算,被编译成了V打头的汇编乘法命令,说明开启成功。. b6 W9 s3 V' F: z* G G+ K) q9 v 4 y o2 j) ]% b4 S& q8 E
& _ y8 J& m+ R7 T6 w! s FPU只能加速float的基本运算,还有一些数学函数,不是光靠FPU就能加速的,例如sin、cos、等函数,ST和ARM提供了优化过的三角函数等,使用插值方法加速运算,要想使用这些优化过的函数 ! @8 F3 Y+ z* R6 ]/ e4 v 8 e! l1 K- X. a: } / |2 o0 ^/ y# V. E& j2 `# [6 p |
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版