历史上的今天
返回首页

历史上的今天

今天是:2024年08月22日(星期四)

正在发生

2018年08月22日 | STM32 IAP/BOOT,三步速成

2018-08-22 来源:eefocus

Stm32的IAP现在已经是非常简单了,下面就教大家三步学成:

前提条件:已经有Flash读写函数,这个函数好弄,很多stm32例程里面都有


第一步(对于Boot程序):跳转到指定Flash位置函数,如下:

void Jump_To_Application(const u32 startAddr)
{
Jump_To_App = (pFunction)(*(vu32*) (startAddr + 4));
MSR_MSP(*(vu32*) startAddr);
Jump_To_App();

}


第二步(对于APP):在keil工程配置里设置程序起始地址和APP程序大小,如图:


第三步(对于APP):如果APP中涉及中断,则要在APP起始位置设置中断向量偏移,否则你会发现可以正常跳转运行,但是所有中断都不执行,就一句话:

SCB->VTOR = FLASH_BASE | 0x20000;


注意项:一般来说在Boot程序中不会使用任何外设,最多也就配置几个IO口,但如果你由于某些特殊原因需要配置了串口、ADC或DMA等一些外设的话此时跳转到APP程序的时候有可能会卡在APP程序的相应外设初始化函数里(如你在boot中配置了串口,这时就有可能卡在APP的串口配置里),这时你可能需要在跳转到APP之前(调用跳转函数之前)删除相应外设的配置(相应DeInit函数),如果这还不行那就在跳转之前静止所有中断(在keil里面是 __disable_irq();)然后在APP里面配置完相应外设后再开启所有中断;实际上我有碰到执行了这两个操作还是不行的(我在boot里面初始化了串口,用于在引导的时候打印信息),后面解决办法是在APP里在初始化完该串口后打印一个字符串出来,误打误撞解决的,为什么这样可以我也不知道


推荐阅读

史海拾趣

Fenghua (HK) Electronics Ltd公司的发展小趣事

Fenghua (HK) Electronics Ltd自成立以来,始终将技术创新作为企业发展的核心动力。公司投入大量研发资源,不断推出具有市场竞争力的新产品。其中,一款具有自主知识产权的智能家居控制系统,凭借其独特的智能化和便捷性,在市场上引起了广泛关注。公司通过与国内外知名科技企业的合作,不断引进先进技术和管理经验,提升了整体竞争力。

Genisco Electronics公司的发展小趣事
根据使用环境的温度、湿度、海拔等因素选择适合的发电机型号和配置。
C&K Components公司的发展小趣事

1957年,Charles A. Coolidge, Jr.和Marshall Kincaid共同创立了C&K Components公司,起初主要专注于磁芯记忆单元的制造。那个时代的电子行业刚刚起步,市场竞争激烈,技术更新换代迅速。C&K在初创时期就面临了诸多挑战,但两位创始人凭借对技术的热爱和对市场的敏锐洞察,坚持探索新的技术方向,为公司的发展奠定了坚实的基础。

Hirose Electric公司的发展小趣事

到了90年代,随着电子产品的普及和技术的进步,开关市场的竞争愈发激烈。然而,C&K凭借多年的技术积累和市场经验,已经成为世界领先的开关制造商之一。公司不断推出创新产品,满足市场的多样化需求,同时加强与国际知名企业的合作,进一步巩固了其在行业内的领先地位。

Cramer公司的发展小趣事

在智能家居领域,Cramer公司也展现出了强大的创新能力。他们推出了一款智能家居控制系统,该系统可以通过手机APP远程控制家中的电器设备。为了实现这一功能,Cramer公司投入了大量资源进行技术研发,并与多家家居品牌达成了战略合作协议。这款产品的推出,使得Cramer公司在智能家居市场上占据了一席之地。

ALLTHREAD公司的发展小趣事

面对日益激烈的市场竞争,ALLTHREAD意识到必须不断提升生产效率和质量。于是,他们开始引入先进的自动化设备和智能化生产技术,对生产线进行全面升级。通过技术升级,ALLTHREAD的生产效率得到了大幅提升,产品质量也更加稳定可靠。

问答坊 | AI 解惑

09电子大赛-D题群33530708

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 09电子大赛-D题群33530708  …

查看全部问答>

大家好!!请教VHDL高手1个问题!!!

大家好!!请教VHDL高手1个问题!!! 问题主要出在如下语句上: --#20100403#问题:不知怎么回事?若下面三语句不屏蔽,则ADclk信号不正确,为乱码;而下面3语句屏蔽后,ADclk信号就没有问题了,但就无法分频了??? if Cs=\'0\' AND RD=\'1\' AND ...…

查看全部问答>

2430单片机应用程序死掉

     在CC2430应用程序中没有进行对引脚的操作指令,但程序进行了长时间的运行后出现某I/O引脚被改变。请教各位大虾。还有对2430的flash操作过度频繁会不会导致应用程序死掉呢?flash中的数据会不会由于操作flash的过度频繁而 ...…

查看全部问答>

FLASH MEMORY 的具体操作指南

Reset operation As discussed previously, CE# must be low for all NAND activities. The simplest NAND command is the Reset (FFh), which doesn\'t require any address or second cycle. Simply assert CLE and issue a write pulse with FF ...…

查看全部问答>

100分 入门互动

我是学计算机专业本科毕业,现在在电子公司工作,但不是从事设计,现在想向电子设计方面发展,请大家给我建议一个学习方案,我不知道从哪里开始学习。共同讨论,共同进步,更高更强,想奥运健儿学习,谢谢.......。…

查看全部问答>

有谁收到过2009嵌入式课件大赛的通知阿

各位大虾,小弟初来此地,从事嵌入式嵌入式教学; 最近收到个2009嵌入式课件大赛的通知,请问有哪位大虾参加过吗,效果怎么样?看上去奖金还行   http://contest.cessa.org 不知道可不可以在这个版发,好像没找到合适的版面,请斑竹 ...…

查看全部问答>

请教高手,用MSComm如何实现下面的握手通信过程?

用portMon获取的通信过程如下 705  15:50:25  aaa.exe  IOCTL_SERIAL_GET_BAUD_RATE  Serial0   705  15:50:25  SUCCESS   706  15:50:25 &nb ...…

查看全部问答>

急!! 今天买了个IDE转USB的接口,安装的时候怎么也装不上去

急!! 今天买了个IDE转USB的接口,安装的时候怎么也装不上去,驱动光盘中是ALL IN ONE CARDREADER AU6368 和USB TO IDE GL811,是不是硬盘还要跳线什么的?请各专家看看是怎么回事?谢谢了焦急等待中^^^^^^…

查看全部问答>

想请教一下:MSP430F2XX系列的外接高速晶振最大能到多少?

想请教一下:MSP430F2XX系列的外接高速晶振最大能到多少? 我目前接的是8MHz。…

查看全部问答>

愧疚的对做小车 无线通信的说:题目还没盖棺论定

本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 …

查看全部问答>