
1.ART加速; X, x7 Q9 _8 T* ^7 f![]() * B- W5 m2 j( F3 b) v ART在Flash之前,ART加速可以提高Flash的读取运行速度。 ➢ 程序实现(任选一种):. ~, ^' f( e' P+ i 1,使用库函数(HAL):4 C( @4 C6 a5 s8 j4 D( I" P ^ __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();# U& h4 H) P+ O8 C. f __HAL_FLASH_DATA_CACHE_ENABLE();" L5 O' c+ }8 s7 _ 2,寄存器操作: FLASH->ACR |= (1<<9);//将第9位置1, Z6 p9 `0 c. ~, a5 p FLASH->ACR |= (1<<10);//将第10位置1, G# e& r! x/ b4 {! U0 V e- D ![]() 6 _2 c% b+ o' |' v 如果要将时钟跑到170MHz,需要设置到Rang1 Boost模式' }" ] k) n1 m* {1 _& x5 M9 f 4 @- S5 M* F/ |8 }; Z! o 2.CCM SRAM ![]() " y/ _0 F1 H1 [- ~ CCM SRAM直接连接到 I-Bus ,D-Bus中,可以提升关键代码的速度,建议可以将关键代码放在这个区域。 3.CoreMark测试 • CoreMark是一项测试处理器性能的基准测试 • 代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则/ J+ g2 v. p- }( T • 目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试9 c9 _& B5 Q3 K Q* Z • CoreMark的得分越高,意味着性能更高4 F+ D2 ^' g3 \ • CoreMark官网的连接地址:http://www.eembc.org/coremark/index.php。% O# U2 P9 m4 m ![]() 8 X9 r7 N9 @' L3 K" k ![]() 比较处理器的时候,不要单看主频,还需要了解综合的实力,有的处理器主频虽高,但是没有太大的用。2 H9 R) ]! y# Y3 Q n: W. g / }% ^' f! Q/ Q 4.浮点运算3 V. W% R' G( c 能提高运算精度,减少运算转化之间的损失,做算法类的项目需要用到的比较多。 ![]() 注意:除法和开方的运算周期过长,如无必要,尽量不要用,尽量将其转化为运算周期较少的加减乘运算 ![]() ) n G [5 I8 J 浮点运算实例: 一般需要在运算结果前写上(float)或者标注f,否则一律认为其为双精度,将会大大增加运算的时间。+ @# I2 t# d% F6 L; u 浮点运算-FIR(滤波运算)! P) z- d+ T/ b8 H# b! H 在这里插入图片描述 $ |# C% p5 W9 J& c ![]() , G" x- T8 Z; y8 u% m ![]() 先看内核再看主频,才能判断效率,比如F1和F3都是72M的主频,可是F3是M3的内核,比M1的FIR运算快了7倍!!!!) y: n" D3 M' b& j- g4 W- c/ J& D / ~- _7 R; i" I6 r ) Y. M4 o9 u" y9 H+ N$ l |