STM32单片机中FLASH空间的分配之bootloader
来源:互联网 发布:理财软件哪个口碑好 编辑:程序博客网 时间:2024/04/30 15:52
根据程序运行流程:
正常的程序启动流程:从FLASH启动时,首先从闪存的物理地址入口0x08000000进入,然后是复位中断跳转到复位中断服务程序;复位中断服务程序执行完成后,再跳转到main函数入口,main函数一般为死循环;当外部中断发生时,跳转到中断向量查找表,通过查找表找到对应的中断服务程序地址,跳转到对应的中断服务程序;中断服务程序结束后再次跳转到main函数,这样不断的循环,这是我们的应用程序段;
当需要进行系统升级的时候,则需要在这个过程中添加一个bootloader程序段;
那么bootloader程序段存在什么位置呢?
一般是低地址区域存放bootloader程序段,紧接着的高地址区域存放应用程序段;
那么bootloader大小多少合适呢?
首先计算bootloader程序的大小,然后根据该大小设置区域;
设置为多少呢?如何设置bootloader程序的区域?
比如当bootloader程序的大小为40K,我们设置的区域为64KB,这样是作了一定预留的,预留空间根据个人喜好设定;
因为理论上要求应用程序的起始地址必须在BootLoader之后,且偏移必须是0x200的整数(详情参见http://www.openedv.com/posts/list/392.htm);
本实例是基于Keil,设置bootloader和应用程序区域具体如下,
实际上该图中的参数本身设置是对应用程序FLASH空间的设置,但其中也暗含了对bootloader空间区域的设置;
bootloader的空间为0x08000000~0x08010000即0x10000,换算10进制为65536B,除以1024即为64KB,预留的bootloader空间为64KB;
应用程序的空间大小实际为0xF0000,换算成10进制983040B,除以1024即为960kB,那么预留给应用程序的空间为960KB;
- STM32单片机中FLASH空间的分配之bootloader
- stm32 中bootloader、startup_stm32f10x_md.s的作用
- STM32之bootloader
- STM32之bootloader
- STM32之bootloader .
- 【STM32】STM32之flash
- STM32单片机的FSMC机制FlaSh存储器扩展
- 重温电气之单片机STM32的固件库
- 我的单片机方法论2之STM32单片机特别篇
- stm32闪存空间分配学习
- stm32 BOOTLOADER 导出函数给APP调用出现malloc无法分配内存的问题
- STM32 IAP的bootloader编程
- STM32的bootloader注意啥
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- STM32的bootloader IAP编程
- stm32的bootloader和APP
- 键盘按钮keyCode大全
- Android 自动化测试
- 基于JavaMail的Java邮件发送:简单邮件发送
- 数组、字典转为json字符串
- 接口中去拿到对方的订单号
- STM32单片机中FLASH空间的分配之bootloader
- 安装scp命令
- 在centos7中安装mysql数据库和配置方法
- 进程间的通信方式总结
- C#当窗体大小改变时,窗体中的控件大小也随之改变
- Linux 之文件权限
- 多方位拓展之路:监控平台MongoDB实践
- Android设计-UI设计师不可不知的安卓屏幕知识
- fatal: Not a git repository (or any of the parent directories)