STM32F103处理器内部存储器

STM32F103处理器内部存储器结构及映射

   STM32F103存储器映像为预定义形式,严格规定了哪个位置使用哪条总线。
   STM32F103的程序存储器、数据存储器、寄存器和IO端口被组织到一个4GB的线性地址空间。数据字节以小端模式存放在存储器中。地址空间分8块,每块512MB。
注: 小端模式:与大端模式相对应,将数据的低字节保存在内存的低地址中,高字节保存在高地址中。
其中:
    代码区:(0x00000000 ~ 0x1FFFFFFF,512MB)
    主要包括启动空间(0x00000000 ~ 0x07FFFFFF,128MB)
              Flash(0x08000000 ~ 0x08xxxxxx,16KB~1MB)
              系统存储区(0x1FFFF000 ~ 0x1FFFF800,2KB)
   Flash:用于存放用户编写的程序
   系统存储区:存放串口下载程序,当系统上电后,根据用户设定的启动配置,将Flash或系统存储区映射到启动空间,执行用户程序或串口下载程序。
   内部SRAM(0x20000000 ~ 0x200xxxxx,6~96KB):保护程序运行时产生的临时数据的随机存储器。
   外设区:外设寄存器地址空间,用于调试组件等私有外设。例如:FPB,DWT,ITM,ETM,TPIU,ROM表等。

启动配置

   STM32F103系列单片机因为固定的存储器映像,代码区时钟从地址最初开始(0x0000000),通过ICode和DCode总线访问。启动之后,CPU从最初地址开始获取堆栈顶的地址,并从启动存储器0x00000004指示的地址开始执行。而SARM始终从0x20000000开始,直接通过系统总线访问。
   由于单片机CPU始终从ICode总线获取复位向量,因此启动只能从代码区开始,常用的启动方法是使用Flash启动(程序代码常存放于Flash上面)。
   但是STM32F103实现了特殊的机制,系统可以从三个地方进行启动:Flash、系统存储区、内置SRAM
   当系统复位后,SYSCLK发出的第四个上升沿,BOOT0、BOOT1的状态进行锁存。

启动模式选择引脚启动模式说明
BOOT1BOOT0××
X0主闪存存储器Flash被选为启动区域
01系统存储器系统存储区被选为启动区域
11内置SRAM内置SRAM被选为启动区域
启动方式

   Flash启动:Flash中存放着用户代码,将Flash映射到启动空间(0x00000000),启动后单片机将执行用户程序,但仍然能在用户程序原有的地址(0x08000000)进行访问。
   系统存储器启动:系统存储器在芯片出厂的时候存放着串口下载程序,这种启动方式可以将系统存储器映射到启动空间(0x00000000),启动后单片机将会执行串口下载程序即通过串口将程序下载到Flash中。程序下载完成后在配置为从Flash启动。
   内置SRAM启动内置SRAM一般存放程序运行时产生的临时数据,没有程序,只能在0x20000000开始的地址区访问SRAM。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值