STM32单片机中FLASH空间的分配之bootloader

STM32单片机在系统升级时需要添加bootloader程序,通常存放在Flash的低地址区域,预留一定空间。bootloader大小如40K,可设置64KB预留,确保应用程序起始地址在BootLoader之后且符合0x200的整数倍要求。在Keil环境下,通过设置可以划分64KB的bootloader区域和960KB的应用程序区域。
摘要由CSDN通过智能技术生成

根据程序运行流程:

正常的程序启动流程:从FLASH启动时,首先从闪存的物理地址入口0x08000000进入,然后是复位中断跳转到复位中断服务程序;复位中断服务程序执行完成后,再跳转到main函数入口,main函数一般为死循环;当外部中断发生时,跳转到中断向量查找表,通过查找表找到对应的中断服务程序地址,跳转到对应的中断服务程序;中断服务程序结束后再次跳转到main函数,这样不断的循环,这是我们的应用程序段;


当需要进行系统升级的时候,则需要在这个过程中添加一个bootloader程序段;

那么bootloader程序段存在什么位置呢?

一般是低地址区域存放bootloader程序段,紧接着的高地址区域存放应用程序段;

那么bootloader大小多少合适呢?

首先计算bootloader程序的大小,然后根据该大小设置区域;

设置为多少呢?如何设置bootloader程序的区域?

比如当bootloader程序的大小为40K,我们设置的区域为64KB,这样是作了一定预留的,预留空间根据个人喜好设定;

因为理论上要求应用程序的起始地址必须在BootLoader之后,且偏移必须是0x200的整数(详情参见http://www.openedv.com/posts/list/392.htm);

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值