[DAY 29] _STM32_内部Flash

STM32晶片内部有一个Flash记忆体,主要用於储存我们所打的程序,我们在软件上打好程序编译完成後烧入的程序都存在这,由於FLASH记忆体的内容在掉电後不会丢失,晶片重新上电重定後,内核可从内部FLASH 中载入代码并运行。

ST-Link烧录器就是将程序转成.hex档烧入进Flash,若内部Flash存储了程序後还有剩余的空间,我们可以把它像外部SPI-Flash 那样利用起来,存储一些程序运行时产生的需要掉电保存的资料。

访问内部Flash的速度要比外部的SPI-Flash 快得多,所以在紧急状态下常常会使用内部Flash存储关键记录;为了防止应用程序被抄袭,有的应用会禁止读写内部FLASH 中的内容,或者在第一次运行时计算加密资讯并记录到某些区域,然後删除自身的部分加密代码,这些应用都涉及到内部FLASH 的操作,这部分较为复杂我就不整理上来了,这地方我也还没看懂目前也没有这需求要用到内部Flash。

内部的Flash擦除次数是有限制次数,不像EEPROM可以擦除较多次,这两个记忆体擦除次数差距约100倍以上,至於STM32各个MCU的Datasheet里有提到内部Flash约略擦除几次,先来看看STM32F030
https://ithelp.ithome.com.tw/upload/images/20211012/20141979MfRfyFiCH6.png
红框处,约1千次
再来看看STM32F429的Datasheet
https://ithelp.ithome.com.tw/upload/images/20211012/20141979XEWkWb6qWB.png
约1万次

这次数我认为不算多,非必要能不用就不用,还有1个蛮重要的观念不能动到不该动的区域有可能会造成整个MCU上电後异常,我刚学STM暂存器操作的时候就不小心遇过这问题,我不确定是操作到甚麽暂存器导致MCU都不能烧入,但辨识的到MCU。
这时有STM32 ST-LINK utility这个工具可以把内部的内部Flash擦除,我用了这个後就能正常烧入啦~
ST官方载点:https://www.st.com/en/development-tools/stsw-link004.html
软件开起来介面如下:
https://ithelp.ithome.com.tw/upload/images/20211012/20141979QH9reUfyqs.png
接下来把一块开发板擦上ST-Link烧入器,接上的脚位(SWDIO、SWCLK、3.3V、GND)

按下图插头连接的部分,按一下放开後马上按开发板上的Reset,就会跑出这样:
https://ithelp.ithome.com.tw/upload/images/20211012/20141979equ0fSAbHc.png
红框按下像插头的图案,按了後马上Reset MCU就会跑出橘框内的数值,这就是内部Flash数值,为16进制。
那我要如何擦除?
按这个橡皮擦的图案会出现下图对话框
https://ithelp.ithome.com.tw/upload/images/20211012/20141979vzvjXGIeX1.png
按确定後内部Flash会变成这样。如下图:
https://ithelp.ithome.com.tw/upload/images/20211012/20141979O6YlMvMkgZ.png
全部都变FFFF FFFF,这样代表你擦除成功了~

看到上面读出内部的hex,不知道有没有人想到这可以复制别人的记忆体区块来烧入同样1颗MCU。
是可以这样做复制,直接利用这个软件来烧入.hex档,其实在Keil5编译程序的时候就有储存.hex档了!!
档案路径在下图,可做更改
https://ithelp.ithome.com.tw/upload/images/20211012/20141979CSjICfGahX.png
魔术棒->视窗里的红框按下可设定编译後储存路径
就可以利用那个.hex档来用这软件烧入,我验证过了绝对可以!
STM有针对这个复制内部Flash来实现别人写的程序做一项功能,锁存内部Flash,这部分离我太远了等之後有空再来慢慢研究吧~

今天就这样啦,以上全部个人经验,有误欢迎指出来。


<<:  爬虫怎麽爬 从零开始的爬虫自学 DAY28 python网路爬虫开爬9-图片爬虫介绍

>>:  Day27:用 EnvironmentObject 传递数据

React状态计算解密

点击进入React源码调试仓库。 概述 壹旦用户的交互产生了更新,那麽就会产生壹个update对象去...

冒险村07 - Update gems & js

07 - Update gems & js 专案如果要长久,套件升级是一定是不可或缺的事,从...

CDCP-001 Dump-出现在 GAQM CDCP-001 认证考试中

GAQM:日期中心 - CDCP-001 考试是您职业生涯中非常显着的提升。但也许您有没有想过为什麽...

从零开始用github架设静态网站入门(4) - 其他小功能制作

用之前的篇幅,已经大概跟大家介绍完静态网站的基本技巧,理论上要做出一个网站是没有什麽问题了,BUT我...