打印
[其他ST产品]

Flash地址空间的数据读取及DAC 实现音频输出

[复制链接]
957|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、STM32 的内部 FLASH 简介

一、STM32 的内部 FLASH 简介
在 STM32 芯片内部有一个 FLASH 存储器,它主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部 FLASH 中,由于 FLASH 存储器的内容在掉电后不会丢失,芯片重新上电复位后,内核可从内部 FLASH 中加载代码并运行。

根据用途,STM32 片内的 FLASH 分成两部分:主存储块和信息块。
主存储块用于存储程序,我们写的程序一般存储在这里;
信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用 ISP 方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入 BootLoader,然后锁死,用户是无法改变这个区域的。 选项字节存储芯片的配置信息及对主存储块的保护信息。


使用特权

评论回复
沙发
远芳侵古道|  楼主 | 2022-8-23 14:16 | 只看该作者

除了使用外部的工具(如下载器)读写内部 FLASH 外,STM32 芯片在运行的时候,也能对自身的内部 FLASH 进行读写,因此,若内部 FLASH 存储了应用程序后还有剩余的空间,我们可以把它像外部 SPI-FLASH 那样利用起来,存储一些程序运行时产生的需要掉电保存的数据。

使用特权

评论回复
板凳
远芳侵古道|  楼主 | 2022-8-23 14:17 | 只看该作者
由于访问内部 FLASH 的速度要比外部的 SPI-FLASH 快得多,所以在紧急状态下常常会使用内部 FLASH 存储关键记录;为了防止应用程序被抄袭,有的应用会禁止读写内部FLASH 中的内容,或者在第一次运行时计算加密信息并记录到某些区域,然后删除自身的部分加密代码,这些应用都涉及到内部 FLASH 的操作。

使用特权

评论回复
地板
远芳侵古道|  楼主 | 2022-8-23 14:18 | 只看该作者
二、工程验证

flash工程下载链接:https://pan.baidu.com/s/11Tn8TocHT8qithneDyKFIQ
提取码:pmvn
下载完成后打开文件夹,将路径stm32_Flash\Drivers\CMSIS\Device\ST\STM32F1xx\Include下的system_stm32f1xx_20190722_092746.h文件修改为system_stm32f1xx.h,否则后面编译会报错

使用特权

评论回复
5
远芳侵古道|  楼主 | 2022-8-23 14:19 | 只看该作者
修改好后,打开工程,可以将想要存入Flash中的内容修改为自定义内容
uint8_t FlashTest[] = "Hello!631907030405";

使用特权

评论回复
6
远芳侵古道|  楼主 | 2022-8-23 14:21 | 只看该作者
编译无报错

使用特权

评论回复
7
远芳侵古道|  楼主 | 2022-8-23 14:25 | 只看该作者

使用特权

评论回复
8
远芳侵古道|  楼主 | 2022-8-23 14:31 | 只看该作者
进行程序调试前,先完成配置:
注意:下载的工程代码调试用的是硬件 st-link debuger,不是软件仿真,因此用软件仿真做,可能情况略有不同(小编这里软件仿真就没有出现结果)

使用特权

评论回复
9
远芳侵古道|  楼主 | 2022-8-23 14:32 | 只看该作者
点击Options->Debug->右边使用硬件ST-Link Debugger

使用特权

评论回复
10
远芳侵古道|  楼主 | 2022-8-23 14:32 | 只看该作者

使用特权

评论回复
11
远芳侵古道|  楼主 | 2022-8-23 14:33 | 只看该作者
接着点击S T-Link Debugger右边的Settings

进入到Cortex-M Target Driver Setup的Debug页面,其中的Port选择为SW

使用特权

评论回复
12
远芳侵古道|  楼主 | 2022-8-23 16:38 | 只看该作者

使用特权

评论回复
13
远芳侵古道|  楼主 | 2022-8-23 16:39 | 只看该作者
依次点击Flash Download->勾选Reset and Run->Add->选择STM32F10x Med-density Flash->Add->确定即可

使用特权

评论回复
14
远芳侵古道|  楼主 | 2022-8-23 16:39 | 只看该作者

使用特权

评论回复
15
远芳侵古道|  楼主 | 2022-8-23 16:40 | 只看该作者
最后点击OK完成硬件配置

由于要连接硬件ST-Link,所以要下载一个STLink驱动,不然下载不成功
链接:https://pan.baidu.com/s/13k0PVQfg5qAHXBKJ2IZiYA
提取码:1234
连线如下图

使用特权

评论回复
16
远芳侵古道|  楼主 | 2022-8-23 16:40 | 只看该作者

使用特权

评论回复
17
远芳侵古道|  楼主 | 2022-8-23 16:41 | 只看该作者
点击左上角的LOAD按钮将程序下载到STM32中

使用特权

评论回复
18
远芳侵古道|  楼主 | 2022-8-23 16:42 | 只看该作者
现在点击dubug按钮,进入硬件仿真调试

使用特权

评论回复
19
远芳侵古道|  楼主 | 2022-8-23 16:42 | 只看该作者
点击View->memory windows->memory 1打开内存观察窗口,并在地址栏中输入:0x800C000,观察将要修改的flash区间区容:

使用特权

评论回复
20
远芳侵古道|  楼主 | 2022-8-23 16:43 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

832

帖子

0

粉丝