STM32片上Flash内存映射、页面大小、寄存器映射

转自:http://blog.chinaunix.net/uid-20617446-id-3847242.html

一、怎么看Flash大小

 

1.1 通过型号

    型号会印在MCU表面,可以通过观察获得,我的是STM32F103RBT6(以下分析基于这个型号),对照下图的STM32产品命名,可知STM32F103RBT6的Flash是128KB。

 

()

图1 Ordering information scheme

 

1.2 通过数据手册(内存映射)

    也可以通过数据手册得到Flash大小,首先根据型号从官网下得对应的数据手册Datasheet(点这里,输入MCU型号进行检索。STM32F103RB相关的手册都在这:http://www.st.com/internet/mcu/product/164487.jsp),打开找到Memory map这张图,如图2红框所示(图2红框放大即为图3),Flash在内存的映射地址0x0800 0000 ~ 0x0801 FFFF,即大小为128KB。通过该方法也可以了解到片上Flash的内存映射。

图2 Memory map

 

图3 Memory map中的SRAM和Flash

 

二、块大小

    对于系统而言,Flash分为片上Flash(Embedded Flash)和外置Flash。通常说,Flash先分块再分页,擦除是按块进行,这样的说法应该只是对外置Flash而言,对于片上Flash即可以按页擦除也可以整块擦除,英文原文如下[2]:

 

  1. The Flash memory erase operation can be performed at page level or on the whole Flash area (mass-erase). The mass-erase does not affect the information blocks.

 

三、页面大小

    按1.2的方法下得该MCU的参考手册,STM32F103RBT6对应的参考手册为RM0008 Reference manual,定位到Embedded Flash memory章节(也可以通过搜索0x0800 0000来定位)。STM32有4种Flash module organization,分别是:low-density devices(32KB,1KB/page)、medium-density devices(128KB,1KB/page)、high-density devices(512KB,2KB/page)、connectivity line devices(256KB,2KB/page)、XL-density(devices(1M,2KB/page)。从上面分析可知,STM32F103RBT6的Flash是128KB,可见是medium-density devices,如下图所示:

图4 Flash module organization (medium-density devices)

 

四、Flash相关寄存器

Flash寄存器在内存的映射如下[1]:

图5 Memory map中的Flash Interface

Flash各寄存器具体地址如下[2]:

图6 Flash memory interface registers of medium-density devices

具体到各寄存器功能,位含义,得参考[3],Flash寄存器映射如下:

图7 Flash register map

五、Information block

Flash中Information block在内存映射如下[1]:

图8 Memory map中的System memory

具体的Flash的Information block地址如下:

图9 Information block of medium-density devices

 

    System memory包含一段引导程序(当系统从片上Flash启动会用到),Flash出厂后就不能修改,不晓得我理解得对不对,贴出原文如下[3]:

 

  1. System memory is used to boot the device in System memory boot mode. The area is reserved for use by STMicroelectronics and contains the boot loader which is used to reprogram the Flash memory using the USART1 serial interface. It is programmed by ST when the device is manufactured, and protected against spurious write/erase operations. For further details please refer to AN2606.

 

 

    The option bytes are managed by an embedded Flash Program/Erase Controller (FPEC),详情见[3]。

 

 

 

参考资料:

[1] DS5319: Medium-density performance line ARM-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 communication interfaces(数据手册) DS5319.pdf   

[2] RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs(参考手册)  注:文件尺寸太大,上传不了:-(

[3] PM0075:STM32F10xxx Flash memory microcontrollers(Flash编程手册) PM0075.pdf   

转载于:https://www.cnblogs.com/shirishiqi/p/5436031.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何设计实现一个地址反解析服务?

http://www.cnblogs.com/LBSer/p/4507829.html 一、什么是地址反解析 我们都知道手机定位服务,其本质是汇总各种信号得出一个经纬度坐标(x,y)(具体定位原理可以参考:LBS定位技术、基于朴素贝叶斯的定位算法&#xff09…

html5 hr代码缩减比例,HTML HR size用法及代码示例

DOM HR size属性用于设置或返回元素的size属性的vlue。用法:它返回HR大小属性。hrobject.size用于设置HR大小属性。hrobject.size"value"属性值:value:它包含指定HR元素高度的像素值。返回值:它返回一个字符串值,该值代表HR元素的高…

MySQL Binlog Mixed模式记录成Row格式

背景: 一个简单的主从结构,主的binlog format是Mixed模式,在执行一条简单的导入语句时,通过mysqlbinlog导出发现记录的Binlog全部变成了Row的格式(明明设置的是Mixed),现在就说说在什么情况下Bi…

html后台数据分类管理,细分数据.html

细分数据$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

Get请求

写在前面的话 XMLHttpRequest对象的open方法的第一个参数为request-type,取值可以为get或post.本篇介绍get请求. get请求的目的,主要是为了获取数据.虽然get请求可以传递数据,但传递数据的目的是为了告诉服务器,给我们什么内容. 使用get请求时,参数都是随url进行传递的. 使用ge…

javaweb学习总结——Filter高级开发

在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 一、Decorator设计模式 1.1、Decorator设计模…

Android(java)学习笔记10:同步中的死锁问题以及线程通信问题

1. 同步弊端: (1)效率低 (2)如果出现了同步嵌套,就容易产生死锁问题 死锁问题及其代码 : (1)是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种…

在html中三个图片切换,轻松搞定网页中的图片切换

生活中经常看到,像新浪等很多门户网站的首页都有滚动图片的展示,如下图所示:某网站首页滚动切换图片这样不但可以减少文字的单一、乏味,而且可以直观内容,更好的吸引用户。那在我们做软件系统时,是否也可以…

requirejs(shim)处理加载非AMD规范的js库

使用requirejs加载模块,模块的定义得遵守AMD规范,也即定义模块的时候使用如下函数定义模块: 1 define(function(){ 2 var private function(){ 3 console.log(私有方法...); 4 }; 5 return { 6 public:funct…

jQuery Validate 验证,校验规则写在控件中的具体例子

将校验规则写到控件中 <script src"../js/jquery.js" type"text/javascript"></script> <script src"../js/jquery.validate.js" type"text/javascript"></script> <script src"./js/jquery.metadata…

通过键盘上下键 JS事件,控制候选词的选择项

效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式&#xff0c;只做标记&#xff0c;无实质样式&#xff0c;因为和其他样式不兼容&#xff0c;只能添加CSS$(document).keydown(function (event) {var upDownClickNum $("#SearchTips .searchBackgroud ").l…

Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)

Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍 要求&#xff1a; 今天要测试上千条数据&#xff0c;且每条数据要求执行多次&#xff0c;&#xff08;模拟多用户多次抽奖&#xff09; 1.用户id有175个&#xff0c;且没有任何排序规则&#xff1b; 2.要求175个用户都…

计算机怎么更改用户头像像,Win10系统电脑账户头像怎么改成系统默认状态?

为了保护电脑的安全&#xff0c;我们可以设置登录账号密码&#xff0c;而账号的头像也是可以自行更换的。但是&#xff0c;某些时候&#xff0c;因为一些原因&#xff0c;我们需要将Win10系统账户的头像去掉&#xff0c;即改成默认状态。但是很多人都不清楚该怎么操作&#xff…

SPFA模板

今天去听2015ZJOI浙江省队第二试的集训&#xff0c;早上就是听得云里雾里的ORZ&#xff0c;下午某两集训队大神过来将题目&#xff0c;第一个进了IOI的我只听懂了10%ORZ&#xff0c;第二个人机交互很好玩&#xff0c;找个时间单独写下。 顺便附带膜拜各位聚聚&#xff0c;保我明…

JavaScript 中的闭包和作用域链(读书笔记)

要想理解闭包&#xff0c;应当先理解JavaScript的作用域和作用域链。 JavaScript有一个特性被称之为“声明提前&#xff08;hoisting&#xff09;”&#xff0c;即JavaScript函数里声明的所有变量&#xff08;但不涉及赋值&#xff09;都被“提前”至函数体的顶部&#xff0c;“…

韩师师范学院计算机科学与技术在哪个学区,2017年韩山师范学院本科插班生考试《数据结构》A卷...

韩山师范学院2017年本科插班生考试试卷计算机科学与技术 专业 数据结构 试卷(A 卷)一、单项选择题(每题2分&#xff0c;共30分)1. 对线性表&#xff0c;在下列哪种情况下应当采用链表表示&#xff1f;( ) A. 经常需要随机地存取元素 B. 经常需要进行插入和删除操作 C. 表中元素…

JAVA取随机数,石头剪刀布实例

一、取随机数&#xff1a; import java.util.Random; //导入随机数 public class Test{public static void main(String[] args){Random xx new Random(); //声明随机数int number xx.nextInt(10); //赋值随机数给numberSystem.out.println("随机数…

第一阶段

初步实现了相机的调用&#xff0c;做了简单界面&#xff0c;并没有实现核心功能 Button button (Button) findViewById(R.id.sao);button.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v) {Intent intent new Intent(MediaStore.ACTION_IMAGE…

JavaScript 详说事件机制之冒泡、捕获、传播、委托

DOM事件流&#xff08;event flow &#xff09;存在三个阶段&#xff1a;事件捕获阶段、处于目标阶段、事件冒泡阶段。 事件捕获&#xff08;event capturing&#xff09;&#xff1a;通俗的理解就是&#xff0c;当鼠标点击或者触发dom事件时&#xff0c;浏览器会从根节点开始…

很棒的HTML5效果实例

2019独角兽企业重金招聘Python工程师标准>>> http://mrdoob.com/141/Internet_Explorer_with_WebGL 转载于:https://my.oschina.net/u/3647620/blog/1552495