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

关于8H2K32U的IAP问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-19 10:01:48

1

主题

3

回帖

31

积分

新手上路

积分
31
发表于 4 天前 | 显示全部楼层 |阅读模式
目前遇到一个8H2K32U的IAP问题,计划将8H2K32U的32k的EEPROM从0x0000-0x6fff是APP,0x7000-0x7fff为IAP。APP收到升级命令后,使用函数指针((void (code *)())(0x7000))()来进行跳转。其中APP未做任何中断向量重映射处理保持默认。ISP程序在keil中设置Code Memory 0x7000-0x7fff,Interrupt vectors at address0x7000;  汇编文件中 CSEG    AT      7000H ,并且有把ISP程序烧录到0x7000处,但是从主程序跳到ISP时出现了程序跑飞,目前没排查出来什么问题
截图202508190959554308.jpg
截图202508191000368888.jpg
截图202508191001065494.jpg
截图202508191001396539.jpg
回复

使用道具 举报 送花

3

主题

2031

回帖

910

积分

等待验证会员

积分
910
发表于 4 天前 | 显示全部楼层
关于STC8H2K32U的IAP问题,以下为专业分析与建议:

在使用STC8H2K32U进行IAP(In-Application Programming)时,若APP程序从0x0000-0x6FFF运行,而IAP程序位于0x7000-0x7FFF,且通过函数指针跳转至0x7000执行IAP代码时出现“程序跑飞”现象,可能是由于以下几个方面的问题导致:

1. 中断向量地址未正确配置  
   STC8系列单片机的中断向量表默认位于0x0000开始的位置。若IAP程序位于0x7000,但未在该地址设置中断向量表,则系统在发生中断时仍会从0x0000读取中断向量,导致程序异常跳转或执行错误代码。

   解决方案:  
   在IAP程序中,需将中断向量表重新定位到0x7000。这通常需要在Keil编译器中设置Interrupt Vectors at Address 0x7000,并在汇编文件中使用CSEG AT 7000H来确保中断向量表位于正确位置。此外,还需在IAP程序中重新定义所有中断服务程序的入口地址。

2. 代码段加载地址与实际运行地址不一致  
   若IAP程序在烧录时被写入0x7000,但在运行时由于链接脚本或编译器设置问题,导致实际执行地址偏离预期,也可能造成程序跑飞。

   解决方案:  
   检查Keil中的“Code Memory”设置是否正确指向0x7000-0x7FFF,并确认IAP程序的启动地址为0x7000。同时,检查生成的HEX文件是否正确地将IAP代码写入指定地址。

3. 堆栈指针初始化不当  
   当跳转至IAP程序时,若未正确初始化堆栈指针(SP),可能导致程序在执行过程中访问非法内存地址,从而引发跑飞或复位。

   解决方案:  
   在IAP程序的入口处,应首先设置堆栈指针为0x0000或IAP程序所分配的堆栈区域,以确保后续执行过程中的堆栈操作正常。

4. IAP程序自身存在逻辑错误或未完成初始化  
   若IAP程序本身存在逻辑错误,如未正确初始化外设、未处理关键寄存器等,也可能导致跳转后程序无法正常运行。

   解决方案:  
   对IAP程序进行单独测试,确保其在独立运行时能够正常工作。可尝试将IAP程序直接烧录并运行,观察是否能正常进入主循环或执行预设功能。

5. Flash保护机制限制  
   STC8H2K32U具备一定的Flash保护机制,若IAP程序试图修改受保护的Flash区域,可能触发保护机制导致程序异常。

   解决方案:  
   确保IAP程序仅对允许修改的Flash区域进行操作,并检查相关保护寄存器的配置是否正确。

综上所述,建议按照以下步骤进行排查:
检查IAP程序的中断向量表是否正确定位至0x7000;
确认IAP程序的代码段加载地址与运行地址一致;
验证堆栈指针初始化是否正确;
单独测试IAP程序,排除内部逻辑问题;
检查Flash保护配置,避免因保护机制导致异常。

通过以上措施,可有效定位并解决IAP跳转失败的问题。如仍有疑问,建议提供更详细的代码结构及编译配置信息以便进一步分析。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2982

回帖

6361

积分

荣誉版主

无情的代码机器

积分
6361
发表于 4 天前 | 显示全部楼层

这个问题描述更像是将例程ISP区改为28K,APP区改为4K。
优先使用官网例程测试,测试通过后再修改。
需要的话上传问题工程我看看。




截图202508191019346933.jpg



截图202508191020568540.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-19 10:01:48

1

主题

3

回帖

31

积分

新手上路

积分
31
发表于 4 天前 | 显示全部楼层
erci*** 发表于 2025-8-19 10:24
这个问题描述更像是将例程ISP区改为28K,APP区改为4K。
优先使用官网例程测试,测试通过后再修改。
需要的 ...

这个是按照官方手册改的,0X0000-0XFFF   ISP;           0X1000-0X7FFF  APP ;上电后直接跳到APP ,APP程序未能正确执行,劳烦帮忙指导一下

SB120B-02-APP.rar

608.78 KB, 下载次数: 1

SB120B-02-ISP.rar

430.95 KB, 下载次数: 1

点评

还是建议在例程上先折腾大小分区,再添加别的业务逻辑,不然bug全混在了一起。 问题点比较多: [attachimg]112400[/attachimg] [attachimg]112401[/attachimg] 1.声明时初始化 [attachimg]112404[/attachimg  详情 回复 发表于 4 天前
收到,我看看  发表于 4 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2982

回帖

6361

积分

荣誉版主

无情的代码机器

积分
6361
发表于 4 天前 | 显示全部楼层
zj6*** 发表于 2025-8-19 12:04
这个是按照官方手册改的,0X0000-0XFFF   ISP;           0X1000-0X7FFF  APP ;上电后直接跳到APP ,APP程 ...


还是建议在例程上先折腾大小分区,再添加别的业务逻辑,不然bug全混在了一起。

问题点比较多:


截图202508191420362763.jpg

截图202508191420512103.jpg



1.声明时初始化
截图202508191422211442.jpg
2.xdata 地址不对,所用型号是2.25K xdata
截图202508191422386483.jpg
3.isp和app都用了usb,但是ISP里中断已经映射了,建议isp仅用基本串口并且查询模式不用中断,要共用中断可参考这篇帖子:
一种USER_ISP和USER_APP共用中断方法 - ISP下载/做自己的ISP 国芯人工智能技术交流网站 - AI32位8051交流社区


三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-08-19 10:01:48

1

主题

3

回帖

31

积分

新手上路

积分
31
发表于 4 天前 | 显示全部楼层
感谢指导,修改之后还是不能进行跳转,目前现象是上电后就进入了ISP 程序,我想让他从ISP直接跳转,如图,但是会一直停留在ISP中无法跳到APP,能否再劳烦帮忙看一下
截图202508191645286641.jpg
截图202508191646353003.jpg

SB120B-02.rar

607.55 KB, 下载次数: 1

SB120B-02-ISP.rar

375.62 KB, 下载次数: 1

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:276
  • 最近打卡:2025-08-23 14:05:57
已绑定手机

80

主题

2982

回帖

6361

积分

荣誉版主

无情的代码机器

积分
6361
发表于 4 天前 | 显示全部楼层

可以跳转,下载方式不对吧。把app bin前三字节挪到1000H位置然后与ISP合并下载。
要点回复才能及时收到消息,不然就随缘了~。

下午发的问题还存在,isp里屏蔽了usb中断映射,app里又使用了usb中断。


截图202508192153123652.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-23 21:57 , Processed in 0.125110 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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