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元素的高…

【转】C++标准转换运算符static_cast

static_cast<new_type> (expression) 虽然const_cast是用来去除变量的const限定&#xff0c;但是static_cast却不是用来去除变量的static引用。其实这是很容易理解的&#xff0c;static决定的是一个变量的作用域和生命周期&#xff0c;比如&#xff1a;在一个文件中将变量…

MySQL Binlog Mixed模式记录成Row格式

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

update语句中使用子查询

55. 更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job 1). 搭建骨架 update employees set salary (), job_id () where employee_id 108; 2). 所在部门中的最高工资 select max(salary) from employees where department_id ( s…

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

&#xfeff;细分数据$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; };…

SpringBoot的配置文件加载顺序和使用方式

1、bootstrap.properties bootstrap.properties 配置文件是由“根”上下文优先加载&#xff0c;程序启动之初就感知 如&#xff1a;Spring Cloud Config指定远程配置中心地址&#xff0c;就要在这个文件中指定。这样才能在启动之初发现远程配置中心&#xff0c;并从远程获取配置…

Get请求

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

css3中的BFC,IFC,GFC和FFC(转载)

作者原文网址&#xff1a;http://www.cnblogs.com/dingyufenglian/p/4845477.html What‘s FC&#xff1f; 一定不是KFC&#xff0c;FC的全称是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并且有一套渲染…

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

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

html期末网页设计,求网页设计的期末作业一份 HTML的

1&#xff0e; 课程设计建议主题方向&#xff1a;电子商务类网站、门户类网站、专题类网站。整体要求&#xff1a;主题鲜明、健康&#xff1b;风格自然、内容充实、完整&#xff1b;布局合理&#xff0c;配色和谐。(5分)2&#xff0e; 网站至少包括15张页面(包括首页)&#x…

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

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

4源代码的下载和编译

1、Android移植主要就是Linux内核移植&#xff0c;而Linux内核移植主要是Linux驱动移植&#xff0c;为了开发和测试Linux驱动&#xff0c;要在Ubuntu下搭建两套开发环境&#xff1a;Android应用程序开发环境和Linux内核开发环境&#xff1b; 2、Android源代码包括&#xff1a;内…

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

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

python 进程编程速成

python具有thread多线程库&#xff0c;但多线程并不是真正的多线程&#xff0c;不能充分利用多核CPU资源。 在大多数情况下&#xff0c;python可以使用multiprocessing多进程库&#xff0c;可以轻松完成从单进程到并发执行的转换。 multiprocessing库支持子进程、通信和共享数据…

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

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

关于常用meta的总结

入行也半年了&#xff0c;无数次的想过写博客也无数次的想过第一篇会写什么&#xff0c;一直没有落实。今天心血来潮把博客开了&#xff0c;那就写点东西吧。第一篇就写一写看似简单但又经常不注意到的meta标签吧。&#xff08;博主经验尚浅&#xff0c;有许多理解不到位的地方…

计算机应用基础18春在线作业1答案,东师计算机应用基础-18春在线作业1.docx

东师计算机应用基础18春在线作业11、A 2、C 3、C 4、C 5、B一、单选题共25题&#xff0c;62.5分1、国际区位、全拼双音、五笔字型和自然码是不同种类的汉字A外码B内码C字型码D交换码正确答案是&#xff1a;A2、汉字字形码的使用是在____A输入时B内部传送时C输出时D两台计算机之…

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…

在oracle中使用Trigger

1、初始目标 在对表h1插入一条数据时&#xff0c;同时插入一条重复的数据&#xff08;只有主键不同&#xff09; 2、在PL/SQL里New一个Trigger或者手动敲入代码 先说明一下&#xff0c;表h1包括4列ID、C1、C2、C3 create or replace trigger Trigger_Testafter insert on h1for…