1.ART加速 $ d- }: }3 F6 q2 w ART在Flash之前,ART加速可以提高Flash的读取运行速度。0 @5 Z7 x6 e( a0 J) g* v ➢ 程序实现(任选一种): 1,使用库函数(HAL): __HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); __HAL_FLASH_DATA_CACHE_ENABLE();' x8 m+ j0 }* B- P' ^5 H ! Y4 g) w/ ~5 p# X$ J" l' P% I 2,寄存器操作: FLASH->ACR |= (1<<9);//将第9位置1 FLASH->ACR |= (1<<10);//将第10位置1 - d: \" J& n( |! Q 如果要将时钟跑到170MHz,需要设置到Rang1 Boost模式 2.CCM SRAM1 r" b) Z! L) J+ h7 t CCM SRAM直接连接到 I-Bus ,D-Bus中,可以提升关键代码的速度,建议可以将关键代码放在这个区域。 3.CoreMark测试 • CoreMark是一项测试处理器性能的基准测试$ ^$ Q# r8 B8 K1 f% t+ G8 l$ e • 代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则7 G% H% l8 Y' a' T$ D0 \ • 目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试 • CoreMark的得分越高,意味着性能更高; J- {4 `# I, s$ M • CoreMark官网的连接地址:http://www.eembc.org/coremark/index.php。" y/ C6 i' g, j9 v, S : r( C6 |4 T% a/ \3 d 比较处理器的时候,不要单看主频,还需要了解综合的实力,有的处理器主频虽高,但是没有太大的用。, ]9 y: ~( E9 g; O7 X0 S 2 |7 ]8 D0 z+ E$ G 4.浮点运算; x. F7 ?5 L' Y/ W1 a+ H; i 能提高运算精度,减少运算转化之间的损失,做算法类的项目需要用到的比较多。6 R h7 Q! E7 @- H. _ 注意:除法和开方的运算周期过长,如无必要,尽量不要用,尽量将其转化为运算周期较少的加减乘运算& ]. N' c$ z3 v) ^ ' K2 V# w' A: p9 E1 e" }( h9 X 浮点运算实例:: z0 ]+ N) B1 V$ y 一般需要在运算结果前写上(float)或者标注f,否则一律认为其为双精度,将会大大增加运算的时间。 6 G( k l1 ?2 W4 Q6 J 浮点运算-FIR(滤波运算) 在这里插入图片描述/ V$ s6 i- r9 \" A- u' Z : D/ ? _5 k3 b4 ~ P 1 o% y9 Y( e& o, r4 J! n 先看内核再看主频,才能判断效率,比如F1和F3都是72M的主频,可是F3是M3的内核,比M1的FIR运算快了7倍!!!! & j) n8 d3 Y; _9 H: a- Z- m# p) o 7 g5 [) T# Z* r0 B" e6 w4 V |
STM32固件库分享,超全系列整理
【经验分享】STM32G4_CORDIC与定点带符号整数数据格式
STM32的CAN FD位定时设置注意事项
基于STM32G474 中 Triggered-half 模式的实现
基于STM32G4的数字控制 15kW双向PFC
基于STM32G431简介
今天14:00 | 基于STM32的MATLAB电机控制方案直播
基于STM32G474外红外接收经验分享
STM32G431RBT6之Key模块入门
STM32G431RBT6--LED模块入门