历史上的今天
返回首页

历史上的今天

今天是:2025年08月19日(星期二)

正在发生

2018年08月19日 | STM32单片机中FLASH空间的分配之bootloader

2018-08-19 来源:eefocus

根据程序运行流程:

正常的程序启动流程:从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;


推荐阅读

史海拾趣

FCI / Amphenol公司的发展小趣事

2005年,FCI迎来了新的发展机遇。贝恩资本,一家在全球近75个工业领域和技术公司有着丰富投资经验的私有投资基金,决定收购FCI。贝恩资本的加入为FCI提供了强大的财力和国际业务支持,使得FCI在连接器市场上更具竞争力。这一收购也标志着FCI正式迈入了一个新的发展阶段。

Amphenol公司的发展故事

DIOO公司的发展小趣事

为了进一步拓展市场,DIOO公司决定实施国际化战略。在21世纪初,DIOO公司成功打入欧洲和北美市场,与当地知名电子产品制造商建立了合作关系。通过引进国际先进的生产技术和设计理念,DIOO公司的产品逐渐赢得了全球消费者的认可和喜爱。同时,DIOO公司还积极参加国际电子展会和论坛,与全球业界同仁交流学习,不断提升自身的竞争力和影响力。

捷茂微(GATEMODE)公司的发展小趣事

面对数字化时代的挑战和机遇,DIOO公司决定加快数字化转型步伐。通过引入云计算、大数据、人工智能等先进技术,DIOO公司实现了产品设计、生产、销售等各个环节的数字化管理。同时,DIOO公司还积极探索新的商业模式和市场机会,与互联网企业、电信运营商等合作伙伴共同打造智能生态圈。未来,DIOO公司将继续秉承创新、卓越、服务的理念,致力于成为全球领先的电子产品制造商和服务提供商。

EFC [Electronic Film Capacitors, Inc.]公司的发展小趣事

在当今社会,绿色环保已经成为一种趋势。EFC公司积极响应这一号召,将绿色环保理念融入到产品设计和生产过程中。他们采用环保材料和技术,减少废弃物和污染物的排放。同时,EFC还积极推广绿色能源和节能技术,帮助客户降低能源消耗和碳排放。这种对环保的关注和贡献让EFC赢得了社会各界的赞誉。

A/D Electronics Inc公司的发展小趣事

随着产品线的不断丰富,A/D Electronics Inc开始积极拓展国内外市场。公司通过与全球知名电子品牌建立战略合作关系,成功将产品打入国际市场。同时,公司还积极参加国际电子展会,展示其最新技术成果和产品,进一步提升了品牌知名度和市场影响力。

Hi-G Relays公司的发展小趣事

A/D Electronics Inc在创立初期,以其卓越的技术研发团队在模拟到数字转换器(ADC)领域取得了重大突破。公司研发出一款高精度、低噪声的ADC芯片,这一创新产品迅速在市场中获得认可,为公司的初步发展奠定了坚实基础。随着技术的不断迭代,A/D Electronics Inc陆续推出了一系列高性能的电子产品,满足了市场对于高效、稳定电子元件的日益增长需求。

问答坊 | AI 解惑

在WinCE 下,冷启之后,如何使文件不丢失(不管放在哪个目录下)

如题, 已经正确启动模拟器,但是,模拟器存放的文件里面,只要重启,就会丢失这些文件, 各位高手帮帮给些意见…

查看全部问答>

遇到 VXworks 下 Intel 82541千兆网卡驱动的问题

    在VXWORKS5.5下调试82541的网卡驱动,一开始VXWORKS加载时提示CHECK CAPBLE CONNECTION ! 如何修改了MIILIB.C中的MIIAUTONEGSTART与MIIAUTOPHYINIT函数? 就可以正常启动也可以PING通了,FTP也可以连上,但是无法通过FTP传输文件.请 ...…

查看全部问答>

rom boot loader在wince 5.0的应用问题?

有人实现过rom boot loader吗? 我用的板子是研华的pcm3370 有谁能告知,rom boot loader怎么烧写到开发板上的? 它的程序与硬件相关,怎么改?                       ...…

查看全部问答>

使用过泰文输入法的XDJM看过来

请教大家, 泰文中, 由于主导字符是单独的一个字符, 随从字符也是单独的一个字符, 结加后如何显示.使用自造字吗?或者是GB18030字符集已经有了组合后的编码.…

查看全部问答>

关于ADC基准的问题

                                 在用户手册里找不到如何把基准电压设置为外部基准,怎样设置成使用外部基准?如果要采样温度是不是只能使用内部基 ...…

查看全部问答>

stm8s207spi通信

新手 spi和一块射频芯片通信 不知道该怎么解决了 希望论坛上的高手能够帮帮忙 1、我的初始化程序 //时钟 CLK_ICKR = (1 << HSIEN);//HSI ENABLE; while((CLK_ICKR & 0X02) == 0);//WAITE FOR HSI STEABLE CLK_CKDIVR = 0X10;//HS ...…

查看全部问答>

报警???

本帖最后由 dontium 于 2015-1-23 13:22 编辑 这是什么原因引起的报警啊? 报警如下(用的是CCS2.0): >> warning: creating output section .vectors without SECTIONS specification …

查看全部问答>

欢迎各位前来指导!

小弟初次接触振荡电路,求大侠分析该怎么算这个振荡电路的参数(频率,幅值等),谢谢了啊!或者是提供一种分析思路也可以啊!     …

查看全部问答>

求介绍一些能够高精度控制的仪器或者传感器

跟着老板做一些直线电机方面的研究,关键时候缺少了一个能高精度测量微位移的仪器,精度um级别的,能达到nm的更好,有没有大神能够给介绍一下。…

查看全部问答>