- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Note2_STM32存储器知识相关应用(IAP和BitBanding)
2011-2-18
Kongst
HYPERLINK mailto:kongst@163.com kongst@163.com
Notes Introduction
本连载笔记,记录了在STM32学习中对存储器的理解;描述了STM32存储器的结构划分,以及STM32存储器相关知识,能够获得对存储器的整体性认识;并能够顺利的付诸实践,达到真正的对存储器的认识+应用。
本连载共有三篇笔记,分别是:
《关于STM32的存储器》
能够了解STM32的存储器结构,及其结构设计由来;
能够明确自己所写的程序是放在什么地方,并且可以合法的随意放置;
能够知道STM32系统的启动相关;
《STM32存储器知识的相关应用(IAP和Bit Banding)》
能够理解Bit-banding;
一个简单IAP功能的整体设计;
能够IAP(In Application Programmable);
《STM32实现IAP(上位机和IAP程序设计)》
上位机和IAP程序的通讯协议;
能够通过自制上位机(C#)进行IAP;
STM32存储器知识的相关应用(IAP、Bit Banding)
If an error, please contact author, to be corrected.
For other uses, indicate the source, to express my recognition of the results.
Thank you.
在我的另一篇笔记《stm32的存储器》中讲述了STM32的存储器结构,及个人理解。
本篇文章将重点描述在对存储器有了比较深入了解之后的一些相关的操作案例;重点在于STM32启动设置和IAP使用,以及bit banding的理解,加上一个简单的IAP程序设计。
1 STM32的启动
根据参考手册RM0008中的图表:
得知STM32的启动有三种模式,三种模式的选择在于芯片上的两个Boot引脚,如RM0008种描述:
在系统复位之后的四个上升沿后索存BOOT引脚,从而决定启动方式;用户对BOOT引脚的设置决定了系统复位之后的启动模式。
三个不同的启动区域有着不同的起始地址,STM32这样规定:
注意的是:只有当从SRAM启动,只有一个单一的地址0x2000 0000可以访问;而其他两种启动方式除了从各自的地址访问,还可以从0x0000 0000地址访问。
不同的启动方式,决定了程序在设计过程中的方法,因此必须确认好程序存放空间和系统启动模式。
所以,通过设置BOOT0和BOOT1引脚,可以选择相应的启动模式。
2 STM32的ICP
In Circuit Programming,在电路编程。
ICP能够通过JTAG、SWD或Boot Loader去下载用户程序,以达到更新整个Flash的目的;
ICP提供一个快速的、有效的设计迭代,并消除不必要的包装处理或设备套接。
这里对ICP不做过多的论述。
3 STM32的ISP
In System Programming,在系统编程。
STM32在出厂时,已经固化了一段程序在System memory(medium-density devices的地址为:0x1FFF F000,大小为2KB)存储器中。
这段程序就是一个固定好的,并且没法修改的Boot Loader,如编程手册PM0042种描述的:
这个固定好的,出厂就有的Boot Loader可以通过USART1进行用户程序的烧写、更新;
当然,烧写软件(烧写流程)的设计需要按照其固定好的Boot Loader的烧写协议来进行。
因此在特殊的要求烧写方式的场合,使用ISP是不太方便的,可以采用更为方便的IAP编程方法,以下会详细介绍。
4 STM32的Bit Banding
Bit Banding功能是相对于以往能够进行bit操作的单片机而言的。
通过Bit Banding功能可以像51单片机的bit操作一样。MCS51可以简单的将P1口的第2位独立操作:?P1.2=0;P1.2=1?;?就是这样把P1口的第三个脚(BIT2)置0或置1了。
而现在STM32的位段、位带别名区就为了实现这样的功能。只不过他是为需要操作的地址(1字节)的每一个位(共8位)起个别名,分别对应别名区的一个字(word)。也就是别名区的大小是Bit Band区的32倍。这样,对32MB的别名区地址的操作,就是对相应Bit Band区的位的操作。
注意:别名字的位[31:1]在 bit-band 位上不起作用。写入 0x01 与写入 0xFF 的效果相同。写入0x00 与写入0x0E 的效果相同。
如图是跟Bit Banding 有关系的存储器结构:
STM32有两个Bit Band区域,分别是:
0x2000 0000
文档评论(0)