没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32F10xxx闪存编程手册.pdf
本编程手册介绍了如何烧写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、I2C、SPI等)下载程序或数据到存储器中。IAP允许用户在程序运行时重新烧写闪存存储器中的内容。然而,IAP要求至少有一部分程序已经使用ICP烧到闪存存储器中。 闪存接口是在AHB协议上实现了对指令和数据的访问,它通过对存储器的预取缓存,加快了存储器的访问;闪存接口还实现了在所有工作电压下对闪存编程和擦除所需的逻辑电路,这里还包括访问和写入保护以及选项字节的控制。
资源详情
资源评论
资源推荐
本译文仅供参考,如有翻译错误,请以英文原稿为准
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协议上实现了对指令和数据的访问,它通过对存储器的预取缓存,加快了存
储器的访问;闪存接口还实现了在所有工作电压下对闪存编程和擦除所需的逻辑电路,这里还
包括访问和写入保护以及选项字节的控制。
译注:本文的英文原文下载地址为:http://www.st.com/stonline/products/literature/pm/13259.pdf
STM32F10xxx闪存编程(参照英文第6版翻译)
页1/21
本译文仅供参考,如有翻译错误,请以英文原稿为准
目录
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 主闪存编程...................................................................................................................9
2.3.4 闪存擦除 ......................................................................................................................9
2.3.5 选项字节编程 .............................................................................................................10
2.4 保护 ......................................................................................................................................11
2.4.1 读保护........................................................................................................................11
2.4.2 写保护........................................................................................................................12
2.4.3 选项字节块写保护 ......................................................................................................12
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)................................................................................................16
3.5 闪存控制寄存器(FLASH_CR) ...............................................................................................17
3.6 闪存地址寄存器(FLASH_AR)................................................................................................18
3.7 选项字节寄存器(FLASH_OBR).............................................................................................18
3.8 写保护寄存器(FLASH_WRPR) .............................................................................................19
3.9 闪存寄存器映像 ....................................................................................................................19
4 版本修订记录...................................................................................................................................20
STM32F10xxx闪存编程(参照英文第6版翻译)
页2/21
本译文仅供参考,如有翻译错误,请以英文原稿为准
术语
下面列出了本文档中所用到的术语和缩写的简要说明:
z 小容量产品是指闪存存储器容量在16K~32K字节之间的STM32F101xx,STM32F102xx和
STM32F103xx微控制器产品。
z 中容量产品是指闪存存储器容量在64K~128K字节之间的STM32F101xx,STM32F102xx
和STM32F103xx微控制器产品。
z 大容量产品是指闪存存储器容量在256K~512K字节之间的STM32F101xx和STM32F103xx
微控制器产品。
z 互联型产品是STM32F105xx和STM32F107xx的微控制器产品。
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闪存编程(参照英文第6版翻译)
页3/21
本译文仅供参考,如有翻译错误,请以英文原稿为准
1 概述
1.1 特性
z 多达512K字节闪存
z 存储器配置:
− 主存储块:
小容量产品:4K × 64位
中容量产品:16K × 64位
大容量产品:64K × 64位
互联型产品:32K × 64位
− 信息块:
互联型产品:2306 × 64位
其它产品:258 × 64位
闪存接口的特性:
z 带预取缓冲器的读接口(2×64位)
z 选项字节加载
z 闪存编程/擦除操作
z 读出/写入保护
z 低功耗模式
1.2 闪存模块组织
按照不同容量,存储器组织成32个1K字节/页(小容量)、128个1K字节/页(中容量)、128个2K字
节/页(互联型)、256个2K字节/页(大容量)的主存储器块和一个信息块,见表1至0:
表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 7FFF 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闪存编程(参照英文第6版翻译)
页4/21
本译文仅供参考,如有翻译错误,请以英文原稿为准
表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 – 0x0800 17FF 2K
页3 0x0800 1800 – 0x0800 1FFF 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
STM32F10xxx闪存编程(参照英文第6版翻译)
页5/21
剩余20页未读,继续阅读
dongsongz
- 粉丝: 36
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5