你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32G4的内核性能

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
1.ART加速
- `5 s, i+ ^, o2 Q  k
! J/ u  n8 H! R6 |1 `; O
20200723165226551.png
9 p  n" }. R/ V" ~! y- [
9 F# u9 h+ X% `  q1 e1 D0 v+ }
ART在Flash之前,ART加速可以提高Flash的读取运行速度。# v( L' r. I5 f# n; E  G4 C

8 H1 s. M+ |  w: x  w9 w; K( b. q! @➢ 程序实现(任选一种):
1 t" f: J& L8 ?; N1,使用库函数(HAL):: Z1 p' L' ~7 m# a4 _: e+ X
__HAL_FLASH_INSTRUCTION_CACHE_ENABLE();- a5 Y( _5 X7 o$ A5 A* L* m) N
__HAL_FLASH_DATA_CACHE_ENABLE();
% M1 D8 _% J, x! \% Q, ?6 j& T
7 H0 R1 R( x  T# o; z2,寄存器操作:
. {5 I. g: G/ Q% f6 t. S4 s8 w; sFLASH->ACR |= (1<<9);//将第9位置10 e$ j- f1 d8 A) P
FLASH->ACR |= (1<<10);//将第10位置1% G- P3 e% _* v& W9 g
3 f8 O8 h3 H* ^! \) J8 m& ~
20200723203747815.png

0 z9 {( ~# f5 Q; U+ t# u
* f7 I0 [2 D- _, U  I如果要将时钟跑到170MHz,需要设置到Rang1 Boost模式
. ~5 Z- Z* q1 J: F, H3 |( o3 B3 P* A: l) u6 h0 h) ?
2.CCM SRAM; [( k0 P+ ~9 z
0 y- `% M& f# \# e5 E0 H. n
20200723204415722.png
, c5 p/ U0 E* f0 D3 ]
& W6 }3 @! F% q$ `3 G5 G
CCM SRAM直接连接到 I-Bus ,D-Bus中,可以提升关键代码的速度,建议可以将关键代码放在这个区域。
  N  s& [0 n8 p, c5 o$ Y/ \7 `3 _9 J9 p/ m
3.CoreMark测试
# Z; h; c$ I: A! ^& v/ [/ a: R! o! V• CoreMark是一项测试处理器性能的基准测试
+ z& |3 r7 J3 O6 z$ @• 代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则& t$ f0 s; w4 `2 @- s2 J
• 目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试) I# v% l7 U6 Q
• CoreMark的得分越高,意味着性能更高8 a+ v4 E( t4 a0 @
• CoreMark官网的连接地址:http://www.eembc.org/coremark/index.php
* Y2 A: I1 Z# o' h( ~2 g6 U7 s* U& r* j' q% n& E0 k4 M
20200723210125642.png

# }% x, L4 {+ w. D( q( T* i
+ G# ?( @/ t6 [) o7 e
20200723210416867.png

6 F' ]' B" L5 c. M3 L6 S4 D. N- i
: @: _; M6 X& ~' @比较处理器的时候,不要单看主频,还需要了解综合的实力,有的处理器主频虽高,但是没有太大的用。
' v* [2 X7 L0 k. k+ z. P
4 b. C% G( g* G- \5 d4.浮点运算0 A* k/ w% q; x3 F" `. \( T6 O2 f
能提高运算精度,减少运算转化之间的损失,做算法类的项目需要用到的比较多。& l" B2 G' r* u& Y5 K6 z9 D

0 A+ f! z! h( w- |3 z9 R; Z9 R% c" P
20200723211234758.png
9 D+ B! i* ]9 g
- u: w$ C* J+ u9 ~* ~6 w
注意:除法和开方的运算周期过长,如无必要,尽量不要用,尽量将其转化为运算周期较少的加减乘运算
$ S+ s$ f: Z7 h4 {) w; b
+ P" t& S: S3 H# g' x8 _
2020072321171914.png

- V4 j0 u8 G7 E. b' n
' Q+ j2 J  @+ e# S3 }4 }! z* D) o浮点运算实例:
! I: M8 L5 B' j+ e一般需要在运算结果前写上(float)或者标注f,否则一律认为其为双精度,将会大大增加运算的时间。
$ d( K! ~8 U$ g$ r, G- F
: K$ Y# k/ }6 O) |# S/ M浮点运算-FIR(滤波运算)# O- \6 e1 d1 [2 B: N! |( P* q4 S: _
在这里插入图片描述
4 u& L$ b5 V8 T. ]  K+ Z1 t  Q, X  \2 T4 d5 X. _! D
20200723212510526.png

5 k: z8 k9 A! b* A  }2 I3 o. y4 i8 d7 S' w. m$ h4 k0 X: `
20200723213655602.png
# @; S" c. h, U5 g* i9 H, f8 w1 S
! s) K$ t5 J5 g6 m( X9 W/ |
先看内核再看主频,才能判断效率,比如F1和F3都是72M的主频,可是F3是M3的内核,比M1的FIR运算快了7倍!!!!
" k1 q0 ^) B+ L/ V7 v4 ~/ D
7 ~# @0 {8 v& g3 D% d% |* G7 @3 X) H* N; r7 Z% }; P  T

# F0 |8 ?- s$ [/ p1 O1 Y; P( ^
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版