没有合适的资源?快使用搜索试试~ 我知道了~
首页stm32关于flash编程的中英文手册
资源详情
资源评论
资源推荐
依据2008年9月英文第4版翻译。本译文仅供参考,如有翻译错误,请以英文原稿为准
PM0042
编程手册
STM32F10xxx闪存编程
简介
本编程手册介绍了如何烧写STM32F101xx、STM32F102xx和STM32F103xx微控制器的闪存存
储器。为方便起见,在本文中出特别说明外,统称它们为STM32F10xxx。
STM32F10xxx内嵌的闪存存储器可以用于在线编程(ICP)或在程序中编程(IAP)烧写。
在线编程(In-Circuit Programming – ICP)方式用于更新闪存存储器的全部内容,它通过JTAG、
SWD协议或系统加载程序(Bootloader)下载用户应用程序到微控制器中。ICP是一种快速有效的
编程方法,消除了封装和管座的困扰。
与ICP方式对应,在程序中编程(In-Application Programming – IAP)可以使用微控制器支持的任
一种通信接口(如I/O端口、USB、CAN、UART、I
2
C、SPI等)下载程序或数据到存储器中。IAP
允许用户在程序运行时重新烧写闪存存储器中的内容。然而,IAP要求至少有一部分程序已经
使用ICP烧到闪存存储器中。
闪存接口是在AHB协议上实现了对指令和数据的访问,它通过对存储器的预取缓存,加快了存
储器的访问;闪存接口还实现了在所有工作电压下对闪存编程和擦除所需的逻辑电路,这里还
包括访问和写入保护以及选择字节的控制。
STM32F10xxx闪存编程
页1/22
依据2008年9月英文第4版翻译。本译文仅供参考,如有翻译错误,请以英文原稿为准
目录
1 概述...................................................................................................................................................4
1.1 特性 ........................................................................................................................................4
1.2 闪存模块组织..........................................................................................................................4
2 读/编写STM32F10xxx内置闪存 .........................................................................................................7
2.1 简介 ........................................................................................................................................7
2.2 读操作.....................................................................................................................................7
2.2.1 取指令..........................................................................................................................7
2.2.2 D-Code接口 .................................................................................................................7
2.2.3 闪存访问控制器............................................................................................................7
2.3 闪存编程和擦除控制器(FPEC)................................................................................................8
2.3.1 键值..............................................................................................................................8
2.3.2 解除闪存锁...................................................................................................................8
2.3.3 主闪存编程...................................................................................................................8
2.3.4 闪存擦除 ......................................................................................................................9
2.3.5 选择字节编程 .............................................................................................................10
2.4 保护 ......................................................................................................................................12
2.4.1 写保护........................................................................................................................12
2.4.2 读保护........................................................................................................................12
2.4.3 选择字节块写保护 ......................................................................................................13
2.5 选择字节说明........................................................................................................................13
3 寄存器说明 ......................................................................................................................................15
3.1 闪存访问控制寄存器(FLASH_ACR)......................................................................................15
3.2 FPEC键寄存器(FLASH_KEYR)............................................................................................16
3.3 闪存OPTKEY寄存器(FLASH_OPTKEYR) ............................................................................16
3.4 闪存状态寄存器(FLASH_SR)................................................................................................17
3.5 闪存控制寄存器(FLASH_CR) ...............................................................................................18
3.6 闪存地址寄存器(FLASH_AR)................................................................................................19
3.7 选择字节寄存器(FLASH_OBR).............................................................................................19
3.8 写保护寄存器(FLASH_WRPR) .............................................................................................20
3.9 闪存寄存器映像 ....................................................................................................................21
STM32F10xxx闪存编程
页2/22
依据2008年9月英文第4版翻译。本译文仅供参考,如有翻译错误,请以英文原稿为准
术语
下面列出了本文档中所用到的术语和缩写的简要说明:
z 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx,STM32F102xx
和STM32F103xx微控制器。
z 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx,STM32F102xx
和STM32F103xx微控制器。
z 大容量产品是指闪存存储器容量在256K 至 512K 字节之间的STM32F101xx 和
STM32F103xx微控制器。
z Cortex-M3内核集成了两个调试端口:
− JTAG调试接口(JTAG-DP)提供基于JTAG(Joint Test Action Group 联合测试行动
小组)协议的5线标准接口。
− SWD调试接口(SWD-DP)提供基于SWD(Serial Wire Debug 串行线调试)协议的2
线标准接口。
有关JTAG和SWD协议,请参考Cortex M3 Technical Reference Manual。
z 字(Word):32位长的数据或指令
z 半字(Half Word):16位长的数据或指令
z 字节(Byte):8位长的数据或指令
z FPEC(FLASH Program/Erase controller 闪存编程/擦除控制器):内嵌的FPEC负责对内置
闪存的写操作。
z IAP(In-Application Programming):IAP是在用户程序运行时对闪存微控制器中存储器重新
编程。
z ICP(In-Circuit Programming):ICP是在芯片安装到用户应用板上后,通过JTAG协议对闪
存微控制器中存储器编程。
z I-Code:这是连接Cortex-M3核心的指令总线与闪存程序存储器接口的总线,指令预取是
在这个总线上实现的。
z D-Code:这是连接Cortex-M3核心的D-Code总线(常数和调试访问)与闪存数据存储器接口
的总线。
z 选择字节:存放在闪存中的产品配置位。
z OBL:选择字节加载单元。
z AHB:先进高性能总线。
STM32F10xxx闪存编程
页3/22
依据2008年9月英文第4版翻译。本译文仅供参考,如有翻译错误,请以英文原稿为准
1 概述
1.1 特性
z 多达512K字节闪存
z 存储器配置:
− 主存储块:
小容量产品:4K x 64位
中容量产品:16K x 64位
大容量产品:64K x 64位
− 信息块:258 x 64位
闪存接口的特性:
z 带预取缓冲器的读接口(2x64位)
z 选择字节加载
z 闪存编程/擦除操作
z 读出/写入保护
z 低功耗模式
1.2 闪存模块组织
按照不同容量,存储器组织成32个1K字节/页(小容量)、128个1K字节/页(中容量)、256个2K字
节/页(大容量)的主存储器块和一个信息块,见表1、:
表1 闪存模块组织(小容量产品)
块 名称 地址范围 长度(字节)
页0
0x0800 0000 – 0x0800 03FF 1K
页1
0x0800 0400 – 0x0800 07FF 1K
页2
0x0800 0800 – 0x0800 0BFF 1K
页3
0x0800 0C00 – 0x0800 0FFF 1K
页4
0x0800 1000 – 0x0800 13FF 1K
.
.
.
.
.
.
.
.
.
主存储器
页31
0x0800 7C00 – 0x0800 FFFF 1K
启动程序代码
0x1FFF F000 – 0x1FFF F7FF 2K
信息块
用户选择字节
0x1FFF F800 – 0x1FFF F80F 16
FLASH_ACR 0x4002 2000 – 0x4002 2003 4
FLASH_KEYR 0x4002 2004 – 0x4002 2007 4
FLASH_OPTKEYR 0x4002 2008 – 0x4002 200B 4
FLASH_SR 0x4002 200C – 0x4002 200F 4
FLASH_CR 0x4002 2010 – 0x4002 2013 4
FLASH_AR 0x4002 2014 – 0x4002 2017 4
保留
0x4002 2018 – 0x4002 201B 4
FLASH_OBR 0x4002 201C – 0x4002 201F 4
闪存存储器
接口寄存器
FLASH_WRPR 0x4002 2020 – 0x4002 2023 4
STM32F10xxx闪存编程
页4/22
依据2008年9月英文第4版翻译。本译文仅供参考,如有翻译错误,请以英文原稿为准
表2 闪存模块组织(中容量产品)
块 名称 地址范围 长度(字节)
页0
0x0800 0000 – 0x0800 03FF 1K
页1
0x0800 0400 – 0x0800 07FF 1K
页2
0x0800 0800 – 0x0800 0BFF 1K
页3
0x0800 0C00 – 0x0800 0FFF 1K
页4
0x0800 1000 – 0x0800 13FF 1K
.
.
.
.
.
.
.
.
.
主存储器
页127
0x0801 FC00 – 0x0801 FFFF 1K
启动程序代码
0x1FFF F000 – 0x1FFF F7FF 2K
信息块
用户选择字节
0x1FFF F800 – 0x1FFF F80F 16
FLASH_ACR 0x4002 2000 – 0x4002 2003 4
FLASH_KEYR 0x4002 2004 – 0x4002 2007 4
FLASH_OPTKEYR 0x4002 2008 – 0x4002 200B 4
FLASH_SR 0x4002 200C – 0x4002 200F 4
FLASH_CR 0x4002 2010 – 0x4002 2013 4
FLASH_AR 0x4002 2014 – 0x4002 2017 4
保留
0x4002 2018 – 0x4002 201B 4
FLASH_OBR 0x4002 201C – 0x4002 201F 4
闪存存储器
接口寄存器
FLASH_WRPR 0x4002 2020 – 0x4002 2023 4
表3 闪存模块组织(大容量产品)
块 名称 地址范围 长度(字节)
页0
0x0800 0000 – 0x0800 07FF 2K
页1
0x0800 0800 – 0x0800 0FFF 2K
页2
0x0800 1000 – 0x0801 17FF 2K
页3
0x0800 1800 – 0x0801 FFFF 2K
.
.
.
.
.
.
.
.
.
主存储器
页255
0x0807 F800 – 0x0807 FFFF 2K
启动程序代码
0x1FFF F000 – 0x1FFF F7FF 2K
信息块
用户选择字节
0x1FFF F800 – 0x1FFF F80F 16
FLASH_ACR 0x4002 2000 – 0x4002 2003 4
FLASH_KEYR 0x4002 2004 – 0x4002 2007 4
FLASH_OPTKEYR 0x4002 2008 – 0x4002 200B 4
FLASH_SR 0x4002 200C – 0x4002 200F 4
FLASH_CR 0x4002 2010 – 0x4002 2013 4
FLASH_AR 0x4002 2014 – 0x4002 2017 4
保留
0x4002 2018 – 0x4002 201B 4
FLASH_OBR 0x4002 201C – 0x4002 201F 4
闪存存储器
接口寄存器
FLASH_WRPR 0x4002 2020 – 0x4002 2023 4
闪存存储器被组织成32位宽的存储器单元,可以存放代码和数据常数。每一个STM32F10xxx微
控制器的闪存模块都有一个特定的启始地址,有关的启始地址请参考STM32F10xxx
参考手册
。
STM32F10xxx闪存编程
页5/22
剩余21页未读,继续阅读
shop_ping
- 粉丝: 280
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论17