STM32F1x系列内存结构

发布者:梦幻微笑最新更新时间:2018-10-10 来源: eefocus关键字:STM32F1x系列  内存结构 手机看文章 扫描二维码
随时随地手机看文章

STM32采用的Crotex_M3内核存储使用哈佛结构,程序存储器,数据存储器,寄存器,外设都被分配在4G_bytes(32bits总线宽度)的线性空间上,但并不是所有的空间都是有效的。
存储器采用小端模式。

小端模式和大端模式
定义:
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端

32位的数据0x12345678从地址0x20000000开始存储,小端和大端的存储区别如下图
小端模式
STM32F1x系列内存结构
大端模式STM32F1x系列内存结构


SRAM
SRAM的起始地址从0x2000 0000地址开始,可以进行字(32-bits),半字(16-bits),字节(8-bits)访问

bit-band
STM32的SRAM和外设寄存器并不能进行bit访问,但STM32对所有的SRAM和外设寄存器映射了两个被称为bit-band的区域,对这个区域的字写对应到想用SRAM的bit写。
区域映射算法
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)
bit_band_base为bit-band的起始地址,bit-band有两个区域0x2200 0000和0x4200 0000分别对应SRAM和外设
STM32F1x系列内存结构
byte_offset SRAM对应起始地0x20000000的偏移地址,
bit_number 需要访问的bit号
例如需要访问0x2000 0300内存bit-2,公式应该是
0x22006008 = 0x22000000 + (0x300*32) + (2*4).

Flash
flash的读写接口(FLITF)包含读预期缓存,选项字节,Flash写/擦除,读/写保护
读:读flash需要编写等待数,不同的SYSCLK等待数不同
STM32F1x系列内存结构
指令预期,这个功能在系统复位后自动开启  
半周期,用于节约功耗

写和擦除
flash只能进行半字的写,要进行擦除和写操作时,内部RC振荡器(HSI)必须打开
flash的擦除操作能进行页和全flash擦除
STM32的页被分为1kbyte或者2Kbyte

Boot
STM32提供3种不同boot模式
STM32F1x系列内存结构
Main Flash memory: 程序从0x80000000开始运行
System memory;启动ISP模式
Embedded SRAM:从此从SRAM运行

关键字:STM32F1x系列  内存结构 引用地址:STM32F1x系列内存结构

上一篇:stm32之nRF24L01无线模块(1):SPI2到SPI1的移植
下一篇:如何从keil编译结果看程序占用STM32的flash和SRAM

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved