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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
1.ART加速
7 k' q' @0 ]) g/ }9 I0 @3 L$ N$ r, S
20200723165226551.png
* O: V% K' W8 C8 M1 E
* I0 I' [9 ^+ ?0 }6 }) p
ART在Flash之前,ART加速可以提高Flash的读取运行速度。
7 g% O: o) ?8 u* X7 E; Y
$ B5 G% p- Z, d6 t; P➢ 程序实现(任选一种):
; M& ]3 u0 G# Q0 i( |2 v1,使用库函数(HAL):- L6 K0 f9 u0 X! X
__HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
. g1 u$ m* I; y# B- J7 n__HAL_FLASH_DATA_CACHE_ENABLE();$ F. `! H7 j! F: ]
/ ]& m3 f! _3 N2 h' U6 O. v
2,寄存器操作:
% B& _3 U1 D3 ~# n9 CFLASH->ACR |= (1<<9);//将第9位置1. a0 Q3 D$ k" m# }' k* s2 j$ ?
FLASH->ACR |= (1<<10);//将第10位置1
2 M3 }# D  i; l% c! t2 o! H+ D7 M/ w$ K( n4 o  ^" p$ A/ @* c- h
20200723203747815.png
: |% T& G# c+ F

/ A  ~; Y% Z& G* h* F! u- o如果要将时钟跑到170MHz,需要设置到Rang1 Boost模式! X4 o2 _0 M& P

1 i* d  Q! G0 v* c/ b5 s2.CCM SRAM* T8 t  v5 e% E$ Y  z8 R% j9 `8 |

: T1 n: M" j3 c8 z5 {8 Y1 F
20200723204415722.png
1 }- S1 g9 S+ V7 J

7 ]" }$ a  Q9 M% Q$ L4 ~2 @# uCCM SRAM直接连接到 I-Bus ,D-Bus中,可以提升关键代码的速度,建议可以将关键代码放在这个区域。
) @  e7 T( C; H1 `6 g/ F1 N+ W& e+ x3 U2 D; {4 M
3.CoreMark测试
) {1 C7 i& f1 h- [& J" `3 q( c• CoreMark是一项测试处理器性能的基准测试9 a: o0 H  D# N0 [' a2 H
• 代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则
- B8 W) m! S! A0 K, E& r7 H$ w• 目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试
- P, r9 g; L$ R- C# s+ ]5 y• CoreMark的得分越高,意味着性能更高
2 Z0 M- \7 p9 D% H0 |1 }+ D. C' G5 Z• CoreMark官网的连接地址:http://www.eembc.org/coremark/index.php
& I: T# f& L7 V: z% s% Q; r5 E
: B& W; `4 k* L+ b' E- ]1 \" g
20200723210125642.png
- R; z0 z( Y% {

& l% D8 X$ \; p* q
20200723210416867.png

) P. L0 ^* U$ ^6 g( f4 W* W8 T4 P0 P3 k& c5 }, |- p
比较处理器的时候,不要单看主频,还需要了解综合的实力,有的处理器主频虽高,但是没有太大的用。* R# {! w" K; p# [7 C5 M

& r4 R8 t0 O. f* c1 r/ {+ D4.浮点运算$ Y: ]* {& \8 O& U& E7 Y
能提高运算精度,减少运算转化之间的损失,做算法类的项目需要用到的比较多。
, C4 n4 o( o+ @( O3 K" R
; x) v& a1 S/ [+ z6 ?
20200723211234758.png

6 e( S+ N$ a+ f* T' R8 t: n. X& n& n7 B- ]% D6 n
注意:除法和开方的运算周期过长,如无必要,尽量不要用,尽量将其转化为运算周期较少的加减乘运算
7 K7 Q3 \' }* \5 Z1 z! Y; z* A2 g( ~" c0 Z- m
2020072321171914.png
& I8 |5 ?# D4 H0 U! H
5 ]3 C' J7 a$ _" G
浮点运算实例:3 ^* J3 u9 u- u+ w5 ^' U9 N4 C
一般需要在运算结果前写上(float)或者标注f,否则一律认为其为双精度,将会大大增加运算的时间。
# F/ m, }' `( B
7 R) ^$ m+ C) D# g7 d浮点运算-FIR(滤波运算)
/ d: s) D, \6 D- w* Q! J5 x! h+ i在这里插入图片描述
! u& A; f, \, ?$ G- ]- H) b# Z, p5 X$ P* f, H" ?' M
20200723212510526.png
  Q8 }. i7 i1 N# D/ _! i

# W+ p! a5 t% ]% \+ A
20200723213655602.png
/ Y5 q" A5 E# c- d" P- g% b

/ d+ T# a/ g% ^9 K) }先看内核再看主频,才能判断效率,比如F1和F3都是72M的主频,可是F3是M3的内核,比M1的FIR运算快了7倍!!!!# |9 K/ L) ]; B' h6 {7 {

  Z1 C& D- s7 a; l) l: ]0 X* W$ \5 x* V+ R

& o+ \* H" m# [
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版