|
本帖最后由 stm1024 于 2019-1-18 11:15 编辑 6 F& G2 ~! ~+ C* q2 Q 4 Q' V1 r/ u" `; X Flash现已成为MCU的标配,Flash的特性在决定了MCU的一些功能,如代码大小、执行效率、FDU等。了解一款MCU的Flash显得很重要,这里测试一下G071的Flash。0 l& c' A, s' h, k7 c1 M8 @# Y7 J 先看看和F0存在的不同。flash的大小就没必要深究了,主要的区别如下:
1.指令缓存。Flash控制器含有一个8字节的预取指缓冲器和一个16字节的指令缓存。! o7 R" g+ m8 }+ w7 C 2.OTP区域。所谓的OTP,也就是one time programming,这个区域可以按双字方式写入数据,而且只能写一次,如果写入的数据有一个bit不为0,则以后这个区域就不可更改了,可用于存取非擦写的用户数据。 3.快速编程。官方给出的数据是22ms的擦除时间和写入每双字时间为82us。 4.PCROP。这个是proprietary code readout protection的缩写,用于保护代码,其代码只能用来执行,而不能被读取或写入。至于Securable Memory,则是安全储存器,该区域不能被非安全区域外访问,3 y5 h7 K3 s7 v 5.ECC。ECC是Error Correction and Checking,即错误检查和纠正。能检查2 bits的错误,并能纠正1 bit翻转错误。 0 L' b3 _0 d( \4 y h+ p 再看看Flash的组织。见下图:
Flash主要分为两块,分别是主块和信息块。主块就是常规使用的Flash,通常也是我们程序的入口地址,这一块可以随便使用。 g0 B2 ?8 o+ G5 f1 W 而信息块则包含了系统储存器,OTP区域和选项字节,Flash的操作方式按下图:; u3 D2 e( C5 c' r0 ~; r
编程需要一次写入8字节,也就是粒度为64bits(实际上是72bits,还有8bits的ECC)快速编程为256字节(仅支持Main Memory),快速编程因为不检查所写入的地址,因此比标准编程快了约37%。擦除可按2KB的页或者整个擦除(128KB),但花费的时间相当。- C1 D* M% }) ~ . B7 d! ?$ n0 N: K, y 在选项字节的配置上,和F0系列没有差别(或者我还没有发现)。 以下Flash编程测试代码:# T v4 `: q( G7 m ^
不得不说,有ST Link Utility就是好,直接Dump Flash。3 _2 T# z+ R( [4 p; f; r 此外,可以看到刚好改写数据是1页:7 Z/ a0 d5 v5 Y( |6 \, a& m$ T( L3 [
因为0x2000-0x1800=0x800,也就是1 Page的大小。1 P; [/ y& Z- _; u; g( H ; D, |- D- b5 M& C) `5 ? : y# n, X( s$ {7 B0 ~, ` |
实战经验 | 基于STM32G0B1的全桥移相+同步整流PWM解决方案
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:逢7发帖赢大礼】8、基于STM32G070板子的Ymodem串口协议IAP Bootloader开发
【福利三:逢7发帖赢大礼】7、基于STM32G070板子TF卡的FATFS移植
【福利三:逢7发帖赢大礼】6、基于STM32G070板子spiflash的FATFS移植
【福利三:逢7发帖赢大礼】5、基于STM32G070板子IRDA红外遥控接收解码
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
微信公众号
手机版
啊,这个没复制进去。" R& e0 J! N2 w2 C
一行代码:- L7 y1 Q) @+ E/ ]0 j4 W" D
这命名方式不太符合ST家的风格,而且目前从官网看,也就只有G070,G071,G081三个大系列。( F' Z, r9 C2 m/ U+ r
这个可以参考HAL库的文档,我都是调用的HAL库函数
谢谢!
% Z3 p- l* B+ F/ ~# X0 g3 `
另外还有页设置的函数GetPage()是在哪个文件中定义的?我在编译时提示未定义。8 M: r4 E4 F. ^$ w. k9 z8 |4 P
这个问题已经解决了,编译通过了。* Y3 I) Q+ b+ e/ L* z! J9 |, x
额,这个还没见到过,不过一般用的好像都是F103C8T6
感谢分享
大佬过奖了~
过奖了,学了点皮毛
这个文章中的,一位买了STLINK 主控是stm32gc102cb1 S5 w$ V# [2 L- M+ `