历史上的今天
返回首页

历史上的今天

今天是:2024年12月28日(星期六)

2018年12月28日 | STM32IAP程序和APP相互跳转卡死问题

2018-12-28 来源:eefocus

不管是Bootloader(这里指用户自定义的Bootloader程序)跳到APP,还是APP跳到Bootloader,再跳转之前必须保证以下几点


1.向量表正确偏移


2.栈顶指针合法(即栈顶指针必须落在你的芯片的SRAM区域内)


3.清除用到的所有中断标志位以及失能当前中断


特别是第3点,假设Bootloader里用到了定时器更新中断,但是从bootloader跳转到APP之前没有清除该中断标志位以及未失能当前中断,那么跳过去大概率卡死,除非你的APP里也用到了该定时器中断,反过来,从APP跳回bootloader也一样,必须清除所有用到的中断标志位和失能该中断方可跳转!!!


向量表偏移方法:


SCB->VTOR=FLASH_BASE|0x5000;//向量表偏移到0x08005000

 if((*(u32*)(0x8000000)&0x2FFE0000)==0x20000000)//判断栈顶指针是否合法

{

       JumpAddress = *(u32*)(FLASH_BASE+4);//取复位中断向量

   Bootloader =(fun)JumpAddress;

   __set_MSP(*(__IO u32*)FLASH_BASE);//设置主堆栈指针MSP

   Bootloader();//跳转到0x08000004执行

     

}

 


推荐阅读

史海拾趣

Babcock Inc公司的发展小趣事

Babcock Inc公司的创立源于创始人对电子技术的深厚热爱和前瞻视野。在创业初期,公司便致力于电子技术的研发与创新,不断积累核心技术和专利。通过持续的技术投入和人才培养,Babcock逐渐在电子行业崭露头角,为后续的快速发展奠定了坚实的基础。

Brainboxes公司的发展小趣事

Brainboxes一直注重与客户建立紧密的合作关系。公司深入了解客户的需求和应用场景,为其提供定制化的解决方案。此外,Brainboxes还积极参与工业连接领域的发展,与多家知名企业建立合作关系,共同推动行业的技术进步和应用创新。这种客户亲密度和工业连接能力使得Brainboxes在市场竞争中占据有利地位。

高博(GBG)公司的发展小趣事

谷峰电子有限公司的故事始于1995年,当时公司在香港成立,标志着其半导体元器件研发与销售的起点。初期,面对激烈的市场竞争和技术挑战,谷峰团队凭借对半导体技术的深刻理解和对市场需求的敏锐洞察,逐步确立了以功率MOSFET为核心产品的战略方向。2000年,谷峰在深圳设立分公司,进一步扩大了其研发和销售网络,为公司的快速发展奠定了坚实基础。

GSR Technology Ltd公司的发展小趣事

随着数字化时代的到来,GSR Technology Ltd积极响应国家关于数字经济发展的号召,开始推进企业的数字化转型。公司引入先进的智能制造技术,对生产线进行智能化改造,提高了生产效率和产品质量。同时,公司加强数据管理和分析,利用大数据和人工智能技术优化产品设计和生产流程。这一系列的数字化转型措施为公司带来了显著的经济效益和市场竞争力提升。

Crystal Clear Technology公司的发展小趣事

随着公司业务的不断扩张和盈利能力的提升,Crystal Clear Technology逐渐吸引了资本市场的关注。公司通过发行股票和债券等方式筹集资金,为公司的研发、生产和市场拓展提供了强有力的资金支持。资本市场的助力使得Crystal Clear Technology能够更快地实现规模扩张和产业升级,成为电子行业的一颗璀璨明星。

以上五个故事虽然是根据一般情况和行业趋势虚构的,但它们反映了一个电子企业在发展过程中可能遇到的挑战和机遇,以及如何通过技术创新、战略合作、国际化布局、环保理念和资本市场支持等方式实现快速成长。当然,每个企业的发展历程都是独特的,Crystal Clear Technology公司的发展故事也必然有其独特之处。

Base Two (2) Systems公司的发展小趣事

随着公司业务的不断发展壮大,Base Two (2) Systems开始实施国际化战略。公司积极拓展海外市场,与多个国家和地区的合作伙伴建立了合作关系。同时,公司还在海外设立了研发中心和生产基地,以便更好地服务全球客户。这一国际化战略的实施,使得公司的业务范围更加广泛,也为公司的未来发展打开了新的篇章。

这五个故事展示了Base Two (2) Systems在电子行业中的发展历程和取得的成就。通过技术创新、市场扩张、研发投入、品质管理和国际化战略的实施,公司逐渐发展成为电子行业中的佼佼者,为行业的发展做出了积极的贡献。

问答坊 | AI 解惑

基于FPGA的误码率测试仪的设计与实现

基于FPGA的误码率测试仪的设计与实现…

查看全部问答>

用不带USB功能的单片机自制USB扩展8路RS232

我没用过AVR,也没有做过USB驱动控制器,所以这个项目对我来说那是相当~~~神秘了。 这个项目本来的名字叫做AVR-CDC,非要用中文解释的话,那就是:用AVR实现USB通讯装备类协议。 他的优点是: 1、不需要专门定制的驱动程序,它使用的是Windows ...…

查看全部问答>

B题交流

本帖最后由 paulhyde 于 2014-9-15 09:26 编辑 大家发表下做B题的问题,大家一起解决  …

查看全部问答>

常用元器件的识别

本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 一、电阻 电阻在电路中用“R”加数字表示,如:R1表示编号为1的电阻。电阻在电路中的主要作用为分流、限流、分压、偏置等。 1、参数识别:电阻的单位为欧姆(Ω),倍率单位有:千欧(KΩ),兆欧 ...…

查看全部问答>

关于RAM和flash的寻址区别问题

小弟有些不明白,在些flash时直接向一个地址写入数据,就和写RAM一样。如:         addr = (FPWV *)dest;         MEM_FLASH_ADDR1 = (FPW)0x00AA00AA;       ...…

查看全部问答>

谈谈 USB 开发的感受,[无驱动与有驱动]

其实利用USB与设备通信,PC机不一点要写驱动,例如直接利用CDC-ACM也可以实现数据传输,只需写个INF. 但为什么还是要自己在WDM中开发USB驱动呢? 看了下CDC文档,感觉好多情况下可以利用WINDOWS自带的一些API来写应用,为什么我们还要去写驱动呢. 大蛱 ...…

查看全部问答>

文件系统的问题,大家帮我看看吧

我做了一个ramdisk,然后试验一下具体如下 U-Boot 1.1.4 (Jan 13 2007 - 18:54:16)                                    & ...…

查看全部问答>

搞无线的看过来

有用nRF系列的芯片做无线的吗?留下联系方式,交流一下阿.我把我的留下了.qq:472230383…

查看全部问答>

菜鸟升级.....换什么单片机好?

小弟之前一直在用AT89S52,最近感觉资源不够了....想换个资源多点的,又怕太复杂了掌握不了....纠结啊....今天看了STC12C5A系列的,感觉好像不错,性价比挺高的,有没有了解的大虾指点一二,适不适合我这样的用啊,我现在对S52应该算是比较熟悉了, ...…

查看全部问答>

第一次用ST7LITEU05点亮LED,请大哥指点

A5口接LED,计划是低电平亮,可是示波器看A5脚电平长期高电位不变,下面是源代码,COSMIC C和STVD7平台,各位大哥帮忙看看哪里不对,谢谢啦。。。#include <io7flitus.h>#include <stdlib.h>/*----Define Bit  ...…

查看全部问答>