ercircle 发表于 2025-7-30 16:06:00

1.有错,映射了中断又使用了中断,跳转也应参考官网例程做最基本的校验;
2.同1,映射了中断又使用了中断。简单点,ISP只使用查询模式,复杂点参考这个:
一种USER_ISP和USER_APP共用中断方法 - ISP下载/做自己的ISP 国芯人工智能技术交流网站 - AI32位8051交流社区

3.AP,只修改了INTVECTOR,没改这里:


4.STC_ISP下载里注意主频匹配,EEPROM大小匹配。其它按需选择即可。

yinshiyouquan 发表于 2025-7-30 17:46:55

ercircle 发表于 2025-7-30 16:06
1.有错,映射了中断又使用了中断,跳转也应参考官网例程做最基本的校验;
2.同1,映射了中断又使用了中断。 ...
1.AP程序,Reserver这边修改为:0xFF0003-0xFF2803?
2.复杂方式,按照这边连接给的示例编译出现报错,如下图
3.void commonisr(void) interrupt(INTERRUPTNUMBER) {
    if (isrinfo.ispflag) {
      // ISP模式下的处理逻辑
      ispisrhandler();
    } else {
      // APP模式下的处理逻辑
      if (isrinfo.appisr1 != NULL) {
            isrinfo.appisr1();
      }
      if (isrinfo.appisr2 != NULL) {
            isrinfo.appisr2();
      }
    }
}这个函数直接放在程序中编译报错,所以这个函数实际应该怎么使用,这边说的很抽象

ercircle 发表于 2025-7-30 18:04:23

yinshiyouquan 发表于 2025-7-30 17:46
1.AP程序,Reserver这边修改为:0xFF0003-0xFF2803?
2.复杂方式,按照这边连接给的示例编译出现报错,如 ...

1.对

2.抄错代码:

3.只是C语言最基础的if语句和函数指针语法,不存在抽象的

基础不过关啊,建议刷一刷论坛课程和C语言课程
《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套 - 字库生成,图片取模,串口绘图,串口助手,虚拟硬件,外部串行Flash编程 国芯人工智能技术交流网站 - AI32位8051交流社区
第三十七集 C语言程序设计-函数一-何宾老师-STC单片机教学视频 国芯人工智能技术交流网站 - AI32位8051交流社区

yinshiyouquan 发表于 2025-7-31 01:20:45

ercircle 发表于 2025-7-30 18:04
1.对

2.抄错代码:


根据您建议重新调整了boot和app,其中boot调整如下:
1.在asm文件中屏蔽了串口1中断重映射;
2.增加了中断共用管理结构体ISRStruct
app部分调整如下
1.reserver调整为0xFF0003-0xFF2803
2.Hex_fromat选择HEX_386(试过HEX_80,没发现有什么特别不同,而且不同示例,哪怕是large模型也有配置为386)
3.同样增加中断共用管理结构体ISRStruct,位置都在xdata扩展内存0x1000位置

两个编译都没问题,用STC_ISP自带的“自定义ISP模式的ap”,把boot和ap一次烧录程序中,实际测试发现:
1.updateflag被置位时候,boot正常运行,一直有日志输出
2.updateflag置零时,无法正常跳转到app部分,一直重启输出“没有可更新的固件,跳转APP!”(跳转校验部分跳过了,只是想验证能否跳转到app正常执行)

yinshiyouquan 发表于 2025-7-31 01:27:47

ercircle 发表于 2025-7-30 18:04
1.对

2.抄错代码:


调整后的固件见附件
页: 1 [2]
查看完整版本: 4G模块OTA升级