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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
1.ART加速
0 y: W1 \$ w$ t! ~1 M9 R
5 }% \) t7 ^" T8 b
20200723165226551.png
0 |) L  H2 n6 d  ^  D4 Q7 P8 m
$ d- }: }3 F6 q2 w
ART在Flash之前,ART加速可以提高Flash的读取运行速度。0 @5 Z7 x6 e( a0 J) g* v

2 W! B! Y- P7 B7 H9 h➢ 程序实现(任选一种):
9 W% N: ~1 B9 F9 C- X* W) `1,使用库函数(HAL):
* |/ g/ C' y# D% c8 _4 S__HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
8 d# `/ D' Q7 q! R# x; o2 H5 Y__HAL_FLASH_DATA_CACHE_ENABLE();' x8 m+ j0 }* B- P' ^5 H
! Y4 g) w/ ~5 p# X$ J" l' P% I
2,寄存器操作:
  K5 v1 p! x1 |9 {2 J( j% N+ NFLASH->ACR |= (1<<9);//将第9位置1
9 n/ m' b# A: N1 ^9 NFLASH->ACR |= (1<<10);//将第10位置1
+ O' T$ P, y6 O7 L$ l
3 T  G" \' L/ A6 s" ?. H
20200723203747815.png

( A' G3 k% d: m7 u* L- d: \" J& n( |! Q
如果要将时钟跑到170MHz,需要设置到Rang1 Boost模式
  h; o0 y7 Q' ^8 l/ p
; A* a1 J% Q& Q2.CCM SRAM1 r" b) Z! L) J+ h7 t

2 G. b0 }& V! X  c' n
20200723204415722.png

) W0 ^' R  D* r9 f) u. c' ?
, u8 s5 m! c+ j- iCCM SRAM直接连接到 I-Bus ,D-Bus中,可以提升关键代码的速度,建议可以将关键代码放在这个区域。
2 R- I( A; ]; R. O* L
5 _' L8 a4 [7 w- L5 r6 B3.CoreMark测试
# Z: n) U7 B- k/ E- i• CoreMark是一项测试处理器性能的基准测试$ ^$ Q# r8 B8 K1 f% t+ G8 l$ e
• 代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则7 G% H% l8 Y' a' T$ D0 \
• 目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试
) U% G# p9 X! ]• CoreMark的得分越高,意味着性能更高; J- {4 `# I, s$ M
• CoreMark官网的连接地址:http://www.eembc.org/coremark/index.php" y/ C6 i' g, j9 v, S

4 B$ g5 O6 A9 }$ J
20200723210125642.png
8 D2 V  e& u- {9 u8 R" f

% n4 Y- s+ ^- V' k$ C9 L1 v+ o
20200723210416867.png

" o/ t7 I- _; A& A' E$ v: 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. _

4 G2 _  B3 \2 l4 }' Y4 m& B5 h
20200723211234758.png

; C" J# h/ |# u4 [8 _. y
4 P5 v/ s# d4 M1 w注意:除法和开方的运算周期过长,如无必要,尽量不要用,尽量将其转化为运算周期较少的加减乘运算& ]. N' c$ z3 v) ^
' K2 V# w' A: p9 E1 e" }( h9 X
2020072321171914.png
2 g- A1 W3 C4 H8 f& p8 E

8 `+ X. l* s# c. @3 F( r* e  I浮点运算实例:: z0 ]+ N) B1 V$ y
一般需要在运算结果前写上(float)或者标注f,否则一律认为其为双精度,将会大大增加运算的时间。
: V# p# r: K2 R8 a# j& h2 U. b6 G( k  l1 ?2 W4 Q6 J
浮点运算-FIR(滤波运算)
# X3 N# X5 b2 e- i: U3 U( I在这里插入图片描述/ V$ s6 i- r9 \" A- u' Z
: D/ ?  _5 k3 b4 ~  P
20200723212510526.png

8 O. H) O7 p2 d6 F: h
6 l6 V2 Q# I1 b( D+ {8 I% F! {
20200723213655602.png

0 b7 l) Q5 U! c! g+ U/ n1 o% y9 Y( e& o, r4 J! n
先看内核再看主频,才能判断效率,比如F1和F3都是72M的主频,可是F3是M3的内核,比M1的FIR运算快了7倍!!!!
8 i1 P. T/ L& g/ C$ m  N7 C& j) n8 d3 Y; _9 H: a- Z- m# p) o

) }) Y. p! Z# @) [* F7 g5 [) T# Z* r0 B" e6 w4 V
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版