历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2019年01月07日 | 关于STM32F4的IAP的一点点记录

2019-01-07 来源:eefocus

看了原子的STM32的IAP 教程,一开始还以为bootloader是啥意思,差点跟uboot搞混淆了,其实stm32的“bootloader”不需要自己写汇编和链接脚本,Boot和App都是单片机程序,只是实现的功能不同,前者是为了引导App,后者是为了实现业务逻辑。只不过boot是有写flash或者sram的功能,再加上通信口(USB/USART etc. )来接收所谓的应用程序app代码。然后跳转到该代码执行就好了,但是要重新设置一下中断向量表的位置,要不然两个程序的中断可能会混淆。也就是说boot代码的中断要进boot代码的irq handler 而 app代码的中断要进app代码的irq handler。下边就以flash iap为例来具体说说需要注意的两点:


(1)boot代码和app代码在flash中的位置


两个代码都要正常运行那肯定不能在写入app代码到flash时把boot的代码给覆盖了,要不然boot代码就失效了。


STM32F429IG支持三种启动方式 


1. FLASH启动        上电复位后PC指针指向第一条指令位置——0x08000000
2. SRAM启动        上电复位后PC指针指向第一条指令位置——0X20000000
3. 系统存储器启动 上电复位后PC指针指向第一条指令位置——0X1FFF0000


程序的起始地址默认是被放在FLASH的起始地址处,即0x08000000。


下图为boot程序的flash设置:




boot程序的地址不需要更改就是用默认的地址,理论上我们只需要确保 APP 起始地址在 Boot 之后,并且偏移量为 0X200的倍数即可。


设置boot的占用64k(0x10000),就是0X08000000 ~ 0X08010000的flash区间。


该芯片flash共1M,则app占用的起始地址设置为: 0X08010000,size为:1M-64k =960K (0XF0000)。


以下为app程序的flash设置: 




(2)中断向量表的重定位


我们都知道一般情况STM32复位后从0x08000000开始取指,中断向量从0x08000004开始第一个为RESET向量 那APP工程的中断向量就不能如此了 APP的向量地址要从0x08010000开始:

NVIC_SetVectorTable(FLASH_BASE, 0x10000);


这里的0x10000根据实际情况更改即可。


推荐阅读

史海拾趣

芯源半导体(CW)公司的发展小趣事

随着市场竞争的加剧,芯源半导体(CW)公司意识到品质管理的重要性。公司加强了对原材料采购、生产过程和产品质量控制的管理,建立了完善的质量管理体系。同时,公司还引入了先进的检测设备和技术手段,以确保产品的稳定性和可靠性。这些措施使芯源半导体(CW)公司的产品质量得到了显著提升,赢得了客户的信任和好评。

创都(CAX)公司的发展小趣事

在电子行业的浪潮中,创都(CAX)公司凭借其卓越的技术创新能力,逐渐崭露头角。公司创始人李先生是一位热衷于新技术的电子工程师,他带领着一支由业内顶尖人才组成的研发团队,不断挑战技术极限。在一次偶然的机会中,他们成功研发出了一款具有革命性意义的高效能芯片,这款芯片不仅性能卓越,而且成本大幅降低,迅速在市场中获得了广泛认可。随着这款芯片的成功推出,创都公司的知名度迅速提升,订单量激增,公司也借此机会逐步扩大了生产规模和市场占有率。

Cornerstone Sensors公司的发展小趣事

随着技术的成熟和产品的完善,Cornerstone Sensors开始积极拓展市场。公司参加了多个国际电子展会和技术研讨会,与全球各地的潜在客户和合作伙伴建立了联系。凭借卓越的产品性能和专业的技术支持,Cornerstone Sensors赢得了众多客户的信任,并成功打入了国际市场。同时,公司还积极寻求与上下游企业的合作,共同推动传感器技术的发展和应用。

硕颉(BITEK)公司的发展小趣事

硕颉科技不断推出创新产品,主打系列包括逆变器、LED驱动器、线性稳压器、AC/DC驱动器、MOSFET、视频编码器和解码器以及图像处理器等。这些产品广泛应用于消费电子领域,满足了市场对高质量电子产品的需求。同时,公司积极拓展销售网络,以台湾、韩国、中国大陆和日本等地区为主,逐步向全球市场扩张。

Good Will Instrument Co., Ltd.公司的发展小趣事

尽管硕颉科技在知识产权方面做出了积极努力,但仍难免面临专利诉讼的挑战。在某次与凹凸科技的专利侵权诉讼中,公司虽然一度面临败诉和永久禁制令的风险,但硕颉科技迅速应诉,积极应对。最终,美国联邦巡回上诉法院废除了原判决,公司得以自由销售被诉产品,不受任何限制。这次诉讼的胜利,不仅展示了硕颉科技在应对法律挑战方面的决心和能力,也为公司的长远发展奠定了坚实基础。

Cyrustek公司的发展小趣事

在Cyrustek公司的发展过程中,人才一直是其最重要的资产。Cyrustek注重人才的培养和引进,建立了一支高素质、专业化的技术团队。这些人才不仅具备丰富的行业经验和专业知识,还具备创新精神和团队协作能力。在Cyrustek公司的发展过程中,这些人才发挥了至关重要的作用,推动了公司的不断发展和壮大。

问答坊 | AI 解惑

使用电源管理

电源管理使您可以通过在工作站闲置时减慢工作站的活动来降低总功耗。有关功耗的详细信息,请参考《hp workstation xw8000 technical reference guide》,该指南可从www.hp.com/workstations/support 获得。    各种操作系统在电源管 ...…

查看全部问答>

霍尔传感器应用于无刷电机驱动控制

讨论了利用霍尔元件在无刷电机控制系统中使用的问题,并对霍尔集成传感器进行 了探讨。介绍了2 种利 用霍 尔集成传感器组成无刷 电机控制 电路的方法。 …

查看全部问答>

EWB软件简介

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 内容不是很多,有兴趣的可以看一下  …

查看全部问答>

A Unified Calibration Algorithm for Scattering

A simple algorithm which unifies the calibration procedures for Scattering and Load Pull measurements is proposed. The new technique is particulary useful when measuring non-insertable devices and for on-wafer characterization ...…

查看全部问答>

关于WinCE5.0下WiFi SDIO卡的支持

在WinCE5.0下要添加哪些组件才能支持WiFi? 已经添加了: 还有就是,是不是如果支持了WiFi配置,那么在开机的时候就会弹出一个配置的对话框? 据说只支持English,是吗?有在中文下弄成功的吗?…

查看全部问答>

请问关于路由器上的操作系统

请问各位: 在华为或思科的路由器上运行的是什么操作系统,是windows或linux吗?还是公司自己开发的什么操作系统?…

查看全部问答>

请高手们帮分析为什么intLock无法锁住中断

公司的一个项目采用MIPS的CPU 发现调用intLock()无效,各中断照样产生 用IDA反汇编出来的代码如下: .text:80050524  # =============== S U B R O U T I N E ======================================= .text:80050524 .text:800505 ...…

查看全部问答>

水利安防监控建设常见的问题与迷思

 由于水利监控设备建设区域涵盖范围广泛,有些甚至会建设于偏远的山区,并且面临狂风暴雨等恶劣天候,因此,在实际应用建设上,便充满许多考验。   那么,通常工程商与使用者经常遭遇哪些问题?他们又需要哪些更好的解决方案呢?   气候恶劣  ...…

查看全部问答>

钢厂照明配电用接触器触点被烧是什么原因?

钢厂照明配电用接触器触点被烧是什么原因? 我公司最近在一钢厂 照明配电采用LC1-D245M7C交流接触器,型号是按照客户要求来选的。但是,最近老是烧掉交流接触器的主触点。     请教各位高手,造成上述问题的原因是什么?该如何处 ...…

查看全部问答>

back-to-backinterrupts

在Cortex-M3的文档中提到back-to-back interrupts,应该如何翻译?可否理解成“接连发生的中断”?…

查看全部问答>