STM32串口IAP探索.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 29 讲 串口IAP实验 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 29.1 串口IAP简介 29.2 IAP配置方法 29.3 IAP程序讲解 29.4 实验验证 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 29.1 IAP简介 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 29.1 IAP简介 图29.1 STM32正常运行流程图 STM32的内部闪存(FLASH)地址起始于0一般情况下,程序文件就从此地址开始写入。此外STM32是基于Cortex-M3内核的微控制器,其内部通过一张“中断向量表”来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完成启动,而这张“中断向量表”的起始地址是0当中断来临,STM32的内部硬件机制亦会自动将PC指针定位到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序。 图中,STM32在复位后,先从0址取出复位中断向量的地址,并跳转到复位中断服务程序,如图标号①所示;在复位中断服务程序执行完之后,会跳转到我们的main函数,如图标号②所示;而我们的main函数一般都是一个死循环,在main函数执行过程中,如果收到中断请求(发生重中断),此时STM32强制将PC指针指回中断向量表处,如图标号③所示;然后,根据中断源进入相应的中断服务程序,如图标号④所示;在执行完中断服务程序以后,程序再次返回main函数执行,如图标号⑤所示。 图29.2 加入IAP之后程序运行流程图 如图所示流程中,STM32复位后,还是从0址取出复位中断向量的地址,并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到IAP的main函数,如图标号①所示,此部分同图29.1一样;在执行完IAP以后(即将新的APP代码写入STM32的FLASH,灰底部分。新程序的复位中断向量起始地址为0N+M),跳转至新写入程序的复位向量表,取出新程序的复位中断向量的地址,并跳转执行新程序的复位中断服务程序,随后跳转至新程序的main函数,如图标号②和③所示,同样main函数为一个死循环,并且注意到此时STM32的FLASH,在不同位置上,共有两个中断向量表。 在main函数执行过程中,如果CPU得到一个中断请求,PC指针仍强制跳转到地址0断向量表处,而不是新程序的中断向量表,如图标号④所示;程序再根据我们设置的中断向量表偏移量,跳转到对应中断源新的中断服务程序中,如图标号⑤所示;在执行完中断服务程序后,程序返回main函数继续运行,如图标号⑥所示。 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 通过以上两个过程的分析,我们知道IAP程序必须满足两个要求: 1.新程序必须在IAP程序之后的某个偏移量为x的地址开始; 2.必须将新程序的中断向量表相应的移动,移动的偏移量为x; 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 29.2 IAP配置方法 设置APP程序的起始地址和存储空间大小 对于在FLASH里面运行的APP程序,我们只需要设置APP程序的起始地址,和存储空间大小即可。而对于在SRAM里面运行的APP程序,我们还需要设置SRAM的起始地址和大小。无论哪种APP程序,都需要确保APP程序的大小和所占SRAM大小不超过我们的设置范围。 2. 设置中断向量表偏移量 此步,我们通过修改SCB-VTOR 寄存器的值,实现对中断向量表偏移量的设置。这个偏移量的大小,其实就等于程序起始地址相对于0者0偏移。 3. 设置编译后运行fromelf.exe,生成.bin文件. 通过在User选项卡,设置编译后调用fromelf.exe,根据.axf文件生成.bin文件,用于IAP更新。 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 广州星翼电子 官方淘宝店: 技术支持论坛: 《原子教你玩STM32》系列视频 * ALIEN

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档