找回密码
 立即注册
查看: 1048|回复: 7

ai8h8k64u实现IAP升级AB分区/求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-07 11:11:24
已绑定手机

3

主题

2

回帖

71

积分

注册会员

积分
71
发表于 2025-4-6 22:13:07 | 显示全部楼层 |阅读模式
想要将ai8h8k64u的64kflash分区为bootloader(8k)+appA(28k)+appB(28k),实现AB分区,为了防止iap升级过程中断电变砖,能够回退到旧版本固件;
目前能实现BL+APP分区,但是多了一个APP分区就不会了......主要疑问是在中断向量偏移的问题上;

官网的demo版isp升级程序已经看过了,因为和我的需求有一些差异,我现在有些问题想请问大佬:
1.我是否需要准备两个APP项目;在每个APP项目IDE中都设置他们的Eprom范围和中断偏移;还是只需要一个APP项目?
2.bootloader的ism文件该怎么去做中断向量偏移,才能实现AB分区都能使用中断?


截图202504062209581835.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2026-04-30 08:53:57
已绑定手机

106

主题

4345

回帖

9748

积分

荣誉版主

无情的代码机器

积分
9748
发表于 2025-4-6 23:02:11 | 显示全部楼层
首先要明确需求,APP2只是备份还是需要两个APP可切换都可运行?
如果APP2只是备份,当APP1校验不通过时,将APP2复制到1的位置,那就只需要考虑APP在位置1的中断和EEPROM设置。

如果需要两个APP可以切换且都可以使用中断,那么需要一些技巧了。
我能想到的一个办法是中断交给BL处理,APP在一个公共xdata区域注册函数指针表(APPID,中断ID,函数指针),BL判断当前正在运行的APP和要跳转的中断函数指针跳转即可。
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:725
  • 最近打卡:2026-03-30 12:09:34
已绑定手机

97

主题

7246

回帖

1万

积分

超级版主

积分
13800
发表于 2025-4-7 08:06:30 | 显示全部楼层
两个分区也不会变砖,用户ISP区是正常的,下载失败重新下载即可,更新只对用户APP区操作,不会操作用户ISP区
更新用户ISP区还有系统ISP区
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:865
  • 最近打卡:2026-04-30 07:15:13

126

主题

2078

回帖

4764

积分

论坛元老

积分
4764
发表于 2025-4-7 08:21:00 | 显示全部楼层
请教:STC8h8k64u系列型号都可以实现实现IAP升级吗?

点评

这个型号可以的,官网也有例程可以测试 [attachimg]91772[/attachimg]  详情 回复 发表于 2025-4-7 08:35
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2026-04-30 08:53:57
已绑定手机

106

主题

4345

回帖

9748

积分

荣誉版主

无情的代码机器

积分
9748
发表于 2025-4-7 08:35:15 | 显示全部楼层
xxkj*** 发表于 2025-4-7 08:21
请教:STC8h8k64u系列型号都可以实现实现IAP升级吗?

这个型号可以的,官网也有例程可以测试
截图202504070835126962.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-07 11:11:24
已绑定手机

3

主题

2

回帖

71

积分

注册会员

积分
71
发表于 2025-4-7 09:17:09 | 显示全部楼层
erci*** 发表于 2025-4-6 23:02
首先要明确需求,APP2只是备份还是需要两个APP可切换都可运行?
如果APP2只是备份,当APP1校验不通过时,将 ...

APP2只是用于备份,这样实现会简单一些吗?

点评

是的会简单很多,当检测APP1校验通过,拷贝一份放到APP2位置备份下。这样APP1就是传统的IAP开发了。  详情 回复 发表于 2025-4-7 09:38
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-07 11:11:24
已绑定手机

3

主题

2

回帖

71

积分

注册会员

积分
71
发表于 2025-4-7 09:33:48 | 显示全部楼层
楚*** 发表于 2025-4-7 09:17
APP2只是用于备份,这样实现会简单一些吗?

我晚点试一下这种实现方法,感觉如果只是为了防止变砖,两个APP分区都去切换并执行中断有点绕远路了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2026-04-30 08:53:57
已绑定手机

106

主题

4345

回帖

9748

积分

荣誉版主

无情的代码机器

积分
9748
发表于 2025-4-7 09:38:58 | 显示全部楼层
楚*** 发表于 2025-4-7 09:17
APP2只是用于备份,这样实现会简单一些吗?

是的会简单很多,当检测APP1校验通过,拷贝一份放到APP2位置备份下。这样APP1就是传统的IAP开发了。
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-1 08:55 , Processed in 0.134443 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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