OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3942|回复: 2

STM32 IAP的一些细节问题。

[复制链接]

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2020-8-18 18:56:00 | 显示全部楼层 |阅读模式
10金钱
最近拿STM32熟悉IAP,目前正在DEBUG。简单记录一下当前的问题,希望有路过的前辈指点一下。
芯片型号STM32ZEH6
512KB FLASH划分情况
----------------------------------------------------------------------------------------------------------
bootloader 64KB  |  flag 2KB  |  app1 222KB  | blank 1KB  |  app2 222KB  |  blank 1KB
----------------------------------------------------------------------------------------------------------
由于是简单的练手,当前的思路是这样的:
1. bootloader仅仅做跳转,根据flag的值决定跳到app1还是app2。
2. app1/2通过串口接收bin文件并写入app2/1的flash空间。
目前从bootloader跳转到app1没问题。
接收bin文件的size没问题,内容未验证。
写入flash的字节数量有问题。
执行第一次更新之后,flag的值变更了,但是执行的还是老的app。是不是意味着下面这种放在main()中的改变中断向量表偏移地址的写法无效?
  1. flag = readHalfWord_flash(FLAG_ADDR);

  2.     if (0x0002 == flag) {
  3.         
  4.     LED9_ON;
  5.     NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00048400);
  6.     } else {
  7.         
  8.     LED5_ON;
  9.     NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00010800);
  10.     }   
复制代码

最佳答案

查看完整内容[请看2#楼]

调通了。那种写法有效,具体情况见下一篇分享贴。
世界和平
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
 楼主| 发表于 2020-8-18 18:56:01 | 显示全部楼层
调通了。那种写法有效,具体情况见下一篇分享贴。
世界和平
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
 楼主| 发表于 2020-8-20 09:51:39 | 显示全部楼层
世界和平
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 23:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表